31,003
edits
(Created page with '{{TemplateDocDevEn}} {{ToTranslate}} Ce document décrit comment créer son propre modèle de génération de document PDF afin de personnaliser ses documents (propales, factures...') |
mNo edit summary |
||
| Line 1: | Line 1: | ||
{{TemplateDocDevEn}} | {{TemplateDocDevEn}} | ||
{{ToTranslate}} | {{ToTranslate}} | ||
Ce document décrit comment créer son propre modèle de génération de document PDF afin de personnaliser ses documents (propales, factures, etc...) | Ce document décrit comment créer son propre modèle de génération de document PDF afin de personnaliser ses documents (propales, factures, etc...) | ||
Il se base sur les propositions commerciales comme exemple mais s'applique à tout type de document. | Il se base sur les propositions commerciales comme exemple mais s'applique à tout type de document. | ||
= Trouver le modèle existant le plus proche = | = Trouver le modèle existant le plus proche = | ||
Dans Dolibarr tester les modèles existants en | Dans Dolibarr, tester les modèles existants en allant dans la configuration du module puis en consultant l'aperçu en cliquant le picto "Aperçu" en fin de ligne du modèle. Consulter chacun des modèles disponibles. | ||
Parmi ceux existant, noter le modèle le | Parmi ceux existant, noter le modèle le plus proche de vos besoins. Dans cet exemple, c'est le modèle azur (correspondant au fichier pdf_propale_azur.modules.php). | ||
Rem: Pour info, tous les modèles | Rem: Pour info, tous les modèles sont dans htdocs/includes/modules psui le sous-répertoire propale pour les propositions commerciales, facture pours les factures, commandes pour les commandes, etc... | ||
= Créer le nouveau modèle = | = Créer le nouveau modèle = | ||
Par sécurité, on conservera les modèles d'origine. Pour l'exemple, on part du principe qu'on crée un nouveau module de proposition commercial qu'on nommera 'masocietebleu' et qui s'inspire du module ' | Par sécurité, on conservera les modèles d'origine. Pour l'exemple, on part du principe qu'on crée un nouveau module de proposition commercial qu'on nommera 'masocietebleu' et qui s'inspire du module 'azur': | ||
* copier-coller | * copier-coller pdf_propale_azur.modules.php | ||
* renommer la copie en pdf_propale_masocietebleu.modules.php | * renommer la copie en pdf_propale_masocietebleu.modules.php | ||
* l'éditer et faire les modifs suivantes dans le code: | * l'éditer et faire les modifs suivantes dans le code: | ||
# Renommer 'Class | # Renommer 'Class pdf_propale_azur { ' en 'Class pdf_propale_masocietebleu { ' | ||
# Renommer 'Function | # Renommer 'Function pdf_propale_azur($db=0)' en 'Function pdf_propale_masocietebleu($db=0)' | ||
# Sauvegarder : le modèle 'masocietebleu' est disponible dans la liste des modèles de propales de Dolibarr | # Sauvegarder : le modèle 'masocietebleu' est disponible dans la liste des modèles de propales de Dolibarr | ||
* Tester ce modèle (Voir | * Tester ce modèle (Voir chapitre précédent) avant d'aller plus loin... | ||
= Personnaliser = | = Personnaliser = | ||
Personnaliser le modèle créé. | Personnaliser le modèle créé. | ||
Toujours dans pdf_propale_masocietebleu.modules.php, chercher la fonction 'Function _pagehead(&$pdf, $fac)' | Toujours dans pdf_propale_masocietebleu.modules.php, chercher la fonction 'Function _pagehead(&$pdf, $fac)'. C'est elle qui gère l'affichage de l'entête. | ||
== Librairie de création == | == Librairie de création == | ||
La librairie utilisée pour la création de documents en PDF se nomme FPDF et peut être trouvée dans htdocs/includes/fpdf/fpdf/fpdf.class.php. C'est également dans cette classe que l'on trouve les nombreuses méthodes utilisées pour générer les différents éléments des documents. | La librairie utilisée pour la création de documents en PDF se nomme FPDF et peut être trouvée dans htdocs/includes/fpdf/fpdf/fpdf.class.php. C'est également dans cette classe que l'on trouve les nombreuses méthodes utilisées pour générer les différents éléments des documents. | ||
| Line 40: | Line 37: | ||
* $pdf->SetDrawColor() - ''Désigne la couleur à utiliser pour le prochain texte à écrire - généralement noir (0,0,0) ou blanc (255,255,255)'' | * $pdf->SetDrawColor() - ''Désigne la couleur à utiliser pour le prochain texte à écrire - généralement noir (0,0,0) ou blanc (255,255,255)'' | ||
* $pdf->Rect() - ''Dessine un rectangle dont le coin supérieur gauche est au point indiqué par les deux premiers paramètres et le coin inférieur droit utilise les deux derniers paramètres en mode relatif aux deux premiers'' | * $pdf->Rect() - ''Dessine un rectangle dont le coin supérieur gauche est au point indiqué par les deux premiers paramètres et le coin inférieur droit utilise les deux derniers paramètres en mode relatif aux deux premiers'' | ||
== Structure des scripts == | == Structure des scripts == | ||
Les scripts de génération des documents PDF, au moment du développement de la version 2.2, disposent des méthodes suivantes (prenant pour exemple le modèle "crabe") au sein de la classe du nom du modèle: | Les scripts de génération des documents PDF, au moment du développement de la version 2.2, disposent des méthodes suivantes (prenant pour exemple le modèle "crabe") au sein de la classe du nom du modèle: | ||
* pdf_crabe() - ''Constructeur de l'objet pdf'' | * pdf_crabe() - ''Constructeur de l'objet pdf'' | ||
| Line 53: | Line 48: | ||
* _tableau_versement() - ''Méthode de dessin du tableau des règles de versement'' | * _tableau_versement() - ''Méthode de dessin du tableau des règles de versement'' | ||
* _pagefoot() - ''Méthode de dessin du pied de page'' | * _pagefoot() - ''Méthode de dessin du pied de page'' | ||
== Insertion d'un logo == | == Insertion d'un logo == | ||
* Ajouter l'instruction: | * Ajouter l'instruction: | ||
<source lang="php"> | |||
* | $pdf->Image('\www\htdocs\dolibarr\document\societe\logo.jpg', 10, 5, 60.00); | ||
</source> | |||
Avec dans l'exemple: 10=abscisse, 5=ordonnée, 60=largeur logo | |||
* Si le logo se trouve par dessous ou dessus du text existant, supprimer le texte existant en commentant le code qui affiche l'information ou en modifiant sa position. | |||
== Modification des constantes affichées == | == Modification des constantes affichées == | ||
Principales fonctions utilisées | Principales fonctions utilisées | ||
<source lang="php"> | |||
$pdf->setX(float a); // fixe la position x courante | |||
$pdf->setY(float b); // fixe la position y courante | |||
$pdf->setXY(float a,float b); // fixe les positions x et y courantes | |||
$pdf->SetTextColor(0,0,200); // fixe la couleur du texte | |||
$pdf->SetFont('Arial','B',14); // fixe la police, le type ( 'B' pour gras, 'I' pour italique, '' pour normal,...) | |||
$pdf->MultiCell(60, 8, 'Mon texte", 0, 'L'); // imprime 'Mon texte' avec saut de ligne | |||
</source> | |||
Rappel: l'origine des fonction setXY est le coin supérieur gauche | |||
== Pour plus d'infos == | == Pour plus d'infos == | ||
http://www.fpdf.org/?go=script&id=2 et aller sur 'accueil' | http://www.fpdf.org/?go=script&id=2 et aller sur 'accueil' | ||
= Choisir un modèle par défaut dans Dolibarr = | = Choisir un modèle par défaut dans Dolibarr = | ||
Dans Accueil => Configuration => | Dans Accueil => Configuration => Modules => Module qui manipule des modèles PDF: | ||
* on indique ceux qui doivent être actifs, | * on indique ceux qui doivent être actifs, | ||
* on précise le modèle proposé par défaut. | * on précise le modèle proposé par défaut. | ||