20. September 2013
Kleines Update mit großer Wirkung, oder: PDF raubt Nerven!
Ein Blog dient dazu, Geschichten zu erzählen, die nicht unbedingt als „Pressemitteilung“ dienen. Eine kleine Geschichte möchte ich zum kommenden Update (amagno 4.0.3) erzählen und damit auch die Leistung des Entwicklungsteam würdigen.
Nach jedem Major Release von amagno führt unser Entwicklerteam eine Performancewoche durch und prüft, welche technischen Verbesserungen am Server möglich sind. Nach dem Release vom amagno 4 wollten wir uns dem Thema Druckertreiber und PDF Dokumente widmen. Warum überhaupt diese Themen?
Mit amagno wollen wir unseren Kunden das beste Erlebnis bieten, Dateien, gescannte Belege und Mails effizient und sicher zu verwalten. Dazu müssen die Inhalte analysiert werden:
- Hunderte Dateiformate liest amagno inhaltlich aus (sog. Volltext), damit die digitalen Magnete die Dateien nach Themen, Begriffen und Regeln automatisch anziehen
- Zu Hunderten Dateiformaten erzeugt amagno Vorschaugrafiken im PNG Format für eine schnelle Dateiansicht in Dateiauflistungen, Vorschaudialogen und der Web-App
- Die Vorschaugrafiken nutzt amagno zudem für die gerne genutzten visuellen Stempel
- Das „Klick-Füllen“ führt eine OCR über die Vorschau durch, um Formulare für wichtige Informationen schnell via Anklicken zu füllen
- Zu vielen Dateiformaten erzeugt amagno automatisch PDF Dokumente, z.B. aus Office Dokumenten oder CAD Zeichnungen
Für all diese Möglichkeiten verarbeitet amagno diese Dateien über komplexe Bibliotheken im Hintergrund auf dem Server. Weniger erfreulich ist das Thema bei PDF Dokumenten. Das PDF Format ist eines gängigsten und etabliertesten Formate auf dem Markt, um Text zu lesen und Formulare zu bearbeiten. Zahllose Bibliotheken erzeugen dieses Dateiformat.
Während gescannte und in PDF gewandelte Belege sehr problemlos zu verarbeiten sind, erzeugen andere Bibliotheken nicht mehr vernünftig auslesbare PDF Dateien. 95% aller von amagno gelesenen PDF Dateien verarbeitet amagno problemlos. Übrig bleiben trotzdem noch ca. 5%, die nicht korrekt verarbeitet werden. Ein Beispiel ist im Beitragsbild zu sehen. Wandeln wir diese Dateien in PNG Grafiken oder versuchen wir eine Volltexterkennung, zerlegen sich diese Dateien in „kryptische Zeichen“. Dieses Phänomen trat gelegentlich bei Nutzung unseres Druckertreibers auf, ebenso wie bei dem einfachen Client- und Serverseitigen Dateiimport von PDF Grafiken.
Die Herausforderung für das Entwicklerteam bestand darin, auch noch die verbleibenden 5% der PDF Dokumente korrekt zu verarbeiten.
Über Wochen haben mehrere Entwickler von amagno dieses Phänomen untersucht. Es wurden Tonnen an Foren durchkämmt, Hunderte PDF Formate importiert, diverse Softwarebibliotheken geprüft. Oft mit frustrierendem Resultat. Beispielsweise wurde ein Komplettumbau unseres Druckertreibers nach fast zwei Wochen wieder verworfen, weil das Ergebnis bei wenigen PDF Varianten doch nicht, wie erwartet, funktionierte. Teilergebnisse konnten erreicht werden, in dem die unglücklichen Dokumente in PostScript und anschließend wieder in PDF gewandelt wurden. Dieser Ansatz reichte letztendlich doch nicht aus und war zudem sehr anspruchsvoll in der Ressourcennutzung des Servers.
Nach vielen Wochen Arbeit hat das amagno Team mit weiteren Bibliotheken, diversen Umbauten in der Dokumentenanalyse und neuen Optionen im Druckertreiber eine sehr hohe Erkennungsquote des PDF Formats erreicht. Viel Arbeit, für ein Update, von dem man nach der Installation eigentlich nichts sehen wird.
PDFs mit Darstellungsproblemen reparieren
Mit amagno 4.0.3 und aktueller stellt amagno für ältere PDFs mit Darstellungsfehlern eine Reparaturfunktion zur Verfügung. Gehen Sie für die Reparatur wie folgt vor:
- Öffnen Sie den amagno Windows Client
- Öffnen Sie oben rechts in Ihrem Benutzerprofil den Eintrag Hilfe > Support > Werkzeuge
- Markieren Sie die Option Reparaturmodus aktivieren
- Wählen Sie anschließend in den Gruppen die für Sie defekt dargestellten Inhalte einzeln in der Toolbox aus
- Klicken Sie in der Toolbox nach Auswahl einer Datei auf Reparieren. amagno versucht anschließend, die defekte PDF Datei für die Vorschau und Volltextsuche zu verbessern.