Я использую версию библиотеки TCPDF: 5.9.011. Я пытаюсь выполнить HTML-макет как PDF. Для чего я попытался с примером предоставить сайт
$html = '<h1>HTML Example</h1> <h2>List</h2> Some special characters: < € € € & è è © > \\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
Как уже упоминалось другими людьми, вам нужно сменить конструктор, установить 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());
Я надеюсь, что это поможет кому-то