我需要合并/组合几个 PDF 文件。
我有一个文件夹中的多个 PDF 文件。需要合并/组合在一起的 PDF 会具有部分共同的文件名;例如:
123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf
文件名以数字开头,然后是下划线,然后是文件名。我将有数百个类似的 PDF,我正在寻找一种方法来使用批处理脚本、Excel 中的 VBA 或其他任何方式自动合并这些文件。
新文件的输出应位于名为 的单独文件夹中123456.pdf
。我使用 Windows 操作系统。我的系统中安装了 Adobe Reader、PDF995 和 CutePDFwriter。
我可以设法将所有 pdf 放在一个主文件夹中。该文件夹将包含多个 pdf,如下所示。
123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf
111111_ABCD.pdf
111111_EFGH.pdf
222222_IJKL.pdf
222222_WXYZ.pdf
在这种情况下,我期望输出文件夹中的 pdf 是:
123456.pdf
111111.pdf
222222.pdf
答案1
(未经测试)
- 下载pdftk(直接链接在这里)。
- 将其解压到某处。
- 将 pdftk.exe 与批处理放在一起。
- 然后打开
cmd
批处理所在的位置*并运行它。
*(shift+RightClic 在此处打开命令提示符)
如果文件夹结构如下,脚本就可以工作:
|
+---111111
| 111111_ABCD.pdf
| 111111_EFGH.pdf
|
+---123456
| 123456_ABCD.pdf
| 123456_EFGH.pdf
| 123456_IJKL.pdf
|
\---222222
222222_IJKL.pdf
222222_WXYZ.pdf
而不是将所有文件都放在一个文件夹中。
@echo off
setlocal enabledelayedexpansion
rem source root folder where to crawl pdfs.
set "source=c:\mydoc\pdf"
rem destination folder
set "destination=c:\mydoc\merged"
for /f "delims=" %%a in ('dir /b /s /ad /o:n "%source%"') do (
set _pdffiles=
for /f "delims=" %%i in ('dir /b /a-d /o:n "%%a\*.pdf"') do (
set _pdffiles=!_pdffiles! "%%i"
set "_outputpdf=%%~ni"
)
echo pdftk.exe !_pdffiles! cat output "%destination%\!_outputpdf:~0,6!.pdf"
)
echo
如果您认为该批次没问题,则将其删除。
答案主要受到以下启发这
更新: 有两个答案可以补充我的帖子