PDF aufteilen Kommandozeile Windows - zu mehr als nur 1 Seite

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
18.865
Moin!

Sollte es es das tatsächlich nicht für die WIN-Kommandozeile geben?

Die Aufgabe ist an sich sehr einfach: ein mehr… ich hätte fast gesagt vielseitiges, PDF in einzelne PDFs zu teilen wobei angegeben werden kann, dass jede der Ziel-PDFs eine bestimmte Anzahl Seiten umfasst.

Szenario dahinter (und ich muss damit so leben): Word wirft einen Serienbrief aus der als PDF (und umweltfreundlich nicht Papier) zur Welt kommt. Je nach dem kann der einzelne Brief 1, 2 oder auch mal 3 (usw.) Seiten umfassen. Ein Finaldokument mit z.B. 3000 Seiten liefert also je nach dem mal 3000, 1500 oder nur 1000 PDFs.
Das geht mit etwa PDFSam - was aber einen vollautomatischen Durchlauf eines Makros verhindert. (Dieses bedient bereits andere Kommandozeilentools.) Eine Frage von Komfort und 😇 Abschieben an Kollegen die das bitte mal selber machen sollen.

Welches Kommandozeilentool kann also Dinge im Sinne von «PDFTeiler MeineQuellPDF 2» um mir zweiseitige Einzel-PDFs zu liefern?

CN8
 
Etwas vergleichbares habe ich mal mit pdftk gemacht.

Der Batch-Code splittet die ersten 10 Seiten des Quelldokuments alle 2 Seiten in eine einzelne Datei.

Code:
@echo off
set /a dateiende=10
set /a start=1
set /a anz=2

:loop

set /a ende=start+anz-1
echo %start% von %dateiende%
pdftk "C:\Quelle\Quelle.pdf" cat %start%-%ende% output "C:\Ziel\output %start%-%ende%.pdf"

set /a start=start+anz
if %start% GEQ %dateiende% goto exitloop
goto loop

:exitloop
Pause
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: LorD-AcE
Hmm… PDFTK… Ich war überzeugt, dass da kein Parameter wäre der das kann..?
Muss ich mir mal bei Tageslicht ansehen .

Ubuntu Kommandozeile
Nun gut, aber wie erriche ich dieses aus Excel’s VBA heraus, und ohne Klimmzüge? (Angst habe ich da keine eine UNIX.Kommandozeile zu betätigen.)
PDFTK als weiteres Tool das man dem User andrehen kann wäre da allerdings weit pflegeleichter.

CN8
 
Hallo CN8, dein Weg ist ein bisschen umständlich. Der Standardansatz für dein Problem ist tatsächlich ein Word-Makro. Wenn das mit PDFSam nicht richtig klappt , solltest du dich einfach mal in den Office-Foren umschauen, da wird so ein Makro gefühlt einmal pro Woche diskutiert
 
@ KitKat::new()
Wie sieht denn beispielsweise so eine Linux-Aufruf aus WIN-Office-VBA heraus aus? Wen oder was muss ich als Shell aufrufen um darin dann das Kommando abzusetzen?
Wobei diese Shell auch überall statklar sein muss. Das ist nicht trivial.

@ Scientist
Das geht zwar, ist aber nicht recht befriedigend weil viel zu langsam. Ich habe aus einer größeren PDF die Seiten «1-2» herausgeholt, das dauerte absolut zu lange. Und dabei müsste ich aus gewissen Gründen auch noch die Seitenanzahl der PDF erfahren. PDFTK scheint da nicht ganz so der Brüller zu sein.

@ halwe
Der Witz Ist, ich bekomme allgemein eine fertige Word-Datei auf den Tisch, selten den Serienbriefmaster und die Datenquelle.
Wobei auch da (ich darf da nicht dran rumspielen…) aus XL mehr Daten geholt werden können müssten als Felder im Master sind. (Alles um sprechender Dateinamen Willen.)
Dass ein Ansatz an dieser Wurzel konsequent und logisch ist ist mir selbst völlig klärchen. Aber den Luxus habe ich leider nicht…
Auch lassen sich gewisse Nebenwirkungen so aus Word heraus auch nicht gescheit bekämpfen.


Fazit
Ich brauche ein potentes Kommandozeilentool das ohne Schleifen auskommt.

CN8
 
cumulonimbus8 schrieb:
Wie sieht denn beispielsweise so eine Linux-Aufruf aus WIN-Office-VBA heraus aus?
Indem du einen Windows-Aufruf machst.
Da ist doch direkte in Beispiel verlinkt:
wsl "cd /mnt/c/projects/Test/jekyll/help;"
Statt dem "cd..." fügst dein Kommando ein, das du in Ubuntu machen würdest.
Das C-Laufwerk befindet sich in der Ubuntu Umgebung unter /mnt/c/
 
Liefer mir doch bitte ein beispielhafte VBA Zeile mit SHELL( …)
Danke.
CN8
 
Ich halte den Ablauf für sinnlos. Da friemelt jemand den Seriendruck mit der Datenquelle zusammen, übergibt ihn und danach wird wieder alles auseinandergenommen.
Es ist völlig klar, dass man mit Direktzugriff auf die Datenquelle die Dateien samt Dateinamen viel intelligenter einzeln erstellen kann. Das Thema ist breit diskutiert und "erforscht".
Aber ich vermute mal, die Erstellung läuft in irgendeinem Anwendungsprogramm, wo das, Wolke 8 kein akzeptierter Use Case ist.
 
Ich kann nichts für den Workflow. Und - ich führe Befehle aus (was auch seine Vorteile hat).

Rein technisch bin ich in der Tat nicht begeistert nicht selber eine (vernünftige) Datenquelle in die Hand zu bekommen samt einem Serienbriefmaster (an dem ich dann herumprogrammieren könnte; aber da brauche ich noch mal dieses Sereinbreif-auftrenn-und-speicher-Makro).
Nun; ich dränge mich nicht darum die Serienbriefquelle selbst aufbauen zu müssen und in Datenmassen herumzuwühlen, ohne Plan was da wie zusammengestrickt werden muss, das ist weiß Gott nicht mein Aufgabenbereich.

So aht alles (s)seine Vorgeschichte… Unter anderem die, dass ich im Home-Office eine Kiste mit reichlich mehr Dampf stehen habe als das tragbare Instrument auf dem die Daten gesammelt und zusammengefügt werden.
Damit kann ich allein schon mit dem Baustein Fertiger-Serienbrief (oder gar seiner PDF-Variante, aber das hat man schon erfolgreich abgeschoben…) autark alles das abwickelen & kordinieren während die erzeugende Partei ihre Energie in andere Dinge steckt.
Mittlerweile bekomme ich sogar den fertigen Master {mit Bugs…} und die Quelle und darf auch diese Schritte laufen lassen. Arbeit & Rechenleistung wird so zwischen den Bürs besser verteilt. Und Multitasking ist ganz nett.

Das gewünschte Kommandozeilentool soll nur meinen eigenen Workflow um ein externes GUI-Tool kürzen.
Und es wäre nicht von Übel mein Paket so kompakt wie möglich komplett weitergeben zu können wenn ich mal nicht einsatzfähig bin. Auch dieser Aspekt spielt da mit rein.

CN8
 
Ich habe keine Muehe gescheut und die weiten des Deepweebs durchforstet und den heiligen Gral fuer dein Problem gefunden (Formulierung bitte nicht ernst nehmen ...): pdftron.com

Zumindest ergab ein kurzer Test, dass die Datei deutlich flotter getrennt wird als mit pdftk. Das ganze kann theoretisch auch mit einem einzeln Aufruf erledigt werden.
 
Zuletzt bearbeitet:
Man dankt allein für die Mühe. :)
Allerdings hoffte ich (nur) auf Erfahrungswerte und wollte niemanden anregen Zeit in so was zu versenken.

Nun lese ich bei PDFTron was von Trial. Gar nicht schön.
Und sollte ich nicht schon zu müde sein kann auch dieses Tool nicht das was ich suche: splitten am jeder n. Seite bis Ende, ohne die Seitenzahl kenne zu müssen.
Selbst wenn ich auch ein anderes Tool per Batch ausführen lasse, mit 3000 aufrufen für 3000 Einsätze [nach dem Splitten], 2500 Zeilen um jeweils 1-2, 3-4, 5-6 auszuschneiden ist nicht wirklich da sziel wenn PDFSam deutlich flotter zum Ziel kommt.

Gibt es noch Hoffnung?

CN8
 
Ich denke, da geht es nur um den Support oder andere Tools. Pagemaster kann direkt heruntergeladen und ohne Installation genutzt werden.
Code zum Splitten eines PDFs nach jeder dritten Seite:
Code:
pagemaster -s in.pdf,3x

Ob es flotter als PDFSam ist: kA, kenne das Tool nicht.

Nachtrag:
Ein Dokument mit 1.786 Seiten gesplittet in 3-seitige Dokumente dauert bei mir ca. 30s.
Wird aber sicherlich von CPU, Speichermedium und Anbindung abhaengen. Auf einer HDD ueber Netzwerk moechte ich das nicht testen ^^
 
Zuletzt bearbeitet:
Übrigens, CN8, da du ahk kannst, könntest du ja auch einfach ne Schleife programmieren, die aus dem pdf-Betrachter deiner Wahl heraus die große Datei seitenweise an einen pdf-Drucker schickt. Das könnte etwas dauern, läuft aber von selbst und du kannst alles fein programmieren. Ich nehme aber an, diese Variante hattest du bereits vor Augen...

Ansonsten ist mir natürlich klar, dass du dir diesen Workflow nicht ausgedacht hast. Und egal mit welche Tool du arbeitest, ich wüsste nicht, wie du den Einzel-Dateien sinnvolle Namen gibst.
 
@ halwe 😄
Ich bin aber nicht masochistisch veranlagt. Da reicht mir scon VBA um so was Ähnliches zu erreichen.

@ Scientist
Ich kann wahrlich nicht ausschließen müde gewesen zu sein (und auch heute war wieder anderes zu tun als diesen Fall zu verfolgen), die Syntax mit 3x hatte ich anders aufgefasst.
Split ‘in.pdf’ into a set of PDF documents containing 2 pages each:
pagemaster -s in,2x
Mit dem each hatte ich mich komplett verpeilt. Ja, na klar, each file war gemeint. Asche auf mein müdes Haupt..

CN8

(Einen «Tag» später)
Tja… Leider ist an der DEMO-Meldung was dran. Es wird ein Wasserzeichen eingefügt, dezent, aber da. Damit darf ich keinem kommen. 😟

Trotzdem Danke für die Mühe.
Ob sich noch Weiteres finden lässt?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Scientist
Mache ich frühestens morgen.
Mir liegt gerade was Anderes auf der Seele. Aber danke für die Mühen - das unterscheidet nun mal eine Forum von Google.
CN8
 
Zurück
Oben