Ответ 1
перед строкой $pdf- > writeHTML
$html = utf8_decode($html);
может быть
$html = utf8_encode($html);
Я использую версию библиотеки 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
перед строкой $pdf- > writeHTML
$html = utf8_decode($html);
может быть
$html = utf8_encode($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);
Это работает!
вам нужно сменить конструктор, установить UTF-8 flase и изменить новый charshet, как показано ниже:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
В приведенном выше примере я устанавливаю кодировку ISO-8859-1 вместо UTF-8, и я изменяю true на false.
Криш
У меня тоже была аналогичная проблема. Мне нужно было создать pdf файл из HTML файла с несколькими списками и знак галочки в качестве маркера.
Я пробовал все эти решения, но никто не работал, мне приходилось использовать изображение, но это замедляло процесс. Наконец, я пришел к этому: http://www.tcpdf.org/examples/example_055.pdf, в самом конце есть шрифт "zapfdingbats" с большим количеством символов.
Итак, я заменил все свои тиковые изображения на: <span>3<span>
и установил шрифт этого элемента в font-family="zapfdingbats"
, и он сработал. Он немного взломан, но работает хорошо.
Вы можете поместить текст в переменную и использовать функцию php для преобразования
пример для 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');
для других функций используйте справочник по php
Используется последняя версия 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);
Для меня это устранило проблему:
$this->pdf->AddPage('P', 'A4');
$this->pdf->deletePage($this->pdf->getNumPages());
Я надеюсь, что это поможет кому-то
Я пишу HTML-контент в PDF и должен напечатать символ галочки. Вот что я сделал, и это сработало.
$pdf->SetFont('zapfdingbats');
$pdf->SetFont('helvetica'); // for regular content
а затем в моем HTML я добавил галочку с кодом ниже
<span style="font-family: zapfdingbats;">4</span>
Надеюсь это