php – 打开adobe reader打印PDF的批处理文件不会结束/关闭
我在使用
shell_exec()的
PHP脚本调用的批处理文件中有以下代码:
"C:Program Files (x86)AdobeReader 10.0ReaderAcroRd32.exe" /t "D:xampphtdocsinstrumentappwebrootRepair Tickets%1.pdf" hnurenfp01Accounts_FS-1128MFP 参数%1是从PHP脚本作为参数发送到批处理文件的文件名. 观察到的行为: > PHP页面使用正确的参数成功调用批处理文件 预期行为: > PHP页面使用正确的参数成功调用批处理文件 解决方案失败: >在批处理文件中使用TASKKILL在打印后结束AcroRd32.exe进程,但即使使用/ F(强制)标志,AcroRd32.exe仍保持打开状态.当我手动结束AcroRd32.exe进程时,批处理文件继续,然后执行TASKKILL行,当然返回“无法找到进程”错误,因为它不再存在.所以看起来打印后控件没有返回到批处理文件,它仍然是AcroRd32.exe. 有没有人有任何想法如何在PDF打印后关闭Adobe Reader? 解决方法
我在
http://www.robvanderwoude.com/commandlineswitches.php#Acrobat找到了以下引用
静默打印PDF文件: AcroRd32.exe / N / T PdfFile PrinterName [PrinterDriver [PrinterPort]] 最后一句话是坏消息. 您可以通过START命令调用带有/ N和/ T选项的AcroRD32.exe,然后您的批处理文件可以在执行打印作业时立即继续.如果您不介意读者的一个实例保持打开状态,那么您就完成了. 如果你必须关闭阅读器,那么你的批次将不得不杀死它.但我不确定您的批处理文件如何告诉打印作业何时完成.您可以使用TIMEOUT引入任意延迟,但这听起来很危险. 我对打开的“两个AcroRd32.exe实例”感到有点困惑.如果这是程序的工作方式,那么听起来/ N开关将关闭2个实例中的1个.您的批处理可以通过START启动打印作业,延迟几秒钟以使打印作业进程有时间启动,然后使用TASKLIST | FINDSTR监视循环中的AcroRd32.exe进程数.当计数从2变为1时,打印作业应该完成,您可以终止剩余的过程.理论上无论如何:) 祝好运. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |