Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/universe/lib/h5c1accba-fpdf181/ |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>FAQ</title> <link type="text/css" rel="stylesheet" href="fpdf.css"> <style type="text/css"> ul {list-style-type:none; margin:0; padding:0} ul#answers li {margin-top:1.8em} .question {font-weight:bold; color:#900000} </style> </head> <body> <h1>FAQ</h1> <ul> <li><b>1.</b> <a href='#q1'>Quelle est exactement la licence de FPDF ? Y a-t-il des restrictions d'utilisation ?</a></li> <li><b>2.</b> <a href='#q2'>J'ai l'erreur suivante quand j'essaie de g�n�rer un PDF : Some data has already been output, can't send PDF file</a></li> <li><b>3.</b> <a href='#q3'>Les caract�res accentu�s sont remplac�s par des caract�res bizarres, par exemple é.</a></li> <li><b>4.</b> <a href='#q4'>J'essaie de mettre le caract�re euro mais je n'y arrive pas.</a></li> <li><b>5.</b> <a href='#q5'>J'essaie d'afficher une variable dans la m�thode Header mais rien ne s'imprime.</a></li> <li><b>6.</b> <a href='#q6'>J'ai d�fini les m�thodes Header et Footer dans ma classe PDF mais rien ne s'affiche.</a></li> <li><b>7.</b> <a href='#q7'>Je n'arrive pas � faire de retour � la ligne. J'ai bien mis \n dans la cha�ne imprim�e par MultiCell mais �a ne marche pas.</a></li> <li><b>8.</b> <a href='#q8'>J'utilise jQuery pour g�n�rer le PDF mais il ne s'affiche pas.</a></li> <li><b>9.</b> <a href='#q9'>Je dessine un cadre avec des dimensions tr�s pr�cises, mais � l'impression je constate des �carts.</a></li> <li><b>10.</b> <a href='#q10'>Je voudrais utiliser toute la surface de la page mais � l'impression j'ai toujours des marges. Comment les enlever ?</a></li> <li><b>11.</b> <a href='#q11'>Comment mettre un fond � mon PDF ?</a></li> <li><b>12.</b> <a href='#q12'>Comment mettre un en-t�te ou un pied sp�cifique � la premi�re page ?</a></li> <li><b>13.</b> <a href='#q13'>J'aimerais utiliser des extensions fournies par diff�rents scripts. Comment les combiner ?</a></li> <li><b>14.</b> <a href='#q14'>Comment ouvrir le PDF dans un nouvel onglet ?</a></li> <li><b>15.</b> <a href='#q15'>Comment envoyer le PDF par mail ?</a></li> <li><b>16.</b> <a href='#q16'>Quelle est la taille limite des fichiers que je peux g�n�rer avec FPDF ?</a></li> <li><b>17.</b> <a href='#q17'>Est-ce que je peux modifier un PDF avec FPDF ?</a></li> <li><b>18.</b> <a href='#q18'>Je voudrais faire un moteur de recherche en PHP et indexer des PDF. Est-ce que je peux le faire avec FPDF ?</a></li> <li><b>19.</b> <a href='#q19'>Est-ce que je peux transformer une page HTML en PDF avec FPDF ?</a></li> <li><b>20.</b> <a href='#q20'>Est-ce que je peux concat�ner des PDF avec FPDF ?</a></li> </ul> <ul id='answers'> <li id='q1'> <p><b>1.</b> <span class='question'>Quelle est exactement la licence de FPDF ? Y a-t-il des restrictions d'utilisation ?</span></p> La licence de FPDF est permissive : il n'y a pas de restriction d'usage. Vous pouvez l'incorporer librement dans votre application (commerciale ou non), avec ou sans modification. </li> <li id='q2'> <p><b>2.</b> <span class='question'>J'ai l'erreur suivante quand j'essaie de g�n�rer un PDF : Some data has already been output, can't send PDF file</span></p> Il ne faut rien envoyer d'autre au navigateur que le PDF lui-m�me : pas d'HTML, pas d'espace, pas de retour-chariot. Un cas fr�quent est d'avoir des lignes vides � la fin d'un fichier inclus.<br> Si vous ne trouvez pas l'origine du probl�me, cet autre message apparaissant juste avant peut vous aider :<br> <br> <b>Warning:</b> Cannot modify header information - headers already sent by (output started at script.php:X)<br> <br> Cela signifie que script.php envoie quelque chose � la ligne X. Allez � cette ligne et corrigez-l�. Si le message n'appara�t pas, v�rifiez d'abord que vous n'avez pas d�sactiv� l'affichage des erreurs, puis ajoutez cette ligne au tout d�but du script : <div class="doc-source"> <pre><code>ob_end_clean();</code></pre> </div> S'il n'appara�t toujours pas, d�sactivez l'option zlib.output_compression dans votre php.ini. </li> <li id='q3'> <p><b>3.</b> <span class='question'>Les caract�res accentu�s sont remplac�s par des caract�res bizarres, par exemple é.</span></p> Il ne faut pas utiliser l'encodage UTF-8 avec les polices standards ; elles attendent de l'ISO-8859-1 ou windows-1252. On peut effectuer une conversion en ISO-8859-1 gr�ce � utf8_decode() : <div class="doc-source"> <pre><code>$str = utf8_decode($str);</code></pre> </div> Mais certains caract�res comme l'euro ne seront pas correctement traduits. Si vous disposez de l'extension iconv, la bonne mani�re de faire est la suivante : <div class="doc-source"> <pre><code>$str = iconv('UTF-8', 'windows-1252', $str);</code></pre> </div> Dans le cas o� vous auriez besoin de caract�res en dehors de windows-1252, consultez le tutoriel 7 ou bien utilisez <a href="http://www.fpdf.org/?go=script&id=92" target="_blank">tFPDF</a>. </li> <li id='q4'> <p><b>4.</b> <span class='question'>J'essaie de mettre le caract�re euro mais je n'y arrive pas.</span></p> Pour les polices standards, le caract�re euro a pour code 128. Vous pouvez par commodit� d�finir une constante comme suit : <div class="doc-source"> <pre><code>define('EURO', chr(128));</code></pre> </div> </li> <li id='q5'> <p><b>5.</b> <span class='question'>J'essaie d'afficher une variable dans la m�thode Header mais rien ne s'imprime.</span></p> Il faut utiliser le mot-cl� <code>global</code> pour acc�der aux variables globales, par exemple : <div class="doc-source"> <pre><code>function Header() { global $titre; $this->SetFont('Arial', 'B', 15); $this->Cell(0, 10, $titre, 1, 1, 'C'); } $titre = 'Mon titre';</code></pre> </div> Il est �galement possible de passer par une propri�t� de l'objet : <div class="doc-source"> <pre><code>function Header() { $this->SetFont('Arial', 'B', 15); $this->Cell(0, 10, $this->titre, 1, 1, 'C'); } $pdf->titre = 'Mon titre';</code></pre> </div> </li> <li id='q6'> <p><b>6.</b> <span class='question'>J'ai d�fini les m�thodes Header et Footer dans ma classe PDF mais rien ne s'affiche.</span></p> Il faut cr�er un objet de la classe PDF et non pas FPDF : <div class="doc-source"> <pre><code>$pdf = new PDF();</code></pre> </div> </li> <li id='q7'> <p><b>7.</b> <span class='question'>Je n'arrive pas � faire de retour � la ligne. J'ai bien mis \n dans la cha�ne imprim�e par MultiCell mais �a ne marche pas.</span></p> Il faut mettre la cha�ne entre guillemets et non pas entre apostrophes. </li> <li id='q8'> <p><b>8.</b> <span class='question'>J'utilise jQuery pour g�n�rer le PDF mais il ne s'affiche pas.</span></p> Ne faites pas de requ�te AJAX pour r�cup�rer le PDF. </li> <li id='q9'> <p><b>9.</b> <span class='question'>Je dessine un cadre avec des dimensions tr�s pr�cises, mais � l'impression je constate des �carts.</span></p> Pour respecter les dimensions, il faut s�lectionner "Aucune" au lieu de "R�duire � la zone d'impression" dans la bo�te de dialogue d'impression. </li> <li id='q10'> <p><b>10.</b> <span class='question'>Je voudrais utiliser toute la surface de la page mais � l'impression j'ai toujours des marges. Comment les enlever ?</span></p> Les imprimantes ont des marges physiques (variables en fonction du mod�le), il est donc impossible de les supprimer et d'imprimer sur la totalit� de la page. </li> <li id='q11'> <p><b>11.</b> <span class='question'>Comment mettre un fond � mon PDF ?</span></p> Pour une image, appelez Image() dans la m�thode Header(), avant toute autre �criture. Pour mettre simplement une couleur, utilisez Rect(). </li> <li id='q12'> <p><b>12.</b> <span class='question'>Comment mettre un en-t�te ou un pied sp�cifique � la premi�re page ?</span></p> Il suffit de tester le num�ro de page : <div class="doc-source"> <pre><code>function Header() { if($this->PageNo()==1) { //Premi�re page ... } else { //Pages suivantes ... } }</code></pre> </div> </li> <li id='q13'> <p><b>13.</b> <span class='question'>J'aimerais utiliser des extensions fournies par diff�rents scripts. Comment les combiner ?</span></p> Utilisez une cha�ne d'h�ritage. Si vous avez deux classes, par exemple A dans a.php : <div class="doc-source"> <pre><code>require('fpdf.php'); class A extends FPDF { ... }</code></pre> </div> et B dans b.php : <div class="doc-source"> <pre><code>require('fpdf.php'); class B extends FPDF { ... }</code></pre> </div> alors faites h�riter B de A : <div class="doc-source"> <pre><code>require('a.php'); class B extends A { ... }</code></pre> </div> et faites h�riter votre propre classe de B : <div class="doc-source"> <pre><code>require('b.php'); class PDF extends B { ... } $pdf = new PDF();</code></pre> </div> </li> <li id='q14'> <p><b>14.</b> <span class='question'>Comment ouvrir le PDF dans un nouvel onglet ?</span></p> De la m�me mani�re que pour une page HTML : ajoutez target="_blank" � votre lien ou formulaire. </li> <li id='q15'> <p><b>15.</b> <span class='question'>Comment envoyer le PDF par mail ?</span></p> Comme n'importe quel autre fichier, mais une mani�re simple de faire est d'utiliser <a href="http://phpmailer.codeworxtech.com" target="_blank">PHPMailer</a> et sa fonction d'attachement en m�moire : <div class="doc-source"> <pre><code>$mail = new PHPMailer(); ... $doc = $pdf->Output('S'); $mail->AddStringAttachment($doc, 'doc.pdf', 'base64', 'application/pdf'); $mail->Send();</code></pre> </div> </li> <li id='q16'> <p><b>16.</b> <span class='question'>Quelle est la taille limite des fichiers que je peux g�n�rer avec FPDF ?</span></p> Il n'y a pas de limite particuli�re. Il existe cependant certaines contraintes : <br> <br> - La taille m�moire allou�e aux scripts PHP est g�n�ralement limit�e. Pour de tr�s gros documents, en particulier avec des images, cette limite peut �tre atteinte (le fichier �tant construit en m�moire). Elle est param�tr�e dans php.ini. <br> <br> - Le temps d'ex�cution allou� par d�faut aux scripts est de 30 secondes. Cette limite peut bien entendu �tre facilement d�pass�e. Elle est param�tr�e dans php.ini et peut �tre �ventuellement modifi�e � l'ex�cution par set_time_limit(). <br> <br> Il est possible de contourner la limitation m�moire � l'aide de <a href="http://www.fpdf.org/?go=script&id=76" target="_blank">ce script</a>. </li> <li id='q17'> <p><b>17.</b> <span class='question'>Est-ce que je peux modifier un PDF avec FPDF ?</span></p> Il est possible d'importer des pages d'un PDF existant gr�ce � l'extension <a href="https://www.setasign.com/products/fpdi/about/" target="_blank">FPDI</a>. On peut ensuite leur ajouter du contenu. </li> <li id='q18'> <p><b>18.</b> <span class='question'>Je voudrais faire un moteur de recherche en PHP et indexer des PDF. Est-ce que je peux le faire avec FPDF ?</span></p> Non. Par contre il existe un utilitaire gratuit, pdftotext, capable d'extraire le contenu textuel d'un PDF. Il est fourni avec l'archive de <a href="http://www.foolabs.com/xpdf/" target="_blank">Xpdf</a>. </li> <li id='q19'> <p><b>19.</b> <span class='question'>Est-ce que je peux transformer une page HTML en PDF avec FPDF ?</span></p> On ne peut convertir que de l'HTML tr�s simple, pas des pages r�elles. Par contre il existe un utilitaire gratuit, <a href="https://www.msweet.org/projects.php?Z1" target="_blank">HTMLDOC</a>, qui permet de le faire et donne de bons r�sultats. </li> <li id='q20'> <p><b>20.</b> <span class='question'>Est-ce que je peux concat�ner des PDF avec FPDF ?</span></p> Pas directement, mais il est possible d'utiliser <a href="https://www.setasign.com/products/fpdi/demos/concatenate-fake/" target="_blank">FPDI</a> pour cela. Des utilitaires gratuits en ligne de commande existent �galement : <a href="https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/" target="_blank">pdftk</a> et <a href="http://thierry.schmit.free.fr/spip/spip.php?article4" target="_blank">mbtPdfAsm</a>. </li> </ul> </body> </html>