DOMPDF создает пустой PDF

Я использую библиотеку DOMPDF 0.6.0 beta 3 для создания файлов PDF с использованием PHP. Некоторые из моих html могут быть правильно преобразованы в PDF, а некоторые нет. Ниже приведен пример того, который не может. Я проверил свой html через валидатор w3c html. Что я могу сделать, чтобы решить эту проблему?

<?php
  require_once("dompdf/dompdf_config.inc.php");
    $html = "<!DOCTYPE html>
            <html>
              <head>
              <title></title>
                      <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
              </head>
             <body>
                 <p>Algarve Bird Watching Festival About to Begin</p>
                 <p><span style='font-family:calibri;font-size:11pt'>&nbsp;</span></p>
                 <p>Test Title</p>
                 <p>Lorem ipsum sit dolor amet<sup>th</sup> Lorem ipsum sit dolor amet </p>
                 <p>Lorem ipsum sit dolor amet</p>
                 <p>Lorem ipsum sit dolor amet </p>
                 <p>Lorem ipsum sit dolor amet <a href='http://www.test.com'>test</a>
                  Lorem ipsum sit dolor amet &nbsp; 
                  </p>
    <p><span style='font-family:calibri;font-size:11pt'>&nbsp;</span></p>
             </body>
             </html>";

    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->set_paper("a4", "portrait");
    $dompdf->render();
    $dompdf->stream();
?>

person Ersel Aker    schedule 20.09.2012    source источник
comment
Вы должны удалять строку за строкой и всегда проверять, будет ли DOMPDF работать без этой строки.   -  person yunzen    schedule 20.09.2012
comment
Пустой PDF или совершенно чистая страница? Вы получаете какие-либо ошибки от PHP?   -  person BrianS    schedule 21.09.2012
comment
@ersel Эй, Эрсель, как ты решил эту проблему? Я столкнулся с этой точной проблемой и ничего не получаю с ней. Не могли бы вы помочь мне, объяснив, что вы сделали?   -  person Sushil    schedule 21.08.2013
comment
Привет, Сушил, в итоге я перешел на другую библиотеку. Я не могу вспомнить, какой из них я использовал, хотя.   -  person Ersel Aker    schedule 23.08.2013


Ответы (2)


Проверьте свои двойные кавычки:

$html = '<!DOCTYPE html>
        <html>
          <head>
          <title></title>
                  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
          </head>
         <body>
             <p>Algarve Bird Watching Festival About to Begin</p>
             <p><span style="font-family:calibri;font-size:11pt">&nbsp;</span></p>
             <p>Test Title</p>
             <p>Lorem ipsum sit dolor amet<sup>th</sup> Lorem ipsum sit dolor amet </p>
             <p>Lorem ipsum sit dolor amet</p>
             <p>Lorem ipsum sit dolor amet </p>
             <p>Lorem ipsum sit dolor amet <a href="http://www.test.com">test</a>
              Lorem ipsum sit dolor amet &nbsp; 
              </p>
<p><span style="font-family:calibri;font-size:11pt">&nbsp;</span></p>
         </body>
         </html>';

редактировать

кроме того, DOMPDF может не знать калибр шрифта.


редактировать

У вас нет контента с тегом <title>. Может ли это быть причиной?

person yunzen    schedule 20.09.2012
comment
Извините, я неправильно скопировал свой обновленный код, я установил шрифт Calibi в DOMPDF. Некоторые из моих html-файлов отлично выводятся с varii. - person Ersel Aker; 20.09.2012

Вы не можете передавать одинарные кавычки в строках html, передаваемых в DOM PDF.

Ваша строка html должна иметь двойные кавычки.

Если вы используете таблицы, не используйте thead или tbody.

Это еще одна проблема, с которой я столкнулся.

По сути, если DOM PDF считает, что строка html повреждена, она вылетает без предупреждения.

person phpwebdev    schedule 10.03.2021