如何使用Ghostscript批量导入多个PDF文件并合并为单个文件?
Ghostscript批量合并PDF:通配符无效的解决方案
Ghostscript本身不支持直接解析通配符,通配符的解析是由操作系统的命令行环境(如Windows的cmd、PowerShell)完成的,这是你使用test*.pdf无效的核心原因。以下是针对Windows环境的具体解决办法:
1. 直接在Windows CMD中执行
CMD会自动展开通配符为对应文件列表,直接运行以下命令即可:
gswin.exe -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile="C:\Users\xxx\pdf\output.pdf" "C:\Users\xxx\test*.pdf"
注意:如果路径包含空格,必须用双引号包裹路径;另外你现有代码里的test1".pdf存在语法错误,多了一个闭合双引号,正确写法应为"C:\Users\xxx\test1.pdf"。
2. 使用PowerShell执行
PowerShell不会自动展开通配符,需通过命令获取文件列表后传递给Ghostscript:
$pdfFiles = Get-ChildItem -Path "C:\Users\xxx\test*.pdf" | Select-Object -ExpandProperty FullName & gswin.exe -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile="C:\Users\xxx\pdf\output.pdf" $pdfFiles
3. 编写批处理脚本(.bat)
如果需要重复执行,可创建批处理文件,内容如下:
@echo off set "outputPath=C:\Users\xxx\pdf\output.pdf" set "inputPath=C:\Users\xxx\test*.pdf" gswin.exe -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile="%outputPath%" "%inputPath%"
内容的提问来源于stack exchange,提问作者bojidar
相关产品推荐
相关产品推荐

