2010-11-10 13 views
9

Sto usando la versione della libreria TCPDF: 5.9.011. Sto cercando di eseguire il layout HTML come PDF. Per il quale ho provato con l'esempio di fornire con la siteHTML TCPDF con caratteri speciali visualizza il file PDF vuoto

$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'); 

A quanto pare ha scoperto che ha generato PDF solo intestazione e piè di default con vuoto di contenuti media.

Tuttavia se rimuovere i caratteri speciali come:

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

PDF ottiene il suo contenuto centrale come specificato nel $html

risposta

0

Si sta utilizzando la versione più recente di passi TCPDF.Follow menzionato here. Dovrebbe funzionare

+0

Sto seguendo solo gli stessi passaggi. Ma senza fortuna. –

+0

Il link è ora morto. – beerwin

+1

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

4

è necessario modificare costruttore, Set UTF-8 flase e cambiare nuova charshet come di seguito:

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

Nell'esempio di cui sopra, ho impostato la codifica ISO-8859-1, invece di UTF-8 e Cambio vero a falso.

Krish

+0

imposta il parametro $ unicode sul costruttore TCPDF su false e il parametro $ encoding su 'ISO-8859-1' o un'altra mappa caratteri – Elisa

9

Come già menzionati da altre persone è necessario modificare il costruttore, Set UTF-8 flase e cambiare nuova charshet come di seguito:

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

Solo cambiando questo non sarà sempre evitare di ottenere una pagina vuota. Per evitare di ottenere una pagina vuota: cambia il tipo di carattere in "helvetica" o altro.

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

Funziona!

10

prima linea $ pdf-> writeHTML

$html = utf8_decode($html); 

forse

$html = utf8_encode($html); 
+0

utf8_decode ha fatto il trucco per me! grazie, stava diventando davvero frustrante senza alcun messaggio di errore per guidarmi –

+0

$ output = utf8_encode ($ output); risolvi il mio problema! grazie – NoBody

0

ho avuto un problema simile e ho sistemato tutto in questo modo:

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

e al Alla fine:

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

Ho avuto anche un problema simile. Ho avuto a generare un pdf da un file HTML con più elenchi e un simbolo di spunta come punto elenco.

Ho provato tutte queste soluzioni ma nessuna ha funzionato, ho dovuto usare un'immagine, ma stava rallentando il processo. Finalmente sono arrivato a questo: http://www.tcpdf.org/examples/example_055.pdf, alla fine c'è un font "zapfdingbats" con molti simboli.

Così ho sostituito tutte le mie immagini tick per: <span>3<span> e impostato il font di questo elemento su font-family="zapfdingbats", e ha funzionato. È un po 'hacky, ma funziona bene.

0

È possibile inserire il testo in una variabile e utilizzare una funzione php per convertire

esempio per 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'); 

per altri usi funzione php reference guide

0

Per me, questo fissa il problema:

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

Spero che sarà p qualcuno