2012-08-14 156 views
3

我想使用Snappy生成PDF。我已阅读https://github.com/KnpLabs/snappy的文档,并尝试使用代码。PHP:如何使用Snappy(wkhtmltopdf包装)

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”,因为它是要么不 支持的文件类型,或者因为文件已损坏

顺便说一句我也有这种月龄EXP使用PHP和我已经搜索相同的主题,但它看起来不能帮助太多。任何帮助表示赞赏。

回答

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

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

+0

已经做了二进一,但仍不能solve..and第二个方式,它工作在命令行@Nenotlep – CodeGlock 2012-08-14 06:13:37

+5

问题solved..the路径应该是这样'C://” Program Files(x86)“/ wkhtmltopdf/wkhtmltopdf.exe' – CodeGlock 2012-08-14 07:08:31

+1

好!他们站点上的示例路径也指向了一个二进制文件,但它看起来像一个文件夹,所以它说'新的Pdf('/ usr/local/bin/wkhtmltopdf')'/ usr/local/bin是文件夹和'wkhtmltopdf'是可执行的二进制文件。我认为他们应该添加一个窗口示例,以便明确这样的问题。 – Nenotlep 2012-08-14 09:37:14