2010-11-10 35 views
9

J'utilise TCPDF Library Version: 5.9.011. J'essaie d'exécuter la mise en page HTML en PDF. Pour que j'ai essayé avec par exemple fournir les siteTCPDF HTML avec des caractères spéciaux affiche le fichier PDF vide

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 
Some special characters: &lt; € &euro; &#8364; &amp; è &egrave; &copy; &gt; \\slash \\\\double-slash \\\\\\triple-slash 
'; 
// output the HTML content 
$pdf->writeHTML($html, true, false, true, false, ''); 

//Close and output PDF document 
$pdf->Output('example_006.pdf', 'I'); 

Apparemment constaté que PDF généré uniquement en-tête et pied de page par défaut avec le contenu du milieu blanc.

Cependant si je retire des caractères spéciaux comme:

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 
Some special characters: 
'; 

PDF tire son contenu du milieu tel que spécifié dans $html

Répondre

0

Vous utilisez dernière version des étapes TCPDF.Follow mentionné here. Il devrait fonctionner

+0

Je suis les mêmes étapes seulement. Mais pas de chance. –

+0

Le lien est maintenant mort. – beerwin

+1

@beerwin http://www.tcpdf.org/examples/example_006.phps – NullPointerException

4

vous devez changer constructeur, Set UTF-8 et flase changer charshet nouveau comme ci-dessous:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false); 

Dans l'exemple ci-dessus, je définir le codage ISO-8859-1 au lieu de UTF-8 et Je change vrai à faux.

Krish

+0

Définissez le paramètre $ unicode sur le constructeur TCPDF sur false et le paramètre $ encoding sur 'ISO-8859-1' ou une autre table de caractères – Elisa

9

Comme par d'autres personnes mentionnées, vous devez changer le constructeur, Set UTF-8 et flase changer charshet nouveau comme ci-dessous:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false); 

changeant seulement cela empêchera pas toujours obtenir une page blanche. Pour éviter d'obtenir une page vierge: changez votre type de police en 'helvetica' ou autre.

$pdf->SetFont('helvetica', '', 11, '', true); 

Cela fonctionne!

10

avant la ligne pdf- $> WriteHTML

$html = utf8_decode($html); 

peut-être

$html = utf8_encode($html); 
+0

utf8_decode tour pour moi! merci, devenait vraiment frustrant avec aucun message d'erreur pour me guider –

+0

$ output = utf8_encode ($ output); Résolvez mon problème! THX – NoBody

0

J'ai eu un problème similaire et je fixe tout ainsi:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'UTF-8', false, true); 

et à la fin:

$pdf->writeHTMLCell(0, 0, '', '', utf8_decode($html), 0, 1, 0, true, '', true); 
0

J'ai également eu un problème similaire. J'ai eu un pour générer un pdf à partir d'un fichier HTML avec plusieurs listes et un symbole de tick comme une puce.

J'ai essayé toutes ces solutions mais aucune n'a fonctionné, j'ai dû utiliser une image, mais cela ralentissait le processus. Enfin je suis tombé sur ceci: http://www.tcpdf.org/examples/example_055.pdf, à la toute fin il y a une police "zapfdingbats" avec beaucoup de symboles.

J'ai donc remplacé toutes mes images de tick par: <span>3<span> et définir la police de cet élément à font-family="zapfdingbats", et cela a fonctionné.C'est un peu hacky, mais ça fonctionne bien.

0

Vous pouvez mettre le texte dans une variable et utiliser une fonction php pour convertir

exemple UTF-8 caracter

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 

Some special characters: € è ù à \\ \\\ 
'; 
// output the HTML content 
$pdf->writeHTML(utf8_encode($html), true, false, true, false, ''); 

//Close and output PDF document 
$pdf->Output('example_006.pdf', 'I'); 

pour d'autres fonctions utilisation php reference guide

0

Pour moi, ce fixe le problème:

$this->pdf->AddPage('P', 'A4'); 
$this->pdf->deletePage($this->pdf->getNumPages()); 

J'espère que ça va p quelqu'un