【问题标题】:DOMPDF generating blank pdfDOMPDF生成空白pdf
【发布时间】:2012-09-13 01:20:06
【问题描述】:

我正在使用 DOMPDF 库 0.6.0 beta 3 使用 PHP 生成 pdf 文件。我的一些 html 可以正确处理为 PDF,而有些则不能。下面是一个不能的例子。我已经通过 w3c html 验证器验证了我的 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();
?>

【问题讨论】:

  • 您应该逐行删除一些行并始终检查 DOMPDF 是否可以在没有该行的情况下工作。
  • 一个空白的 PDF 还是一个完全空白的页面?您是否从 PHP 中得到任何错误?
  • @ersel 嘿 Ersel,你是如何解决这个问题的?我正面临这个确切的问题,并且无处可去。你能帮我解释一下你做了什么吗?
  • 嗨 Sushil,我最终切换到另一个库。我不记得我用的是哪一个。

标签: php html pdf-generation dompdf


【解决方案1】:

您不能在传递给 DOM PDF 的 html 字符串中传递单引号。

你的 html 字符串需要有双引号。

如果您使用表格,请不要使用 thead 或 tbody。

这是我遇到的另一个问题。

基本上,如果 DOM PDF 认为一个 html 字符串被破坏,它会在没有警告的情况下退出。

【讨论】:

    【解决方案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 可能不知道字体 calibri。


    编辑

    您没有&lt;title&gt; 标记内容。会不会是这个原因?

    【讨论】:

    • 抱歉,我现在更新的代码抄错了,我已经在 DOMPDF 中安装了 calibri 字体。我的一些 html 文件可以使用 calibri 很好地输出。