如何在 Windows 11 上使用 powershell 打印 pdf 文件?

问题描述 投票:0回答:1

我想使用 powershell 打印多个 pdf 文件。

我尝试了多种可用的解决方案,但它们对我不起作用。

我尝试过的一个解决方案如下:

get-childItem "*.pdf" | sort lastWriteTime | foreach-object {start-process $._Name -verb 'print'}

或者也:

@("*.pdf") | %{gci $_} | sort Name | foreach-object {while (@(Get-Printer | Get-PrintJob).Count -gt 0) {Start-Sleep -S 3;write-Host . -NoNewline};Write-Host "";Write-Host $_.Name;start-process -FilePath $_.fullname -verb 'print';while (@(Get-Printer | Get-PrintJob).Count -eq 0) {Start-Sleep -S 1;write-Host . -NoNewline}}

我得到的错误如下:

Start-Process:由于错误,此命令无法运行:尝试使用工作目录“C:\UsersS iles”启动进程“C:\UsersS ilesS.pdf”时发生错误。没有应用程序与此操作的指定文件关联。

我想避免使用 Adobe Reader 或其他第三方应用程序来解决此问题。/ 我将不胜感激任何提示。

谢谢!

windows powershell shell printing
1个回答
0
投票

要在 win11 上使用 PowerShell 打印多个 PDF 文件,您可以使用 EDGE 来处理打印作业。

确保将 Microsoft Edge 设置为默认 PDF 处理程序:

  1. 转到“设置”>“应用程序”>“默认应用程序”。
  2. 搜索 .pdf 并确保选择 Edge 作为 PDF 文件的默认应用程序。

使用PowerShell使用Edge进行打印:

$pdfFiles = Get-ChildItem -Path "C:\Users\123\files" -Filter "*.pdf" | Sort-Object LastWriteTime

foreach ($file in $pdfFiles) {
    Write-Host "Printing $($file.Name)"
    Start-Process "msedge.exe" -ArgumentList "--headless", "--print-to-pdf-no-header", "--print", "`"$($file.FullName)`"" -NoNewWindow -Wait
    Start-Sleep -Seconds 3
}

Write-Host "Printing."

至于您遇到的错误。这很可能与您在 Win11 安装的设置中没有设置默认 PDF 处理程序有关。

© www.soinside.com 2019 - 2024. All rights reserved.