Probando conversores de texto a HTML …

… en Debian, ya que estoy pensando en crear una impresora virtual para obtener versiones HTML de los listados de la empresa.

Una búsqueda sencilla en los paquetes de Debian estable (empleando apt-cache search 2html) me proporciona varios resultados de los que termino eligiendo tres para evaluar: t2html, txt2html y pdf2htmlex.

Mi propósito es imitar en lo posible el funcionamiento de la impresora virtual PDF del paquete printer-driver-cups-pdf, aunque no creo que llegue a ese nivel de sofisticación. Visto el abanico de opciones en los programas de conversión usaré un archivo de configuración global, y guardaré los archivos en el mismo directorio que los PDF.

Pretendo que los archivos HTML sean autocontenidos para que no precisen referencias externas como los logotipos o las hojas de estilo. También estaría muy bien que fuesen capaces de crear hiperenlaces internos porque tengo algunos listados bastante grandes que ya incluyen marcas de ese tipo.

t2html

Es el primero que he probado y el nombre engaña un poco. Hace pensar en un filtro rápido y sencillo y no es así. Está pensando para convertir un texto expresado en algo que llaman formato técnico y que puede serme útil en algún momento pero no ahora; aunque puedo modificar mis listados para que generen dicho formato estoy buscando algo que no implique tocar demasiado las aplicaciones de gestión.

txt2html

Este es de los tres el que más se acerca a lo que pretendo. Los listados que quiero convertir proceden en su diseño de las impresoras matriciales. Paginarlos correctamente para la impresión de tinta o láser fue más complicado de lo que parecía porque en las matriciales empleábamos mucho el papel ancho y no querían que en las hojas A4 se usase la orientación apaisada. Ya, es lo de la vaca gorda que pese poco, pero fue una de las condiciones de base.

Convertir a HTML un listado de este tipo no es complejo, pero el resultado dista mucho de ser atractivo sin emplear técnicas con CSS con los que ahora no puedo ni quiero lidiar. El programa txt2html es muy rápido y funciona bien -sin complicaciones- y a pesar de aceptar un buen número de parámetros éstos están más orientados a entender el texto que recibe que a darle un formato vistoso. Cuando digo entender me refiero a saber qué puede ser una cabecera, qué una lista y qué texto debe ir en espaciado fijo.

Un inciso

En mi programa de gestión se me pidió en un momento concreto que se añadiese un índice para poder localizar rápidamente (por página física) dónde aparecían determinados términos como nombres de clientes o lugares geográficos.

Mi solución en aquel momento fue envolver en códigos especiales lo que quería que fuese en el índice y pasarlo luego por un filtro externo. Este filtro leía todas las páginas, extraía los códigos y tomaba nota de en qué páginas aparecían y luego construía el índice con esa información. No estaba mal y funcionaba; ahora pretendo un resultado adaptado a una página HTML con la misma base.

El programa txt2html puede emplear un diccionario de enlaces externo que va sustituyendo utilizando como herramienta las expresiones regulares. Escribiré otra entrada comentando el resultado porque ésta me está quedando un poco más larga y se iría un tanto del tema.

pdf2htmlex

Este programa convierte archivos PDF a HTML con bastante buen resultado, aunque emplea Javascript en el documento final y los archivos terminan siendo más bien pesados. No es una tarea fácil la que tiene que realizar, especialmente con textos e imágenes, así que se le puede perdonar el uso de recursos.

Invocándolo de esta forma

$ pdf2htmlEX --tounicode 1 --embed-css 1 --embed-font 1 --embed-javascript 1 --embed-outline 1 --fallback 1 input.pdf
Preprocessing: 57/57
Warning: encoding confliction detected in font: 1
Working: 57/57

$

podemos hacernos una idea del resultado en las siguientes imágenes

Vista del PDF con evince

Vista del PDF con evince

Vista con Firefox del resultado en HTML

Vista con Firefox del resultado en HTML

 

El documento de entrada es el resultado de la impresión con la impresora virtual de CUPS y necesita algunos ajustes más porque contiene juegos de caracteres mezclados que no se muestran bien (observar el aviso emitido durante la conversión). Otro detalle es que en el navegador se muestran los saltos de página del documento original; es parte de la magia de pdf2htmlEX.

Resumiendo …

… he elegido el programa txt2html para convertir a HTML los listados de texto pelados y pdf2htmlEX para obtener lo mismo desde documentos PDF.