【问题标题】:PHP: How To Use Snappy (wkhtmltopdf wrapper)PHP:如何使用 Snappy(wkhtmltopdf 包装器)
【发布时间】:2015-10-10 19:14:17
【问题描述】:

我正在尝试使用 Snappy 生成 pdf。我已经阅读了https://github.com/KnpLabs/snappy 的文档并尝试了代码。

require_once '/KnpLabs/src/autoload.php';

use Knp\Snappy\Pdf;

$snappy = new Pdf('C:\Program Files (x86)\wkhtmltopdf');

// Display the resulting image in the browser
// by setting the Content-type header to jpg
$snappy = new Pdf('C:\Program Files (x86)\wkhtmltopdf');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="file.pdf"');
echo $snappy->getOutput('http://localhost/pdfTester/try.php');

当我单击 try.php 上的链接时,会弹出一个打开 pdf 文件的窗口,当我选择打开时,会出现一条消息。

Adobe Reader 无法打开“file.pdf”,因为它不是 支持的文件类型或文件已损坏

顺便说一句,我刚用 php 获得了一个月大的 exp,我已经在搜索相同的主题,但看起来帮不上什么忙。任何帮助表示赞赏。

【问题讨论】:

    标签: php wkhtmltopdf


    【解决方案1】:
    • 您的路径C:\Program Files (x86)\wkhtmltopdf 看起来指向一个文件夹而不是二进制文件。如果您的 wkhtmltopdf 安装到文件夹 C:\Program Files (x86)\wkhtmltopdf\ 中,则二进制文件可能是 C:\Program Files (x86)\wkhtmltopdf\wkhtmltopdf.exe,可以尝试指向可执行文件以查看是否有效?
    • 如果这不起作用,当您尝试从命令行运行命令时会发生什么?那么它会起作用吗?

      wkhtmltopdf http://localhost/pdfTester/try.php test.pdf

    【讨论】:

    • 已经做了二进制但仍然无法解决..和第二种方式,它在命令行@Nenotlep
    • 问题解决了..路径应该像C://"Program Files (x86)"/wkhtmltopdf/wkhtmltopdf.exe
    • 好!他们网站上的示例路径也指向一个二进制文件,但它看起来像一个文件夹,所以上面写着new Pdf('/usr/local/bin/wkhtmltopdf') /usr/local/bin 是文件夹,wkhtmltopdf 是可执行二进制文件。我认为他们也应该添加一个 Windows 示例,以便明确此类问题。
    • @kaklr 谢谢 - 这救了我!
    • @Nenotlep,我用建议的答案尝试了 OP 的代码,最后一行代码是 echo $snappy->getOutput('http://www.github.com');,我得到了与帖子提到的相同的错误。此链接 (github.com/KnpLabs/snappy/issues/44) 还讨论了最终没有提供答案的问题。有什么办法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多