Créez vos cartes de visite avec FPDF et ClasseForms
jeudi 27 octobre 2011
par
popularité : 20%
par
popularité : 20%

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
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>