使用批处理文件,使用 pdftk 按顺序合并特定文件夹中的 pdf 文件

使用批处理文件,使用 pdftk 按顺序合并特定文件夹中的 pdf 文件

我目前正在使用 pdftk,并且能够将文件夹中的多个 pdf 文件合并为一个 pdf。但它们不是按照存在的顺序生成的。输出文件是一个随机文件。

输入文件:

Avinash 123.pdf
Avinash 845.pdf
Avinash 963.pdf

输出文件 :

Avinash.pdf 

(其中第一个 pdf 应该是 Avinash 123.pdf,之后是 Avinash 845.pdf 等等..)

目前我正在使用下面的脚本

@echo off 
pdftk *.pdf cat output Brentwood.pdf

使用 pdftk 可以实现这个吗?

答案1

您需要按所需的顺序生成文件列表,然后将其合并到pdftk运行字符串中:-

@echo off
Setlocal EnableDelayedExpansion
set pdfs=
for /f "tokens=*" %%f in ('dir /od /b *.pdf') do set pdfs=!pdfs! "%%f"
pdftk %pdfs% cat output Brentwood.pdf

笔记:-

  • 您需要使用延迟扩展以便在循环pdfs的每次传递中使用当前值for
  • 参数dir仅按日期/时间顺序列出文件名,并%%f依次设置到每个文件。
  • 在建立列表时,%%f由于文件名中有空格,因此需要用引号引起来。

这个稍微迂回的解决方案是因为似乎没有pdftk使用外部文件列表的选项。

相关内容