Automatisierte Konvertierung von Microsoft Office-Dokumenten in PDF/A
Ein zentraler Dienst zur Konvertierung von Microsoft Office-Dokumenten in PDF oder PDF/A hat offensichtliche Vorteile. Die Konvertierung erfolgt auf einer unternehmensweiten Plattform mit genau definierten Softwareversionen und Konvertierungsprozesskonfigurationen. Dies garantiert eine gleichbleibende Qualität und macht die Bereitstellung und den Betrieb von clientbasierter Software überflüssig. Der Preis dafür ist allerdings, dass der zentrale Dienst die nativen Anwendungen, wie z.B. Microsoft Word, automatisieren muss, die für den interaktiven Einsatz und nicht für den Serverbetrieb konzipiert sind. Wenn ich einen solchen Dienst aufbauen müsste, wäre mein erster naiver Ansatz, den Dienst folgende Automatisierungsschritte durchführen zu lassen: Starten Sie die Anwendung und rufen Sie die Funktionen "Datei öffnen" und "Als PDF/A speichern" auf. Leider ist das nicht so einfach. Warum eigentlich nicht?
Anwendungen wie Microsoft Word, Excel und PowerPoint sind für die interaktive Nutzung konzipiert. Sie können nur als eine einzige Instanz in einer Benutzersitzung ausgeführt werden. Ein Dienst muss jedoch darauf vorbereitet sein, Dokumente parallel zu konvertieren, um die Computerressourcen optimal zu nutzen. Dann benachrichtigen die meisten Anwendungen den Benutzer mit Popup-Dialogfeldern und ähnlichen Funktionen der Benutzeroberfläche. Geschieht dies im Rahmen eines Dienstes, blockieren die Anwendungen den Prozess, da es keinen Benutzer gibt, der die OK- und Abbrechen-Schaltflächen drückt. Außerdem sind interaktive Anwendungen nicht robust genug, um Tausende von Dokumenten zu verarbeiten. Sie werden nach einer gewissen Zeit instabil und müssen beendet werden. Und schließlich entspricht die Qualität des erzeugten PDF/A-Dokuments manchmal nicht dem Standard oder ist von minderer visueller Qualität.
Aus diesen Gründen muss ein Dienst zur automatischen Konvertierung von Microsoft Office-Dokumenten nach PDF/A viel mehr tun, als ich oben in meinem naiven Ansatz beschrieben habe. Die wichtigsten Aufgaben sind:
Führen Sie die Anwendung in mehreren Instanzen einer "Arbeitssitzung" aus. Dies ermöglicht die parallele Ausführung von Konvertierungen.
Automatisieren Sie den Konvertierungsprozess, indem Sie die Anwendung über eine API steuern und einen "Roboter" starten, der die Benutzeroberfläche der Anwendung bedient (OK-Tasten drücken, Meldungen lesen und entsprechend handeln usw.).
Überwachen Sie die ordnungsgemäße Funktion der Anwendungen und starten Sie sie entsprechend neu.
Nutzen Sie das optimale Mittel zur Erstellung einer PDF-Datei und konvertieren Sie diese in einem Nachbearbeitungsschritt in eine PDF/A-Datei. Einige Anwendungen verfügen über eine integrierte "Als PDF speichern"-Funktion, andere können über einen virtuellen Druckertreiber drucken und wieder andere können ein Dateiformat (XPS, PostScript usw.) erzeugen, das in PDF/A konvertiert werden kann.
Die Konvertierung ist nicht die einzige Funktion, die ein solcher Dienst übernehmen kann. Sobald der Dienst in den Besitz eines Dokuments gelangt ist, kann er einige zusätzliche, sehr nützliche Nachbearbeitungsschritte anbieten. Hier sind einige von ihnen:
Zusammenführung von Dokumenten
Digitale Signaturen anwenden
Einbettung von XML-Daten in elektronische Rechnungsdokumente (ZUGFeRD-Standard)
Einbettung von XMP-Metadaten
Stanzen