Ich betreibe eine Intranet Seite, die PDF Dokument ausgibt. In einigen Situationen, zum Beispiel an der Kundentheke, sollen diese Dokumente gedruckt werden. Wenn möglich, ohne das der Benutzer zusätzlich etwas tun muss.
Die zu druckende PDF Dateien werden von der Anwendung in einem Verzeichnis abgelegt. Dieses Ausgabeverzeichnis wird mit incron überwacht. incron funktionert wie cron, ruft aber Programme oder Skripte bei einer Änderungen im Dateisystem auf.
Wenn man einen Drucker besitzt, der PDF direkt drucken kann, ist dieser Schritt nicht notwendig. Für Postscript Drucker kann man die PDF Datei in eine PS Datei umwandeln und per lpr direkt an den Drucker schicken. Dazu kann man zum Beispiel pdf2ps verwenden.
Für Windows-only Drucker könnte man die PDF Datei in eine Grafik konvertieren. Das habe ich aber nie ausprobiert.
Gut aber Teuer
Es gibt entsprechende Programme für Windows, die zum Teil mehrere hundert Euro kosten und diese Aufgabe sehr gut erledigen. Für das Ausdrucken aus der Kommandozeile zum Beispiel 2printer oder zur Verarbeitung von Dateien und Ordnern Foldermill.
Neu und unbrauchbar
Acrobat Reader ist für diese Aufgabe nicht mehr geeignet. Drucken aus der Kommandozeile funktioniert mit der akutellen Version nicht mehr. Die ensprechenden Optionen (/T) öffnet den Druck Dialog, druckt aber nicht mehr. Auch lässt der Acrobat Reader immer ein Fenster offen. Das führt dazu, das ein Batch Script auf den Reader wartet.
Es gibt für die Überwachung von Verzeichnissen aus Lösungen mit der Powershell, die aber hier nicht in Frage kommen, weil das ausführen von Scripten erst mal in Windows freigeschaltet werden muss. Ich will aber eine Lösung haben, die nicht von Windows Einstellungen abhängig ist.
Günstig geht auch
DropIt kann das Suchen und manuelle Öffnen von Ordnern oder das Verschieben von Dateien erheblich vereinfachen. Man legt verschiedene Dateien oder Ordner auf dem DropIt Icon ab, oder überwacht ein Verzeichnis, und führt verschiedene Aktionen mit den Dateien oder Ordnern aus.
Zum einfachen Drucken aus der Kommandozeile ist der Adobe Reader leider nicht mehr zu gebrauche. Die alten Kommandozeilen Features funktionieren nicht mehr oder wurden absichtlich beschnitten. Das Programm ist für unsere Zwecke total überladen mit Features und bleibt geöffnet.
Auch hier gibt es eine Open Source Lösung. PDFtoPrinter ist ein Programm zum Drucken von PDF Dateien über die Windows Komandozeile. Um eine PDF Datei aus meiner Webanwendung automatisch zu Drucken wird im Browser als Aktion für PDF Dateien download angegeben.
PDFtoPrinter und DropIt sind kompilierte AutoIt-Skripte. PDFtoPrinter verwendet den PDF-Xchange Viewer, der nicht mehr weiter entwickelt wird. Es kann also passideren, das neuere PDF Dokumente nicht mehr unterstützt werden. Andererseits, wer seine Dokument nicht als PDF/A speichert hat lagfristig sowieso verloren.