自动合并具有相关文件名的 PDF 文件

自动合并具有相关文件名的 PDF 文件

我需要合并/组合几个 PDF 文件。

我有一个文件夹中的多个 PDF 文件。需要合并/组合在一起的 PDF 会具有部分共同的文件名;例如:

123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf 

文件名以数字开头,然后是下划线,然后是文件名。我将有数百个类似的 PDF,我正在寻找一种方法来使用批处理脚本、Excel 中的 VBA 或其他任何方式自动合并这些文件。

新文件的输出应位于名为 的单独文件夹中123456.pdf。我使用 Windows 操作系统。我的系统中安装了 Adob​​e 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

(未经测试)

  1. 下载pdftk直接链接在这里)。
  2. 将其解压到某处。
  3. 将 pdftk.exe 与批处理放在一起。
  4. 然后打开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如果您认为该批次没问题,则将其删除。

答案主要受到以下启发

更新: 有两个答案可以补充我的帖子

相关内容