如何在localhost:8000 / storage / file.html上使用laravel snappyPDF?

时间:2018-02-12 16:11:57

标签: php laravel wkhtmltopdf snappy

我正在尝试使用snappy laravel从html文件生成pdf。当我调用我的pdf方法时,我的服务器冻结并输出60秒的超时错误。我在这篇github issue中读过 wkhtmltopdf不喜欢使用端口8000 ,我想知道是否有任何解决方法,我试图打印{{1}作为pdf,它正在工作......

此外,我无法从我的html文件内容(存储在变量中的内容)中打印pdf,我想这是因为css文件,这里是我正在做的一个例子:

google.com

这是file.html内容。

$snappy->generate('http:localhost:8000/storage/file.html', $fileName.'.pdf');

我担心的主要问题是,当我收到消息输出错误时,我会复制并粘贴确切的命令并将其粘贴到我的终端中并且pdf在不到一秒的时间内生成,所以这意味着确实存在我的snappy pdf用法问题......

1 个答案:

答案 0 :(得分:0)

snappy失败的原因是因为 wkhtmltopdf不喜欢使用当前的主机资源。使用wkhtmltopdf时,无法从主机中获取任何内容。你需要在URI中转换你的图像,这样你就不会从你的公共目录中获取它们,你需要在你的html中插入你的css,链接不会这样做。 对于我自己,我使用了刀片将css与我的页面分开。在我的情况下,为什么这是失败的主要原因是因为我试图从127.0.0.1:8000(我当前的主机)获取ccs表。

问题:

 <link href="http://localhost:8000/css/pdfpreview.css" rel="stylesheet" type="text/css">

解决方案:

<style>
...
</style>