En Trakstar Hire, una de las cosas más comunes que hacen los usuarios es ver los currículos de los candidatos. Mostramos una vista previa rápida del currículo para que los usuarios no tengan que descargar y abrir cada archivo. Queremos que esto sea rápido y eficiente (porque los usuarios suelen revisar decenas de currículos de una sola vez). Resulta que este es un problema difícil de resolver.
Trakstar Hire acepta currículums en casi todos los formatos posibles (doc, docx, pdf, rtf, odt, etc.). Una de las formas de previsualizarlos es utilizar un visor de documentos integrado (como Google, Zoho, Scribd, etc.). Esto requiere (a) una conversión sobre la marcha (lo que los ralentiza) o (b) almacenar un documento con ellos (lo que también ralentiza la primera vez, aumenta los costes y, además, tenemos que confiar los datos de nuestros clientes a otro servicio). Ninguna de las dos opciones nos convencía.
Decidimos ofrecer a nuestros usuarios una vista previa del texto de un currículum. A primera vista, parece bastante fácil. Una herramienta como Apache Tika es bastante fiable y rápida para esto. Sin embargo, los currículums que se convierten simplemente a texto sin formato no son muy legibles. Especialmente, si el archivo original tiene mucho formato. Las tablas se distorsionan y los currículums bien formateados suelen aparecer desordenados. Queríamos una alternativa mejor.
El enfoque que finalmente elegimos es convertir primero todos los documentos a html y luego convertir este html a texto. El HTML tiene la capacidad de mantener el formato importante y nos proporciona una base común para la conversión de texto. La mayoría de nuestros primeros intentos de buscar convertidores de documentos a html nos llevaron a Open Office (que se ejecuta como un servidor sin interfaz gráfica). Por desgracia, Open Office tenía errores y se bloqueaba a menudo al convertir documentos por lotes a html. Me causó más noches de insomnio que el resto del código de mi aplicación juntos. Finalmente descubrimos Abiword, que hace esto de forma mucho más fiable.
Actualmente estoy probando Abiword con más de 100 000 documentos. Hasta ahora funciona bien. Veo algunos fallos durante la conversión de PDF a HTML, pero creo que puedo vivir con ello. Usaré pdf2html en lugar de Abiword para los documentos PDF.
Convertir html a texto (legible) es la otra pieza del rompecabezas. Resolvemos esto utilizando un navegador web basado en texto w3m. Este hace un buen trabajo al convertir el marcado a texto legible (utilizando puntos, guiones, etc.). El resultado final es bastante bonito.
Espero que esto sea útil para otras personas que se encuentren con un problema similar.
