PDF-Dateien mit zugehörigen Dateinamen automatisch zusammenführen

PDF-Dateien mit zugehörigen Dateinamen automatisch zusammenführen

Ich muss mehrere PDF-Dateien zusammenführen/kombinieren.

Ich habe mehrere PDF-Dateien in einem Ordner. Die PDFs, die zusammengelegt/kombiniert werden müssen, haben einen gemeinsamen Dateinamenteil, zum Beispiel:

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

Der Dateiname würde mit Zahlen beginnen, dann folgt ein Unterstrich und dann der Dateiname. Ich werde Hunderte ähnlicher PDFs haben und suche nach einer Möglichkeit, diese Dateien mithilfe eines Batch-Skripts, VBA in Excel oder was auch immer automatisch zusammenzuführen.

Die Ausgabe der neuen Datei sollte in einem separaten Ordner mit dem Namen liegen 123456.pdf. Ich verwende ein Windows-Betriebssystem. Auf meinem System sind Adobe Reader, PDF995 und CutePDFwriter installiert.

Ich kann alle PDFs in einem Hauptordner zusammenfassen. Dieser Ordner enthält mehrere PDFs, wie unten dargestellt.

123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf
111111_ABCD.pdf
111111_EFGH.pdf
222222_IJKL.pdf
222222_WXYZ.pdf

In diesem Szenario erwarte ich im Ausgabeordner die folgenden PDFs:

123456.pdf
111111.pdf
222222.pdf

Antwort1

(Ungetestet)

  1. Herunterladenpdftk(direkter Link hier).
  2. Extrahieren Sie es irgendwo.
  3. Fügen Sie pdftk.exe und den Batch zusammen.
  4. Öffnen Sie dann cmdden Speicherort des Stapels* und führen Sie ihn aus.
    *(Umschalt+Rechtsklick öffnet hier die Eingabeaufforderung)

Das Skript sollte funktionieren, wenn die Ordnerstruktur wie folgt aussieht:

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

Und nicht in einem einzigen Ordner, in dem alle Dateien vorhanden sind.

@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"
)

Entfernen Sie es echo, wenn Sie meinen, dass die Charge in Ordnung ist.

Antwort weitgehend inspiriert vonDas

Aktualisieren: Es gibt zwei Antworten, die meinen Beitrag ergänzen

verwandte Informationen