Bei Trakstar Hire ist es für Nutzer üblich, Lebensläufe von Bewerbern anzusehen. Wir zeigen eine kurze Vorschau des Lebenslaufs, damit Nutzer nicht jede Datei herunterladen und öffnen müssen. Wir möchten, dass dies schnell und effizient geschieht (da ein Nutzer in der Regel Dutzende von Lebensläufen auf einmal durchsieht). Es hat sich herausgestellt, dass dies ein schwierig zu lösendes Problem ist.
Trakstar Hire akzeptiert Lebensläufe in fast allen möglichen Formaten (doc, docx, pdf, rtf, odt usw.). Eine Möglichkeit, diese anzusehen, ist die Verwendung eines eingebetteten Dokumentenbetrachters (wie Google, Zoho, Scribd usw.). Dies erfordert entweder (a) eine sofortige Konvertierung (was den Vorgang verlangsamt) oder (b) die Speicherung eines Dokuments bei diesen Anbietern (was ebenfalls beim ersten Mal langsam ist, höhere Kosten verursacht und dazu führt, dass wir die Daten unserer Kunden einem anderen Dienst anvertrauen müssen). Beides war für uns nicht akzeptabel.
Wir haben uns entschlossen, unseren Nutzern eine Textvorschau ihres Lebenslaufs anzubieten. Auf den ersten Blick scheint das ziemlich einfach zu sein. Ein Tool wie Apache Tika ist dabei recht zuverlässig und schnell. Allerdings sind Lebensläufe, die einfach in reinen Text konvertiert werden, nicht sehr gut lesbar. Das gilt insbesondere, wenn die Originaldatei viele Formatierungen enthält. Tabellen werden verzerrt und gut formatierte Lebensläufe sehen oft durcheinander aus. Wir wollten eine bessere Alternative.
Der Ansatz, für den wir uns schließlich entschieden haben, besteht darin, zunächst alle Dokumente in HTML zu konvertieren und dieses HTML dann in Text umzuwandeln. HTML kann wichtige Formatierungen beibehalten und bietet uns eine gemeinsame Basis für die Textkonvertierung. Die meisten unserer frühen Versuche, nach Dokumentkonvertern für HTML zu suchen, führten zu Open Office (das als Headless-Server ausgeführt wird). Leider war Open Office fehlerhaft und stürzte bei der Stapelkonvertierung von Dokumenten in HTML häufig ab. Das hat mir mehr schlaflose Nächte bereitet als der Rest meines Anwendungscodes zusammen. Schließlich haben wir Abiword entdeckt, das diese Aufgabe wesentlich zuverlässiger erledigt.
Ich teste derzeit Abiword mit mehr als 100.000 Dokumenten. Bislang funktioniert es einwandfrei. Bei der Konvertierung von PDF- in HTML-Dateien treten zwar einige Probleme auf, aber damit kann ich leben. Für PDF-Dokumente werde ich statt Abiword pdf2html verwenden.
Die Umwandlung von HTML in (lesbaren) Text ist das andere Puzzleteil. Wir lösen dieses Problem mit Hilfe des textbasierten Webbrowsers w3m. Dieser leistet gute Arbeit bei der Umwandlung von Markup in lesbaren Text (unter Verwendung von Punkten, Strichen usw.). Das Endergebnis ist recht ansehnlich.
Ich hoffe, dies ist für andere hilfreich, die auf ein ähnliches Problem stoßen.
