Рендеринг HTML с помощью TCPDF (PHP) - PullRequest
3 голосов
/ 24 января 2012

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

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

ОБНОВЛЕНИЕ : я могу изменить размер шрифта, установив его на теле.Единственная оставшаяся проблема заключается в том, что для корректного рендеринга в браузере он должен быть 12px.Чтобы правильно отобразить в PDF, это должно быть что-то вроде 30px.Я устанавливаю СМИ на CSS?Какой тип носителя для TCPDF?

Ответы [ 3 ]

4 голосов
/ 24 января 2012

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


UPDATE

Вот пример указания объявлений 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, '');

?>
0 голосов
/ 20 июня 2013

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

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

До левой стороны и после замены справа: Before on the left side and after on the right

0 голосов
/ 24 января 2012

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

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

...