TCPDF HTML со специальными символами отображает пустой файл PDF

Я использую версию библиотеки TCPDF: 5.9.011. Я пытаюсь выполнить HTML-макет как PDF. Для чего я попытался с примером предоставить сайт

$html = '<h1>HTML Example</h1> <h2>List</h2> Some special characters: &lt; € &euro; € &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'); 

По-видимому, обнаружено, что сгенерированный PDF-файл по умолчанию содержит только верхний и нижний колонтитулы по умолчанию, а средний контент пуст

Однако, если я удалю специальные символы, например:

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

PDF получает свое среднее содержимое, указанное в $html

Solutions Collecting From Web of "TCPDF HTML со специальными символами отображает пустой файл PDF"

Как уже упоминалось другими людьми, вам нужно сменить конструктор, установить UTF-8 flase и изменить новый charshet, как показано ниже:

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

Только изменение этого не всегда будет препятствовать получению пустой страницы. Чтобы предотвратить получение пустой страницы: измените тип шрифта на «helvetica» или другое.

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

Оно работает!

перед строкой $ pdf-> writeHTML

 $html = utf8_decode($html); 

может быть

 $html = utf8_encode($html); 

вам нужно сменить конструктор, установить UTF-8 и изменить новый charshet, как показано ниже:

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

В приведенном выше примере я устанавливаю кодировку ISO-8859-1 вместо UTF-8, и я изменяю true на false.

Криш

Вы используете последнюю версию TCPDF.Примечания, описанные здесь . Он должен работать

У меня была аналогичная проблема, и я исправил все так:

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

и в конце:

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

У меня тоже была аналогичная проблема. Мне нужно было создать pdf-файл из HTML-файла с несколькими списками и знак галочки в виде маркера.

Я пробовал все эти решения, но никто не работал, мне приходилось использовать изображение, но это замедляло процесс. Наконец, я пришел к этому: http://www.tcpdf.org/examples/example_055.pdf , в самом конце есть шрифт «zapfdingbats» с большим количеством символов.

Поэтому я заменил все свои тиковые изображения на: <span>3<span> и установил шрифт этого элемента в font-family="zapfdingbats" , и он сработал. Это немного хакерский, но он работает хорошо.

Вы можете поместить текст в переменную и использовать функцию php для преобразования

пример для UTF-8

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

для других функций используйте справочник по php

Для меня это поставило проблему:

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

Я надеюсь, что это поможет кому-то