Batch-Printing für PDF und Postscript unter Windows
Meine Bürogenossin muss monatlich eine große Menge PDFs ausdrucken, die anderweitig erzeugt wurden. Diese manuell über Adobe Reader, FoxitReader, etc zu öffnen und dann zu drücken ist umständlich. Alleine das eigentliche drucken Drucken dauert mehrerer 10 Sekunden pro PDF. (Windows Printer ist langsam für Farbdrucker). Außerdem soll immer nur die erste Seite gedruckt werden.
Eine Lösung für Windows ist gar nicht so einfach zu finden. die meisten Tipps laufen darauf hinaus, dann doch den PDF-Reader mit dem Ausdrucken zu beauftragen. Egal ob per VB-Script, Com-Schnittstelle, print()-Funktion, etc. Aber genau das möchte ich ja vermeiden! Ich möchte eine Stapelverarbeitung, bei der am Ende nur evtl. aufgetreten Fehler gemeldet werden.
Nach einigem Suchen bin ich auch zwei Lösungen gestoßen und habe einen eigene programmiert (mich dann aber doch für eine der anderen entschieden):
a) GSBatchPrint hat ein paar nette Feature, z.B. kann einen Input-Ordner überwachen oder Output-Schacht angeben. Aber es verschiebt Dateien in Ordner, wobei nicht ganz immer klar ist, wo diese Ordner angelegt werden. Kostenlos, aber Source ist nicht verfügbar.
b) Mein Versuch, GSBatchPrint neu zu programmieren (natürlich in Python) ist prinzipiell gelungen. Nicht gelungen ist mir, dabei anzugeben, welche Seiten ausgedruckt werden sollen — es soll ja nur die erste Seite sein. Habe aber viel über mswinpr2 gelernt. Als Nebenprodukt ist ein Python-Interface für Ghostscript entstanden, über das ich letzte Woche berichtet habe.
c) GSPrint brachte die Lösung. Kann alles Wichtige, was meine Büroenossin braucht. Ich hätte es gleich nehmen sollen. Habe noch einen kleinen Wrapper herum gestrickt (ein droplet aka Batch-Skript), um die restliche Funktionen zu ergänzen und die gewünschten Parameter an GSPrint zu übergeben.
BTW: Unter Linux (und Unix generell) braucht man das alles nicht. lp dateiname genügt. Wenn das Drucksystem CUPS installiert ist (das ist inzwischen Standard), kann man auch allerlei Druckoptionen auswählen. Beispielswiese eben die erste und die letzte zu druckende Seite.