Strict Standards: Only variables should be passed by reference in /homepages/33/d411990001/htdocs/spip/config/ecran_securite.php on line 283
Créez vos cartes de visite avec FPDF et ClasseForms - Ian’s Web Page

Créez vos cartes de visite avec FPDF et ClasseForms

jeudi 27 octobre 2011
par  Yann
popularité : 3%

 Créez vos cartes de visite avec FPDF et ClasseForms

Cette petite application a été réalisée avec FPDF et la classe « classeForms » de Franck Oberlechner.

Astuce remplacement ereg_replace (deprecated) par preg_replace

$this->popup_content =  preg_replace("/[\n,\x0A,\x0D,\x0C]/","",$params['content']);
//$this->popup_content =  ereg_replace("\n|\x0A|\x0D|\x0C","",$params['content']);

Code source de l’application

GZ - 2.5 Mo
Code source sans Popup
GZ - 2.7 Mo
Code source avec Popup

Test de l’application :

Test de l'application

 codes sources

Script carte_visite.php

<?php
        session_start();
        include("include/classeForms.php");
        include("include/classePopup.php");
       
        $f = New Forms;
        $f->frm_Init(false,"250px");
        //$f->frm_Protection();
        definition_des_champs();
        $ret = $f->frm_Aiguiller();
        switch ( $ret ) {
        // MODIF 1ER APPEL      #############################################################
        case "A0" :
                $generation = 0;
                $f->frm_LibBoutons("Générer PDF","Quitter","Rétablir");
        break;
        // MODIF RE-ENTRANT #############################################################
        case "A1" :
                $generation = 1;
                $f->frm_ChampsRecopier();
                $f->frm_LibBoutons("Générer PDF","Quitter","Rétablir");
        break;
        default:
                header('location: carte_visite.php');
        break;
}
//include("theme_inc.php");
$f->frm_InitPalette(4);
$f->frm_ActiverBtnValider();
//appliquer_theme_sans_menu(4);
?>
<html>
<head>
<title>Configuration de la génération de la carte de visite</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" href="fpdfcvisite.ico">
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body >
<br>
<blockquote>
<?php
        print "<span class=titre1>Génération de cartes de visite</span>";
        $f->frm_Ouvrir();
        $pw = New PopupWindows; //      création d'un nouvel objet "fenetre"
        $pw->popup_cascade(600,50,25); //permet de fixer la position du postit
        $pw->popup_skin(5);     //force le theme de couleurs
        $pw->popup_style(1); // force le style
        $pw->popup_new( array(  'title' => "Conseil : Format des images",
                                                                'content' => "Le logo doit être une image <b>carrée</b> : dimension conseillée <b>120x120 pixels</b><br>
                                                                L'image de fond doit être <b>rectangulaire</b> pour éviter les déformations (ratio L/H=1.63) : dimension conseillée <b>900x550 pixels</b>"
,
                                                                'status' => "pour l'onglet Génération de carte",
                                                                 ),
                                                array());
        $pw2 = New PopupWindows; //     création d'un nouvel objet "fenetre"
        $pw2->popup_cascade(600,210,25);
        $pw2->popup_skin(0);    //force le theme de couleurs
        $pw2->popup_style(1); // force le style
        $pw2->popup_new( array( 'title' => "Attention!!!",
                                'content' => "<b>L'utilisation des images ralentit considérablement la génération des cartes de visites. Ne soyez pas surpris!</b>",
                                'status' => "PHP est lent!",
                                 ),
                        array());
        $f->frm_Fermer();
       
        if ($generation == 1)
                creation_carte();
?>
</blockquote>
</body>
</html>
<?php
function creation_carte()
{
        define("FPDF_FONTPATH","fpdf/font/");
        require("fpdf/fpdf.php");
        require_once("fpdf/PDF_CVisite.php");
        $prenom = utf8_decode($_POST["PRENOM"]);
        $nom = utf8_decode($_POST["NOM"]);
        $profession1 = utf8_decode($_POST["PROFESSION_1"]);
        $profession2 = utf8_decode($_POST["PROFESSION_2"]);
        $adresse = utf8_decode($_POST["ADRESSE"]);
        $codepostal = utf8_decode($_POST["CP"]);
        $ville = utf8_decode($_POST["VILLE"]);
        $telephone = utf8_decode($_POST["TELEPHONE"]);
        $portable = utf8_decode($_POST["PORTABLE"]);
        $fax = utf8_decode($_POST["FAX"]);
        $mail = utf8_decode($_POST["EMAIL"]);
        $web = utf8_decode($_POST["WEB"]);
        $nb_carte = $_POST["NB_CARTE_VISITE"];
        $coupe_on = $_POST["TRAIT_COUPE_ON"];
        $largeur_coupe = $_POST["LARGEUR_TRAIT_COUPE"];
        $entourage_on = $_POST["ENTOURAGE_CARTE_ON"];
        $type_entourage = $_POST["TYPE_ENTOURAGE"];
        $logo_on =      $_POST["LOGO_ON"];
        $file_logo = $_POST["LOGO"];
        $img_fond_on = $_POST["IMG_FOND_ON"];          
        $img_fond_transparence = 1-($_POST["IMG_FOND_TRANSPARENCE"]/100);
        $file_img_fond = $_POST["IMG_FOND"];
        $pdf = new PDF_CVisite(array(   'name'=>'cvisite',     
                'paper-size'=>'A4',
                'metric'=>'mm',
                'marginLeft'=>10,       //marge superieure
                'marginTop'=>10,        //marge inférieure
                'NX'=>2,                        //nombre de colonne
                'NY'=>5,                        //nombre de ligne
                'SpaceX'=>0,            //espace horiz entre les cartes
                'SpaceY'=>0,            //epsace vert entre les cartes
                'width'=>90,            //largeur de la carte
                'height'=>55,           //hauteur de la carte
                'font-size'=>9),        //taille par défaut de la police
                 'mm', 1, 1);           //1,1 veut dire que l'on commence à) générer les cartes de la première lignes première colonnes
        $pdf->Open();
        // On imprime les étiquettes
        for($i=1;$i<=$nb_carte;$i++)
        if ($profession2 != "")
        {
        $pdf->Add_PDF_CVisite("<nom>".$prenom." ".$nom."</nom>
<prof>"
.$profession1."</prof>
<prof>"
.$profession2."</prof>
<adr>"
.$adresse."
"
.$codepostal." ".$ville."</adr>",$telephone,$fax,$portable,$mail,$web,$coupe_on,$largeur_coupe,$entourage_on,$type_entourage,$img_fond_on,$file_img_fond,$img_fond_transparence,$logo_on,$file_logo);
        }
        else
        {
$pdf->Add_PDF_CVisite("<nom>".$prenom." ".$nom."</nom>
<prof>"
.$profession1."</prof>
<adr>"
.$adresse."
"
.$codepostal." ".$ville."</adr>",$telephone,$fax,$portable,$mail,$web,$coupe_on,$largeur_coupe,$entourage_on,$type_entourage,$img_fond_on,$file_img_fond,$img_fond_transparence,$logo_on,$file_logo);
        }
        $pdf->Close();
        $filename = utf8_encode($prenom)."_".utf8_encode($nom)."_".sprintf("%05s", mt_rand(1,99999))."_carte_visite.pdf";
        $pdf->Output("pdfs/".$filename,"F");
        $url = "pdfs/".$filename;
       
       
                print "<br>
                <table width=\"525px\">
                <tr><td>
                <center>
                <span class=titre1><a href=\""
.$url."\" target=\"_new\">Téléchargez votre carte de visite</a></span></center>
                </td></tr></table>"
;
}
// SECTION DE DEFINITION DES OBJETS CHAMPS
function definition_des_champs() {
        global $f;
        // ATTENTION NE PAS OUBLIER DE "GLOBALISER" TOUTES LES VARIABLES NECESSAIRES A CETTE FONCTION
       
        $tableau_nb_carte = array(      "1" => "1",
                                                        "10" => "10",
                                                        "20" => "20",
                                                        "30" => "30",
                                                        "40" => "40",
                                                        "50" => "50");
        $tableau_entourage = array(     "carre" => "Coins carré",
                                                        "rond" => "Coins arrondis");
        $tableau_trait_coupe = array(   "1" => "1",
                                                        "2" => "2",
                                                        "3" => "3",
                                                        "4" => "4",
                                                        "5" => "5");
        //Definition d'un onglet
        $f->frm_OngletDefinir( array("width" => "525px", "height" => "470px","default" => "Paramètres Personnels" ) );
               
        ///////////////////////////////////////////////////////////////////////
        ///// ONGLET PERE /////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////
        $f->frm_SautLignes();
        $f->frm_OngletNouveau('Paramètres Personnels');
        $f->frm_SautLignes();
        $f->frm_ObjetChampTexte("PRENOM", array( "label" => "Prénom",
                                                                                         "width"  => "250px",
                                                                                         "attrib" => "R",
                                                                                         "default" => "Jean",
                                                                                         "help" => "Saisir votre prénom")
                                                                                         );
        $f->frm_ObjetChampTexte("NOM", array( "label" => "Nom",
                                                                                         "width"  => "250px",
                                                                                        "attrib" => "R",
                                                                                         "default" => "Dupond",
                                                                                         "help" => "Saisir votre nom")
                                                                                         );
        $f->frm_ObjetChampTexte("PROFESSION_1", array( "label" => "Profession",
                                                                                         "width"  => "250px",
                                                                                        "attrib" => "R",
                                                                                         "default" => "Votre profession",
                                                                                         "help" => "Saisir votre profession")
                                                                                         );
        $f->frm_ObjetChampTexte("PROFESSION_2", array( "label" => "",
                                                                                         "width"  => "250px",
                                                                                        //"attrib" => "U",
                                                                                         "default" => "",
                                                                                         "help" => "Saisir votre profession")
                                                                                         );
        $f->frm_SautLignes();
        $f->frm_ObjetChampTexte("ADRESSE", array( "label" => "Adresse",
                                                                                         "width"  => "250px",
                                                                                        "attrib" => "R",
                                                                                         "default" => "Adresse",
                                                                                         "help" => "Saisir votre adresse")
                                                                                         );
        $f->frm_ObjetChampTexte("CP", array( "label" => "Code Postal",
                                                                                         "width"  => "80px",
                                                                                        "attrib" => "R",
                                                                                         "default" => "57000",
                                                                                         "mask" => "F#####",
                                                                                         "help" => "Saisir votre code postal")
                                                                                         );
        $f->frm_ObjetChampTexte("VILLE", array( "label" => "Ville",
                                                                                        "attrib" => "R",
                                                                                         "default" => "METZ",
                                                                                         "help" => "Saisir la ville de la Garderie")
                                                                                         );
        $f->frm_SautLignes();
        $f->frm_ObjetChampTexte("TELEPHONE",  
                                                                        array( "attrib" => "R",
                                                                               "label"  => "Téléphone",
                                                                               "width"  => "100px",
                                                                               "help"   => "Téléphone",
                                                                               "default" => "01.02.03.04.05",
                                                                                   "mask"   => "##.##.##.##.##")
                                                                                );
        $f->frm_ObjetChampTexte("PORTABLE",  
                                                                        array( "attrib" => "U",
                                                                               "label"  => "Portable",
                                                                               "width"  => "100px",
                                                                               "help"   => "Portable",
                                                                               "default" => "06.07.08.09.10",
                                                                                   "mask"   => "##.##.##.##.##")
                                                                                );
        $f->frm_ObjetChampTexte("FAX",  
                                                                        array( "attrib" => "U",
                                                                               "label"  => "Fax",
                                                                               "width"  => "100px",
                                                                               "help"   => "Fax",
                                                                                   "mask"   => "##.##.##.##.##")
                                                                                );
        $f->frm_ObjetChampTexte("EMAIL",  
                                                                        array( "attrib" => "M",
                                                                               "label"  => "Email",
                                                                               "width"  => "275px",
                                                                               "help"   => "Email",)
                                                                                );
        $f->frm_ObjetChampTexte("WEB",  
                                                                        array( "attrib" => "L",
                                                                               "label"  => "Site Web",
                                                                               "width"  => "275",
                                                                               "help"   => "Site web ",)
                                                                                );
                               
        $f->frm_OngletNouveau('Génération carte de visite');
        $f->frm_ObjetListe("NB_CARTE_VISITE",  
                                                                        array( "attrib"  => "R",
                                                                                   "title"      => "-- Choisir un nombre --",
                                                                               "label"   => "Nombre de cartes (10 par pages)",
                                                                               "default" => "1",
                                                                               "help"    => "Choisir le nombre de cartes",
                                                                               "width"   => "100px",)
                                                                        , $tableau_nb_carte
                                                                        );
        // DEFINITION D'UN CHAMP CASE A COCHER
        $f->frm_ObjetCoche("TRAIT_COUPE_ON",  
                                                                        array( "label"    => "Afficher les traits de découpe",
                                                                               "title"    => "Oui/Non",
                                                                               "default"  => "1",
                                                                               "help"     => "Cocher pour Oui, Décocher pour Non",
                                                                               "valueon"  => "1",
                                                                               "valueoff" => "0",
                                                                                "activation" => array("LARGEUR_TRAIT_COUPE") )
                                                                        );
        $f->frm_ObjetListe("LARGEUR_TRAIT_COUPE",  
                                                                        array( "attrib"  => "",
                                                                                   "title"      => "-- Choisir un nombre --",
                                                                               "label"   => "Largeur du trait de coupe en mm",
                                                                               "default" => "1",
                                                                               "help"    => "Choisir la largeur du trait de coupe",
                                                                               "width"   => "100px",)
                                                                        , $tableau_trait_coupe
                                                                        );
        $f->frm_SautLignes();
        // DEFINITION D'UN CHAMP CASE A COCHER
        $f->frm_ObjetCoche("ENTOURAGE_CARTE_ON",  
                                                                        array( "label"    => "Afficher le contour de la carte",
                                                                               "title"    => "Oui/Non",
                                                                               "default"  => "1",
                                                                               "help"     => "Cocher pour Oui, Décocher pour Non",
                                                                               "valueon"  => "1",
                                                                               "valueoff" => "0",
                                                                                   "activation" => array("TYPE_ENTOURAGE") )
                                                                        );
        $f->frm_ObjetListe("TYPE_ENTOURAGE",  
                                                                        array( "attrib"  => "",
                                                                                   "title"      => "-- Choisir un nombre --",
                                                                               "label"   => "Type de contour",
                                                                               "default" => "carre",
                                                                               "help"    => "Choisir le type de tour",
                                                                               "width"   => "100px",)
                                                                        , $tableau_entourage
                                                                        );
        $f->frm_SautLignes();
        // DEFINITION D'UN CHAMP CASE A COCHER
        $f->frm_ObjetCoche("LOGO_ON",  
                                                                        array( "label"    => "Afficher le logo sur la carte de visite",
                                                                               "title"    => "Oui/Non",
                                                                               "default"  => "1",
                                                                               "help"     => "Cocher pour Oui, Décocher pour Non",
                                                                               "valueon"  => "1",
                                                                               "valueoff" => "0",
                                                                                   "activation" => array("LOGO") )
                                                                                );
        // DEFINITION D'UN CHAMP SELECTEUR D'ICONES
        $f->frm_ObjetChampIcone("LOGO",  
                                                                        array( "label"     => "Sélectionnez le logo de la carte de visite",
                                                                               "winwidth"  => "800",
                                                                               "winheight" => "600",
                                                                                   "width" => "64",
                                                                                   "height" => "64",
                                                                               "url"       => "icones_popup.php",
                                                                               "path"      => "logos/",
                                                                               "default"   => "logos/cliquer2.png",
                                                                                   "help"   => "Sélectionnez une image png")
                                                                                );
                                                               
         $f->frm_ObjetUploader("UPLOAD_LOGO_CARTE",       array(
                                                                                "attrib" => "",
                                                                                "label" => "Télécharger une photo/image",
                                                                                "url" => "upload_logo_called.php",
                                                                                "default" => "",
                                                                                "title" => "Télécharger une photo",
                                                                                "extensions" => "GIF|PNG|JPG|JPEG",
                                                                                "overwrite" => true,
//                                                                              "delete" => true,
                                                                                "filter" => true,
                                                                                "prefix" => "logo_".sprintf("%05s", mt_rand(1,99999)).'_',
//                                                                              "multifiles" => true,
//                                                                              "multifilesmax" => -1,
                                                                                "target" => 'logos/',
                                                                                "preview" => true,
                                                                                "help" => "Télécharger des photos/images",
                                                                                "width" => "150px",
                                                                                "size" => "4" )
                                                                                  );
        // DEFINITION D'UN CHAMP CASE A COCHER
        $f->frm_ObjetCoche("IMG_FOND_ON",               array( "label"    => "Afficher l'image de fond sur la carte de visite",
                                                                               "title"    => "Oui/Non",
                                                                               "default"  => "1",
                                                                               "help"     => "Cocher pour Oui, Décocher pour Non",
                                                                               "valueon"  => "1",
                                                                               "valueoff" => "0",
                                                                                "activation" => array("IMG_FOND_TRANSPARENCE","IMG_FOND") )
                                                                                );
        $f->frm_ObjetSlider("IMG_FOND_TRANSPARENCE",    array(  "label" => "Transparence image de fond en % ",
                                                                        "orientation" => "H",
                                                                        "width" => "150px",
                                                                        "mini"=> "0",
                                                                        "maxi"=>"100",
                                                                        "default" => "0",
                                                                        "size" => "3",
                                                                        "help" => "choisir la transparence de l'image de fond")
                                                                        );
        // DEFINITION D'UN CHAMP SELECTEUR D'ICONES
        $f->frm_ObjetChampIcone("IMG_FOND",   array( "label"     => "Sélectionnez l'image du fond de la carte de visite",
                                                                               "winwidth"  => "800",
                                                                               "winheight" => "600",
                                                                                "width" => "64",
                                                                                "height" => "64",
                                                                               "url"       => "icones_popup.php",
                                                                               "path"      => "images/",
                                                                               "default"   => "images/cliquer2.png",
                                                                                   "help"   => "Sélectionnez une image png")
                                                                                );
         $f->frm_ObjetUploader("UPLOAD_IMAGE_CARTE",       array(
                                                                                "attrib" => "",
                                                                                "label" => "Télécharger une photo/image",
                                                                                "url" => "upload_image_called.php",
                                                                                "default" => "",
                                                                                "title" => "Télécharger une photo",
                                                                                "extensions" => "GIF|PNG|JPG|JPEG",
                                                                                "overwrite" => true,
//                                                                              "delete" => true,
                                                                                "filter" => true,
                                                                                "prefix" => "image_".sprintf("%05s", mt_rand(1,99999)).'_',
//                                                                              "multifiles" => true,
//                                                                              "multifilesmax" => -1,
                                                                                "target" => 'images/',
                                                                                "preview" => true,
                                                                                "help" => "Télécharger des photos/images",
                                                                                "width" => "150px",
                                                                                "size" => "4" )
                                                                                  );
        }
?>

Script icones_popup.php

<html>
<head>
<title>Choisir une icone</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" href="fpdfcvisite.ico">
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<BODY>
<?php
        include('include/classeForms.php');            
        $f = New Forms;
    $f->frm_Init();
        $f->frm_icone_popup_called();
        $f->frm_InitPalette(4);
?>
</body>
</html>

Script upload_image_called.php

<html>
<head>
<title>Choisir une photo/image</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" href="fpdfcvisite.ico">
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<BODY>
<?php
        include('include/classeForms.php');            
        $f = New Forms;
    $f->frm_Init();
        $f->frm_InitPalette(4);
        $f->frm_uploader( array(        'target'      => 'images/',
                                                                'maxfilesize' => 2048*1024,
                                                                'delete'      => true,
                                                                'space'       => '_',
                                                                'filter'      => true,
                                                                "extensions" => "GIF|PNG|JPG|JPEG",
//                                                              'overwrite' => true,
//                                                              'width' => '150px',
                                                        )
                                         );
?>
</body>
</html>

Script upload_logo_called.php

<html>
<head>
<title>Choisir une photo/image</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" href="fpdfcvisite.ico">
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<BODY>
<?php
        include('include/classeForms.php');            
        $f = New Forms;
    $f->frm_Init();
        $f->frm_InitPalette(4);
        $f->frm_uploader( array(        'target'      => 'logos/',
                                                                'maxfilesize' => 2048*1024,
                                                                'delete'      => true,
                                                                'space'       => '_',
                                                                'filter'      => true,
                                                                "extensions" => "GIF|PNG|JPG|JPEG",
//                                                              'overwrite' => true,
//                                                              'width' => '150px',
                                                        )
                                         );
?>
</body>
</html>

Météo

Metz, 57, France

Conditions météo à 16h00
par weather.com®

Soleil voilé

28°C


Soleil voilé
  • Vent : 11 km/h - ouest sud-ouest
  • Pression : 983 mbar tendance symbole
Prévisions >>

Prévisions du 23 août
par weather.com®

Inconnu

Max 28°C
Min 15°C


Inconnu
  • Vent : N/D km/h
  • Risque de precip. : %
<< Conditions  |  Prévisions >>

Prévisions du 24 août
par weather.com®

Soleil et nuages épars

Max 25°C
Min 15°C


Soleil et nuages épars
  • Vent : 11 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 25 août
par weather.com®

Soleil et nuages épars

Max 30°C
Min 18°C


Soleil et nuages épars
  • Vent : 9 km/h
  • Risque de precip. : 20%
<<  Prévisions  >>

Prévisions du 26 août
par weather.com®

Orage épars

Max 30°C
Min 18°C


Orage épars
  • Vent : 16 km/h
  • Risque de precip. : 50%
<<  Prévisions  >>

Prévisions du 27 août
par weather.com®

Orage épars

Max 26°C
Min 17°C


Orage épars
  • Vent : 11 km/h
  • Risque de precip. : 50%
<<  Prévisions  >>

Prévisions du 28 août
par weather.com®

Soleil voilé

Max 26°C
Min 16°C


Soleil voilé
  • Vent : 14 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 29 août
par weather.com®

Soleil et nuages épars

Max 26°C
Min 16°C


Soleil et nuages épars
  • Vent : 17 km/h
  • Risque de precip. : 10%
<< Prévisions


Brèves

25 février 2011 - Scilab : Application GUI

Application GUI dans Scilab : Étude des systèmes automatiques. Systèmes Linéaires

9 janvier 2011 - Modèle 3D dans Scilab

Afficher des patchs dans Scilab à partir de Modèle 3D blender. Modèle 3D dans (...)

2 octobre 2010 - Plugins LDraw pour Blender 2.49

Importez vos modèles LEGO (MLCad et autres) dans blender grâce au plugin d’importation (...)