Changes

Vidéos ajoutées par TechSC
Line 53: Line 53:  
La librairie utilisée pour la création de documents en PDF se nomme TCPDF et peut être trouvée dans htdocs/includes/tcpdf/tcpdf.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 TCPDF et peut être trouvée dans htdocs/includes/tcpdf/tcpdf.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.
   −
Les modèles eux-même instancient la classe FPDF et utilisent ensuite ses méthodes, combinées avec les données d'une facture, d'une commande ou d'autres types de données.
+
Les modèles de génération de pdf instancient un objet pdf par appel de pdf_getInstance() et utilisent ensuite ses méthodes, combinées avec les données d'une facture, d'une commande ou d'autres objets.
    
On retrouve généralement les appels suivants dans les scripts de création de documents:
 
On retrouve généralement les appels suivants dans les scripts de création de documents:
Line 81: Line 81:  
*Ajouter l'instruction :
 
*Ajouter l'instruction :
   −
<source lang="php">
+
<syntaxhighlight lang="php">
 
$pdf->Image(DOL_DOCUMENT_ROOT.'\societe\logo.jpg', 10, 5, 60.00);
 
$pdf->Image(DOL_DOCUMENT_ROOT.'\societe\logo.jpg', 10, 5, 60.00);
</source>
+
</syntaxhighlight>
 
Avec dans l'exemple : 10=abscisse, 5=ordonnée, 60=largeur logo
 
Avec dans l'exemple : 10=abscisse, 5=ordonnée, 60=largeur logo
   Line 92: Line 92:  
*ouvrir le fichier .php à modifier et insérer
 
*ouvrir le fichier .php à modifier et insérer
   −
<source lang="php">
+
<syntaxhighlight lang="php">
 
$pdf->Image(DOL_DOCUMENT_ROOT.'/mydir/signature.jpg',120,250,74);
 
$pdf->Image(DOL_DOCUMENT_ROOT.'/mydir/signature.jpg',120,250,74);
</source>
+
</syntaxhighlight>
 
l'image (largeur 74mm) est affichée colonne de droite juste avant le pied de page.
 
l'image (largeur 74mm) est affichée colonne de droite juste avant le pied de page.
   Line 102: Line 102:  
===Insertion de texte===
 
===Insertion de texte===
 
Principales fonctions utilisées
 
Principales fonctions utilisées
<source lang="php">
+
<syntaxhighlight lang="php">
 
$pdf->setX(float a); // fixe la position x courante
 
$pdf->setX(float a); // fixe la position x courante
 
$pdf->setY(float b); // fixe la position y courante
 
$pdf->setY(float b); // fixe la position y courante
Line 109: Line 109:  
$pdf->SetFont('Arial','B',14); // fixe la police, le type ( 'B' pour gras, 'I' pour italique, '' pour normal,...)
 
$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
 
$pdf->MultiCell(60, 8, 'Mon texte", 0, 'L'); // imprime 'Mon texte' avec saut de ligne
</source>
+
</syntaxhighlight>
 
Rappel : l'origine des fonctions setXY est le coin supérieur gauche de la page
 
Rappel : l'origine des fonctions setXY est le coin supérieur gauche de la page
    
==Pour plus d'infos==
 
==Pour plus d'infos==
   −
*http://www.fpdf.org/?lang=fr
+
*Liste des méthodes TCPDF: https://tcpdf.org/docs/srcdoc/
*Liste des méthodes : https://tcpdf.org/docs/srcdoc/
     −
=Activer son modèle dans Dolibarr=
+
=Proposer son modèle via un module=
Dans la fonction d'initialisation du module ajoutez votre modèle :
+
Si le modèle fabriqué est destiné à être livré via un module extension de Dolibarr (voir la doc pour faire un module Dolibarr), le fichier modèle ne sera pas dans le même répertoire que les autres, et ne sera donc pas détecté automatiquement. Pour  le rendre détectable vous devrez ajouter cette ligne dans la fonction d'initialisation de votre module externe :
   −
<source lang="php">
+
<syntaxhighlight lang="php">
sql=array("INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES(".$MODELNAME.",".$MODEL_TARGET_MODULE.",".$conf->entity." )");
+
sql=array("INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$MODELNAME."','".$MODEL_TARGET_MODULE."',".$conf->entity." )");
</source>
+
</syntaxhighlight>
    
avant
 
avant
   −
<source lang="php"> return $this->_init($sql,$option);</source>
+
<syntaxhighlight lang="php"> return $this->_init($sql,$option);</syntaxhighlight>
    
Puis
 
Puis
   −
Dans Accueil => Configuration => Modules =>
+
Dans Accueil => Configuration => Modules => Module sur lequel porte le modèle => Configurer
   −
*activer votre module qui doit apparaître
+
*activer votre module qui doit apparaître parmi ceux disponible
 
*éventuellement le mettre en modèle proposé par défaut.
 
*éventuellement le mettre en modèle proposé par défaut.
 +
 +
=Vidéos sur le sujet=
 +
<youtube width="200" height="120">dEC8hFcT71U</youtube>
 +
<youtube width="200" height="120">LtXPBz9fWQE</youtube>
148

edits