【发布时间】:2021-01-13 18:02:09
【问题描述】:
我正在尝试使用 powershell 和 AcroRd32.exe 打印 PDF,但现在遇到了我自己无法解决的问题。 如果我正在执行代码并且 Acrobat Reader 打开但没有生成打印作业。我什至可以在最新的使用文件中看到我的 pdf。
这是我的代码:
$file = "C:\temp\file.pdf"
$adobe = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
$driver = "HP Universal Printing PCL 6"
$port = "10.200.1.63:3910"
$printer = "\\pserver\printer07"
$arglist = "/s /t $($file) $($printer) $($driver) $($port)"
Start-Process $adobe -argumentlist $arglist -wait
我尝试了以下方法:
- 检查我要打印的文件是否存在并且可以访问 [YES]
- 尝试使用对话框打印:参数“-p $($filename) [WORKS]
- 检查计算机是否可以访问打印机 [YES]
- 仔细检查打印机名称、驱动程序和端口... [是]
即使没有驱动程序和端口,我也无法通过此代码打印文件。
有没有人有有用的提示或建议来解决这个问题?
【问题讨论】:
-
如果您使用的是 Windows,为什么还要直接调用 Adobe?安装 Adobe 后,所有 .pdf 关联都会指向它,因此 Windows 知道默认启动 Adobe。没有理由明确地调用它。只需打开文件并调用 print。它将使用主机上的默认打印机。现在,如果您要打印为 pdf,则将 pdf 打印机设置为默认打印机,这就是将要使用的打印机,然后将其设置回原始打印机。 [Get-ChildItem -Path 'D:\temp' -Filter 'testPrintPdf.pdf' | ForEach-Object {Start-Process -FilePath $PSItem.FullName -Verb 'Print' -Wait}]
-
我正在使用 powershell 和 windows 任务调度程序从客户端打印,以在多台网络打印机上打印在线生成和下载的 pdf 文件。
-
我建议打开Acrobat SDK Developer FAQ(PDF 文件)并阅读第 24 页,它是关于从命令行使用 Adobe Acrobat 或 Adobe Reader 以及它支持哪些选项。打印机名称必须是已安装在 Windows 机器上的其中一台打印机的名称。我怀疑
\\pserver\printer07是已安装打印机的正确名称。另请参阅Printing PDFs from Windows Command Line。 -
@Mofi 好吧,解决方案是使用打印机的本地名称。我将它添加到客户端,但名称更易读。我仍然想知道为什么它不适用于
\\pserver\printer07
标签: powershell adobe acrobat