関連するファイル名を持つPDFファイルを自動的に結合する

関連するファイル名を持つPDFファイルを自動的に結合する

複数の PDF ファイルを結合/結合する必要があります。

1 つのフォルダに複数の PDF ファイルがあります。まとめる必要がある PDF には、部分的なファイル名が共通しています。たとえば、次のようになります。

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

ファイル名は数字で始まり、次にアンダースコア、そしてファイル名になります。類似の PDF が何百もあるので、バッチ スクリプト、Excel の VBA などを使用してこれらのファイルを自動的に結合する方法を探しています。

新しいファイルの出力は、 という名前の別のフォルダーに保存されるはずです123456.pdf。私は Windows OS を使用しています。私のシステムには Adob​​e Reader、PDF995、CutePDFwriter がインストールされています。

すべての PDF を 1 つのメイン フォルダーにまとめることができます。そのフォルダーには、以下のように複数の 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+右クリックでコマンドプロンプトを開きます)

フォルダー構造が次のようになっている場合、スクリプトは動作するはずです。

|
+---111111
|       111111_ABCD.pdf
|       111111_EFGH.pdf
|
+---123456
|       123456_ABCD.pdf
|       123456_EFGH.pdf
|       123456_IJKL.pdf
|
\---222222
        222222_IJKL.pdf
        222222_WXYZ.pdf

すべてのファイルが 1 つのフォルダーに保存されるわけではありません。

@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バッチが問題ないと思われる場合は削除します。

回答は主にこれ

アップデート: 私の投稿を補足する回答が2つあります

関連情報