我在我的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是否正常工作?
答案 0 :(得分:1)
类COM中不存在函数passthru()。一个可能的解决方案是,编写pdf文件(使用COM :: exec()),用file_get_contents('filename.pdf')
读取它,输出内容然后用php @unlink('filename.pdf')
删除它。