在前一个技能中我们解释了如何用 PowerShell 将 PDF 文档发送到缺省的 PDF 打印机。这个通用方案对于简单场景是没问题的,但是无法让用户指定打印机。
如果使用特定的软件可以控制更多内容,因为您可以使用该软件暴露的特殊功能。
以下示例使用 Acrobat Reader 来打印到 PDF 文档。它展示了如何使用 Acrobat Reader 中的特殊选项来任意选择打印机,此外 Acrobat Reader 打印完文档将会自动关闭。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| $PDFPath = "C:\docs\document.pdf"
$Paths = @(Resolve-Path -Path "C:\Program Files*\Adobe\*\reader\acrord32.exe")
if ($Paths.Count -eq 0) { Write-Warning "Acrobat Reader not installed. Cannot continue." return }
if ($Paths.Count -gt 1) { $Paths = @($Paths | Out-GridView -Title 'Choose Acrobat Reader' -OutputMode Single) }
$Software = $Paths[0]
$exists = Test-Path -Path $Software if (!$exists) { Write-Warning "Acrobat Reader not found. Cannot continue." return }
$printerName = Get-Printer | Select-Object -ExpandProperty Name | Sort-Object | Out-GridView -Title "Choose Printer" -OutputMode Single
$printer = Get-Printer -Name $printerName $drivername= $printer.DriverName $portname=$printer.PortName $arguments='/S /T "{0}" "{1}" "{2}" {3}' -f $PDFPath, $printername, $drivername, $portname
Start-Process $Software -ArgumentList $arguments -Wait
|