小编wee*_*ave的帖子

打开adobe reader打印PDF的批处理文件没有结束/关闭

我在一个批处理文件中有以下代码,由 PHP 脚本调用shell_exec()

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" 
/t "D:\xampp\htdocs\instrument\app\webroot\Repair Tickets\%1.pdf"
\\hnurenfp01\Accounts_FS-1128MFP
Run Code Online (Sandbox Code Playgroud)

参数 %1 是作为参数从 PHP 脚本发送到批处理文件的文件名。

观察到的行为:

  • PHP 页面成功调用具有正确参数的批处理文件
  • AcroRd32.exe 的两个实例在服务器上静默启动
  • PDF 文件打印到网络打印机
  • AcroRd32.exe 实例未结束/关闭
  • 批处理文件保持运行(直到手动结束 AcroRd32.exe 进程)
  • PHP 脚本继续执行,因此阻止客户端计算机执行任何进一步操作

预期行为:

  • PHP 页面成功调用具有正确参数的批处理文件
  • AcroRd32.exe 的两个实例在服务器上静默启动
  • PDF 文件打印到网络打印机
  • AcroRd32.exe 实例结束/关闭
  • 批处理脚本完成(这反过来应该释放 PHP 脚本)
  • PHP 脚本继续并最终结束,以允许最终用户继续他们的工作

失败的解决方案:

  • 在批处理文件中使用 TASKKILL 在打印后结束 AcroRd32.exe 进程,但即使使用 /F(强制)标志,AcroRd32.exe 仍保持打开状态。当我手动结束 AcroRd32.exe 进程时,批处理文件将继续,然后执行 TASKKILL 行,这当然会返回“找不到进程”错误,因为它不再存在。因此,打印后控制权似乎没有返回到批处理文件,它仍然保留在 AcroRd32.exe 中。

有谁知道如何在 PDF 打印后关闭 Adob​​e Reader?

php batch-file shell-exec

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

batch-file ×1

php ×1

shell-exec ×1