HTML-рендеринг с помощью TCPDF (PHP)

Я использую функцию writeHtml TCPDF для страницы, которая правильно отображается в браузере. В выходном PDF шрифты слишком малы. Я пробовал с setFont, но это не похоже на эффект. У кого-нибудь есть опыт?

Я хотел бы добавить здесь, что HTML не всегда находится под моим контролем, поэтому я бы предпочел сделать это с помощью параметров TCPDF (а не путем изменения исходного html)

UPDATE : я могу изменить размер шрифта, установив его на тело. Единственная оставшаяся проблема заключается в том, что для правильной визуализации в браузере это должно быть 12 пикселей. Чтобы правильно отобразить PDF-файл, он должен быть чем-то вроде 30px. Я устанавливаю носитель на css? Что такое тип мультимедиа для TCPDF?

Вы используете теги? HTML-движок tcpdf обеспечивает приоритет тега над любым CSS или другими тегами, регулирующими размер. Если вы удалите посторонние теги из HTML и используете прямой CSS, все должно выглядеть так, как ожидалось. Или, если вы не используете CSS, вам следует. Просто потому, что браузер отображает его правильно, это не значит, что он будет выглядеть одинаково в других форматах. Возможно, браузер выполнил какую-то магию, чтобы заполнить пробелы в ваших спецификациях CSS.


ОБНОВИТЬ

Вот пример указания объявлений CSS с вашим HTML при использовании tcpdf. Обратите внимание, что все стили применяются с помощью объявлений CSS внутри <style> вне фактического тела HTML.

 <?php $html = <<<EOF <!-- EXAMPLE OF CSS STYLE --> <style> h1 { color: navy; font-family: times; font-size: 24pt; text-decoration: underline; } p { color: red; font-family: helvetica; font-size: 12pt; } </style> <body> <h1>Example of <i>HTML + CSS</i></h1> <p>Example of 12pt styled paragraph.</p> </body> EOF; $pdf->writeHTML($html, true, false, true, false, ''); ?> 

TCPDF распознает базовые CSS, такие как размер шрифта, шрифт-шрифт и семейство шрифтов.

Для получения дополнительной информации проверьте TCPDF, не отображая все свойства CSS

Лучшим решением, которое сработало для меня, было заменить «px» на «pt» в html-коде:

 $tidy = str_replace ('px', 'pt', $tidy); 

Перед этим на левой стороне и после замены справа: Перед с левой стороны и после справа