brause1701
Goto Top

PDF-Stapelverarbeitung mit PDFTK (in batch, shell, powershell)

Hallo Community,

ich möchte beliebig viele PDF-Dateien mit pdftk verarbeiten und in ein Output-Verzeichnis ablegen (evtl. adaptierten Namen). Idealerweise sollte am Ende eine bat herauskommen.

Einzeln ausgeführt passiert Folgendes:

pdftk.exe .\input\datei.pdf stamp .\stamp.pdf output .\out\datei.pdf

Die "stamp.pdf" soll für alle zu verarbeitenden Dateien des Ordners "input" verwendet werden.

Wahrscheinlich brauche ich eine Variable welche ich vermutlich mit:

dir .\input /B *.pdf

erzeugen kann?!


Soviel zu meiner Frage und meinen Ideen. Hat jemand einen Tipp?


Vielen Dank!

brause1701

Content-Key: 302981

Url: https://administrator.de/contentid/302981

Ausgedruckt am: 19.03.2024 um 04:03 Uhr

Mitglied: bytecounter
bytecounter 27.04.2016 um 09:12:29 Uhr
Goto Top
Hallo,

schon die Suchfunktion oder eine Suchmaschine Deines Vertrauens genutzt? Und in was soll das nun erfolgen? In einer Windows Batch würde es etwas so ausschauen:

for /f "delims=|" %%f in ('dir /b c:\Mein Verzeichnis') do echo %%f  

Unter Linux:
for f in "/home/user/working dir/*.pdf"; do  
    echo "$f"  
done

vg
Bytecounter
Mitglied: brause1701
brause1701 27.04.2016 um 09:42:43 Uhr
Goto Top
Hallo Bytecounter,

das Problem bei Suchmaschinen ist, dass man nach den richtigen Begriffen suchen muss. Meine Schlagwörter aus der Überschrift führten z.B. zu keinem brauchbaren Ergebnis... zurück zum Problem...

Ich benötige eine bat-Datei (also Windows). Ich komme einfach mit der Syntax der Schleife nicht weiter! Wie würde die vollständige Schleife mit der von mir genannten pdftk-Funktion aussehen?

pdftk.exe .\input\datei.pdf stamp .\stamp.pdf output .\out\datei.pdf

Großartig wären auch möglichst viele Kommentare... ich möchte es am besten auch vollends verstehen und erspart zukünftig Fragen face-wink

Erstmal vielen Dank auch für die Linux-Variante!

Gruß,
brause1701
Mitglied: bytecounter
Lösung bytecounter 28.04.2016 um 18:00:11 Uhr
Goto Top
Hier mal ein ungetesteter Beispielcode:

for /f "delims=|" %%f in ('dir /b .\input\*.pdf') do (  
    pdftk.exe .\input\%%f.pdf stamp .\stamp.pdf output .\out\%%f.pdf
)

Der "dir" sollte klar sein; der liefert eine Liste mit den Dateinamen zurück. "for /f" geht durch diese Textliste und übergibt jeden einzelnen Wert (in diesem Fall den Dateinamen) an die Variable %%f. "delims=|" ersetzt die Standardtrennzeichen (Leerzeichen, Tab) durch |. Damit dürfen die Dateinamen auch Leerzeichen beinhalten.