Programme, die aus allerhand Formaten PDF-Dokumente erzeugen, gibt es unter Linux viele. Was aber, wenn die Mitarbeiter eine PDF-Konvertierung mehrerer Dokumente gleichzeitig, einfach und schnell, innerhalb der grafischen Benutzerumgebung und ohne viel Tipparbeit benötigen?
Erste Recherchen fördern zwar etliche Lösungen zu Tage, aber für mehrere gleichzeitig zu konvertierende Dateien sind stets sehr viele Benutzereingaben notwendig. Auch bei virtuellen PDF-Druckertreibern ist der Arbeitsablauf mit vielen Dateien zu langsam.
So entstand für ein Berliner Büro die Idee, einen Mailserver und Open/Libre Office in einer hausgemachten Lösung zu verbinden: Der Anwender schickt die zu konvertierenden Dateien als Mailattachments an den Server (Abbildung 1) und erhält das Resultat per E-Mail zurück (Abbildung 2).
Abbildung 1: Bedienungskomfort: Der Anwender packt die Dateien, die er konvertieren möchte, einfach als Anhänge in eine E-Mail.
Abbildung 2: Bereits nach kurzer Zeit landen die gewünschten PDF-Dokumente gesammelt im Posteingang des Absenders.
Praktischer Ablauf
Zur Annahme der Konvertierungsaufträge kommt eine eigene Mailadresse, beispielsweise »pdf@domain.tld«
, zum Einsatz. Auf dem Konvertierungsserver verrichtet Postfix seinen Dienst. Die folgende Zeile in »/etc/aliases«
veranlasst den freien Mailserver dazu, die Nachricht zur Weiterverarbeitung an das Konvertierungsskript weiterzugeben – der Aufruf »postalias /etc/aliases«
übersetzt die Konfiguration für Postfix:
pdf: "|/usr/local/bin/pdf-konverter.sh"
Das Skript »pdf-konverter.sh«
packt zunächst die Datei-Anhänge aus. Danach gibt es diese Dateien an Unoconv weiter [1], ein Hilfsprogramm zur Kommunikation mit Open und Libre Office. Die freie Bürosuite erledigt die Umwandlung, dann verpackt das Skript die Dateien wieder in Anhänge und schickt sie per Mail an den Absender zurück.
Die maximale Größe einer E-Mail gibt der Parameter »message_size_limit«
in der Postfix-Konfiguration vor (Listing 1). Da Office als Daemon läuft, geht die Konvertierung angenehm schnell: Wie die beiden Abbildungen zeigen, benötigte im Test eine rund 20 MByte große E-Mail mit 19 Datei-Anhängen rund eine Minute zum Konvertieren und Zurücksenden – dabei ging diese Testmail auf dem Hin- und Rückweg zusätzlich noch durch einen Virenscanner.
01 myhostname = pdfserver.[UCC:x00-fake-italic]domain.tld
02 mydomain = [UCC:x00-fake-italic]domain.tld
03 mydestination = $mydomain
04 myorigin = $mydomain
05 alias_maps = hash:/etc/aliases
06 alias_database = hash:/etc/aliases
07 # eventuell Smarthost
08 # relayhost = [UCC:x00-fake-italic]mail.domain.tld
09 mynetworks = 127.0.0.0/8
10 message_size_limit = 51200000
Systemvoraussetzungen
Für die Umsetzung im Berliner Büro kam Debian Squeeze in der 64-Bit-Ausgabe zur Verwendung. Da die Lösung ausschließlich Open-Source-Komponenten nutzt, sollte sie auch auf anderen Distributionen funktionieren.
Neben Postfix als Mailserver sind Programme zum Aus- und Einpacken der Attachments erforderlich. Zum Extrahieren kommt Ripmime zum Einsatz, das MIME-kodierte Anhänge aus einer E-Mail liest und als einzelne Dateien in einem ausgewählten Ordner ablegt. Ein alternatives Werkzeug für diesen Zweck ist Uudeview [2], es macht seine Arbeit allerdings etwas langsamer. Ripmime steht gegenwärtig nur im Quelltext unter [3] zur Verfügung, der sich aber mit »make && make install«
übersetzen lässt. Das Kommando
chown nobody:nogroup /usr/local/bin/ripmime
versieht die Binärdatei mit den passenden Berechtigungen.
Das Paket »mime-construct«
ist in den Debian-Repositories enthalten. Es packt die umgewandelten Dateien in die Antwort-Mail. Das Programm macht es leicht, eine Nachricht mit vielen Datei-Anhängen zu versenden, und kennt obendrein nützliche Parameter, die sich einfach übergeben lassen.
Für den Serverbetrieb von Open oder Libre Office ist das Kommandozeilentool Unoconv erforderlich. Es nutzt die UNO-Bindings der freien Bürosuite, um unterstützte Dateiformate einzulesen und ins Zielformat konvertiert wieder auszugeben. Auf der Unoconv-Homepage [1] findet sich eine beeindruckende Liste der Im- und Exportformate (Abbildung 3).
Abbildung 3: Die Unoconv-Homepage hat eine eindrucksvolle Liste an unterstützten Formaten zu bieten.