0

我在尝试 snappy 库的示例时遇到了一些麻烦。当我尝试使用 getOutput 函数显示时,浏览器返回 ERR_INVALID_RESPONSE。我尝试了此处发布的解决方案,但它对我不起作用。

这是我的函数代码:

    // Display the resulting pdf in the browser
    // by setting the Content-type header to pdf
    $snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
    header('Content-Type: application/pdf',true,200);
    header('Content-Disposition: attachment; filename="file.pdf"');
    echo $snappy->getOutput('http://www.github.com');

您的帮助/建议/建议将非常受欢迎。先感谢您!

4

2 回答 2

0

尝试先将 pdf 保存在本地存储中,然后返回响应。

它看起来像这样:

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
$snappy->save('path/to/your/storage');
$response = Response::make(Storage::get('path/to/your/storage'), 200);
$response->header("Content-Type", 'application/pdf');
$response->header("Content-Disposition", 'attachment; filename=file.pdf');
return $response;

由于您使用的是 Laravel,我建议您使用 Laravel 包装器进行 snappy

用于 Laravel 5 和 Lumen 5.1 的 Snappy PDF/图像包装器

于 2016-10-27T13:33:56.367 回答
0

我猜wkhtmltopdf的二进制文件丢失了。你可以通过在你的 Laravel 项目所在的文件夹中执行这个命令来安装它:

$ composer require h4cc/wkhtmltopdf-i386 0.12.x

或者对于 64 位系统:

$ composer require h4cc/wkhtmltopdf-amd64 0.12.x

然后你需要在你的函数中改变这一行:

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');

$snappy = new Pdf(base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'));

来源:Wkhtmltopdf 二进制安装作为作曲家依赖

于 2016-10-27T13:44:35.130 回答