PHP passthru抛出错误

时间:2014-07-31 18:48:30

标签: php pdf pdftk

我在我的Windows服务器上使用名为PDFtK的应用程序生成pdf,您可以将数据合并到其中等。

我正在尝试让passthru工作,所以我可以将pdf输出到浏览器而不保存任何文件夹。

这适用于在文件夹中创建PDF。但是,我不想创建PDF,我需要将其输出到浏览器。

$WshShell = new COM("WScript.Shell");
$WshShell->exec('"pdftk" C:\\inetpub\\wwwroot\\xx\\demos\\pdf\\uploads\\xxx.pdf fill_form C:\\inetpub\\wwwroot\\xx\\demos\\pdf\\uploads\\'.$fdf_file.' output C:\\inetpub\\wwwroot\\xx\\demos\\pdf\\uploads\\'.$newPDF.' flatten'); 

以下是我尝试的内容:

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="download.pdf"');
$WshShell = new COM("WScript.Shell");
$WshShell->passthru('"pdftk" C:\\inetpub\\wwwroot\\xx\\demos\\pdf\\uploads\\xxx.pdf fill_form C:\\inetpub\\wwwroot\\xx\\demos\\pdf\\uploads\\'.$fdf_file.' output -'); 

我在运行时遇到此错误:

Call to undefined method com::passthru()

有没有办法测试passthru是否正常工作?

1 个答案:

答案 0 :(得分:1)

类COM中不存在函数passthru()。一个可能的解决方案是,编写pdf文件(使用COM :: exec()),用file_get_contents('filename.pdf')读取它,输出内容然后用php @unlink('filename.pdf')删除它。