2010-11-10 17 views
9

Używam biblioteki TCPDF Wersja: 5.9.011. Próbuję wykonać układ HTML jako PDF. Dla których próbowałem z przykładu dostarczają z siteHTML TCPDF ze specjalnymi znakami wyświetla pusty plik PDF

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

Widocznie stwierdził, że generowany PDF tylko domyślny nagłówek i stopka ze środkowym zawartości puste.

Jednak jeśli usunąć znaki specjalne jak:

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

PDF dostaje swoją środkową treści określonej w $html

Odpowiedz

0

Używasz najnowszej wersji krokach TCPDF.Follow wspomniano here. Powinien działać

+0

Podążam tymi samymi krokami. Ale bez powodzenia. –

+0

Link jest teraz martwy. – beerwin

+1

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

4

trzeba zmienić konstruktora, zestaw UTF-8 flase i zmienić nowy charshet jak poniżej:

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

W powyższym przykładzie, zestaw kodowania ISO-8859-1 zamiast UTF-8 i Zmieniam wartość true na false.

Krish

+0

ustawić parametr $ unicode na konstruktorze TCPDF na false, a parametr $ kodowania na "ISO-8859-1" lub inną mapę znaków – Elisa

9

Jak już mentionned przez inne osoby, które trzeba zmienić konstruktora Set UTF-8 flase i zmienić nowy charshet jak poniżej:

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

Tylko zmieniając to nie zawsze uniemożliwi uzyskanie pusta strona. Aby zapobiec wyświetlaniu pustej strony: zmień typ czcionki na "helvetica" lub inny.

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

Działa!

10

zanim linia $ PDF-> writeHTML

$html = utf8_decode($html); 

być może

$html = utf8_encode($html); 
+0

utf8_decode wykonał sztuczka dla mnie! dzięki, robiąc się naprawdę frustrującym bez żadnego komunikatu o błędzie, by poprowadzić mnie –

+0

$ output = utf8_encode ($ output); rozwiązać mój problem! dzięki – NoBody

0

miałem podobny problem i naprawiłem wszystko w ten sposób:

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

i na koniec:

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

Miałem również podobny problem. Musiałem wygenerować plik PDF z pliku HTML z wieloma listami i symbolem znacznika jako punktem wypunktowania.

Próbowałem wszystkich tych rozwiązań, ale żaden nie działał, musiałem użyć obrazu, ale spowalniało to proces. W końcu doszedłem do tego: http://www.tcpdf.org/examples/example_055.pdf, na samym końcu znajduje się czcionka "zapfdingbats" z wieloma symbolami.

Wymieniłem wszystkie moje obrazy kleszczami: <span>3<span> i ustawiłem czcionkę tego elementu na font-family="zapfdingbats", i zadziałało. To jest trochę hacky, ale działa dobrze.

0

można umieścić tekst w zmiennej i użyć funkcji php do konwersji

Przykład UTF-8 anahi

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

do innego wykorzystania funkcji php reference guide

0

Dla mnie to stałe Problem:

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

Mam nadzieję, że będzie to hel p ktoś

Powiązane problemy