wkhtmltopdf返回一些网址的空白页面

时间:2013-04-12 17:10:24

标签: php pdf-generation wkhtmltopdf

我在我们的生产Debian服务器上安装了精彩的软件wkhtmltopdf,用于从URL创建PDF。我们将生成的PDF流(我希望这是正确的术语)流向客户端,我们没有兴趣将它们存储在服务器端。

我们只从本地网址(在自己的服务器上)生成PDF。但是,URL仍然基于域而不是本地IP,因为服务器上有多个站点。

我们的问题是,对于某些本地网页,我们所得到的只是一个完全空白的页面(甚至不是PDF)。响应代码为200,但内容类型为text / html。对于成功将PDF流式传输到客户端的页面,内容类型为application / pdf。

我认为在生成PDF时可能会出现问题,所以我运行与PHP执行完全相同的命令,然后成功生成PDF。

我使用this page上的库来与PHP连接wkhtmltopdf。

$pdf = new WkHtmlToPdf(array(
        'margin-left'=>0,
        'margin-right'=>0,
        'margin-top'=>0,
        'margin-bottom'=>0,
        'print-media-type',
        'disable-smart-shrinking'
    ));
    $url = "http://myserver.se/$url";
    $pdf->addPage($url);
    $pdf->send();

为什么我会为某些网址返回空白页?

1 个答案:

答案 0 :(得分:0)

事实证明,问题出在我正在使用的库中。我无法确切地知道问题是什么,但是在成功创建PDF时,wkhtmlpdf类的send方法中的proc_close返回2而不是预期的0。这导致图书馆认为没有创建PDF,它只是返回false意味着没有输出到客户端。我通过使用PHP的file_exists函数检查文件是否存在来解决它。