求助:如何用批处理脚本配合cPDF批量生成横版双页PDF文件
解决方案
问题出在你用cpdf -twoup-stack path\*.pdf -o out.pdf时,cpdf会将所有匹配的PDF文件合并后再转换双页格式,最终输出一个合并后的文件。要实现每个原PDF单独转换为对应的双页PDF,需要用循环逐个处理文件,以下分不同操作系统给出命令:
Windows CMD 环境
在命令提示符中执行:
for %f in (path\*.pdf) do cpdf -twoup-stack "%f" -o "%~dpnf_twoup.pdf"
%f代表当前遍历到的PDF文件%~dpnf会提取原文件的驱动器、路径、文件名(不含扩展名),最终输出文件名为原文件名_twoup.pdf,和原文件同目录
Windows PowerShell 环境
在PowerShell中执行:
Get-ChildItem -Path "path\*.pdf" | ForEach-Object { cpdf -twoup-stack $_.FullName -o "$($_.DirectoryName)\$($_.BaseName)_twoup.pdf" }
Get-ChildItem获取指定路径下所有PDF文件$_.BaseName提取原文件的文件名(不含扩展名),输出文件同样和原文件同目录
Linux/macOS Bash 环境
在终端中执行:
for file in path/*.pdf; do cpdf -twoup-stack "$file" -o "${file%.pdf}_twoup.pdf" done
${file%.pdf}会去掉原文件名的.pdf后缀,拼接_twoup.pdf作为输出文件名,和原文件同目录
可选:输出到指定目录
如果想把所有转换后的文件放到单独的文件夹(比如output),先创建该文件夹,再修改命令:
- Windows CMD:
mkdir path\output for %f in (path\*.pdf) do cpdf -twoup-stack "%f" -o "path\output\%~nf_twoup.pdf" - Bash:
mkdir -p path/output for file in path/*.pdf; do cpdf -twoup-stack "$file" -o "path/output/${file%.pdf}_twoup.pdf" done
内容的提问来源于stack exchange,提问作者kasten
相关产品推荐
相关产品推荐

