PDF Split & Merge
Verfasst: Freitag 29. Juni 2007, 12:08
Da ich mit vielen FOSS-PDF-Split&Merge-Tools unzufrieden bin, möchte ich mit PyPDF als Grundlage ein eigenes, leistungsfähigeres Tool implementieren.
Neben den Standardfunktionen hab ich mir ein paar produktivitätssteigernde Schmankerl einfallen lassen...
Aber lest mal selbst:
Preliminary Feature List *hüstel*:
SPLIT:
- Alle Seiten eines PDFs als Einzel-PDFs ausgeben (burst)
- Seitenbereiche wie [5:10] oder [6:] in ein PDF ausgeben
- Alle n Seiten ein neues Teil-PDF erstellen (45 Seiten Quelldokument -> 3 Zieldokumente à 15 Seiten)
- Nur gerade/ungerade Seiten in PDF ausgeben
- nur jede n-te Seite in das Ziel-PDF aufnehmen
CHUNK:
- beim Chunking wird ein Größenlimit für die Zieldokumente festgelegt, die Seitenzahl pro Teil-PDF richtet sich danach. Nützlich für den E-Mail-Versand von großen PDFs.
MERGE:
- Zwei oder mehrere PDFs zu einem Gesamt-PDF verschmelzen
- Alle PDFs eines Verzeichnisses -> Gesamt-PDF
- Inhaltsbasiertes Merging: nur wenn Begriff x im PDF vorkommt, wird das PDF berücksichtigt.
- Piped Merging: Mit einem ls/dir-Befehl gefundene PDFs können per Pipe an das Merging-Programm weitergegeben werden. Beispiel: alle PDFs, die heute erstellt wurden, mergen.
- Merging mit Globbing-Support: würde rechnung 1.pdf Rechnung_Installateur.pdf etc. in Kassabuch.pdf mergen
- CSV-Merge: Ich habe eine in Excel editierbare Tabelle, die sich wie folgt aufbaut:
In der ersten Spalte sind die auszugebenden PDFs, in der ersten Zeile die Quell-PDFs, die Ziffern geben die Reihenfolge an, in der die Quelldateien in die jeweilige Ausgabedatei kommen. Leeres Feld= Quelldatei wird ignoriert.
Das CSV-Merge-Feature ist ganz nützlich, um z.B. für Kunden angepasste Unterlagen aus mehreren "Baustein-PDFs" zu basteln.
ALIASE:
Aliase sind Kürzel-Verweise auf häufig verwendete PDF-Dokumente. Sie erleichtern die Arbeit mit "verstreuten" PDFs (in unterschiedlichen Verzeichnissen abgelegt). Beispielsweise könnte sich der Alias "AGB" auf K:\Offerte\AGBs\AGB_2007.pdf beziehen, der Alias "cover-offert" auf P:\Designs\Cover\Offert-Cover.pdf. Mit dem Befehl könnte ich die drei auf verschiedenen Verzeichnissen liegenden Dokumente einfach in resultat.pdf verschmelzen.
Folgende Alias-Funktionen sind geplant:
- dauerhaftes Speichern von Aliasen
- Auflisten aller Aliase inkl. Globbing-Support
- Validierung von Aliasen (existiert das referenzierte PDF noch?)
- Unterstützung von Aliasen in allen Modi des Tools
- Auto-Alias-Funktion: mit einem Befehl Aliase für ein ganzes PDF-Dir erstellen (ein solcher Auto-Alias würde sich z.B. aus den drei ersten Buchstaben des Dateinamens plus einer fortlaufenden Nummer zusammensetzen). -> Diese Aliase würden dann z.B. komplexere Splitting/Merging Operationen erleichtern.
Ich sehe das Tool weniger als Python-Bibliothek, sondern viel mehr als Kommandozeilen-Werkzeug, das natürlich unter Windows als EXE daherkommen soll.
Von den Features her ist das Teil zu 50% fertig, allerdings verträgt der Code noch ordentlich Politur. Falls Interesse besteht, werde ich ihn bald hier posten/verlinken.
Neben den Standardfunktionen hab ich mir ein paar produktivitätssteigernde Schmankerl einfallen lassen...
Aber lest mal selbst:
Preliminary Feature List *hüstel*:
SPLIT:
- Alle Seiten eines PDFs als Einzel-PDFs ausgeben (burst)
- Seitenbereiche wie [5:10] oder [6:] in ein PDF ausgeben
- Alle n Seiten ein neues Teil-PDF erstellen (45 Seiten Quelldokument -> 3 Zieldokumente à 15 Seiten)
- Nur gerade/ungerade Seiten in PDF ausgeben
- nur jede n-te Seite in das Ziel-PDF aufnehmen
CHUNK:
- beim Chunking wird ein Größenlimit für die Zieldokumente festgelegt, die Seitenzahl pro Teil-PDF richtet sich danach. Nützlich für den E-Mail-Versand von großen PDFs.
MERGE:
- Zwei oder mehrere PDFs zu einem Gesamt-PDF verschmelzen
- Alle PDFs eines Verzeichnisses -> Gesamt-PDF
- Inhaltsbasiertes Merging: nur wenn Begriff x im PDF vorkommt, wird das PDF berücksichtigt.
- Piped Merging: Mit einem ls/dir-Befehl gefundene PDFs können per Pipe an das Merging-Programm weitergegeben werden. Beispiel: alle PDFs, die heute erstellt wurden, mergen.
- Merging mit Globbing-Support:
Code: Alles auswählen
merge *rechnung*.pdf kassabuch.pdf
- CSV-Merge: Ich habe eine in Excel editierbare Tabelle, die sich wie folgt aufbaut:
Code: Alles auswählen
Quelle1.pdf Quelle2.pdf Quelle3.pdf Quelle4.pdf
Ausgabe1.pdf 1 4 3 2
Ausgabe2.pdf 4 3 2 1
Ausgabe3.pdf 1 2
Das CSV-Merge-Feature ist ganz nützlich, um z.B. für Kunden angepasste Unterlagen aus mehreren "Baustein-PDFs" zu basteln.
ALIASE:
Aliase sind Kürzel-Verweise auf häufig verwendete PDF-Dokumente. Sie erleichtern die Arbeit mit "verstreuten" PDFs (in unterschiedlichen Verzeichnissen abgelegt). Beispielsweise könnte sich der Alias "AGB" auf K:\Offerte\AGBs\AGB_2007.pdf beziehen, der Alias "cover-offert" auf P:\Designs\Cover\Offert-Cover.pdf. Mit dem Befehl
Code: Alles auswählen
merge cover-offert angebot-huber.pdf AGB > resultat.pdf
Folgende Alias-Funktionen sind geplant:
- dauerhaftes Speichern von Aliasen
- Auflisten aller Aliase inkl. Globbing-Support
- Validierung von Aliasen (existiert das referenzierte PDF noch?)
- Unterstützung von Aliasen in allen Modi des Tools
- Auto-Alias-Funktion: mit einem Befehl Aliase für ein ganzes PDF-Dir erstellen (ein solcher Auto-Alias würde sich z.B. aus den drei ersten Buchstaben des Dateinamens plus einer fortlaufenden Nummer zusammensetzen). -> Diese Aliase würden dann z.B. komplexere Splitting/Merging Operationen erleichtern.
Ich sehe das Tool weniger als Python-Bibliothek, sondern viel mehr als Kommandozeilen-Werkzeug, das natürlich unter Windows als EXE daherkommen soll.
Von den Features her ist das Teil zu 50% fertig, allerdings verträgt der Code noch ordentlich Politur. Falls Interesse besteht, werde ich ihn bald hier posten/verlinken.