Usar enscript: convertir texto plano a otros formatos

En Linux, a menudo nos encontramos con herramientas sencillas que proveen funcionalidad interesante. Como resultado de revisar el «baúl de los recuerdos», me topé con una de ellas hoy. En lo personal es de gran utilidad por la posibilidad que brinda de convertir texto plano a otros formatos. Por ejemplo, en el pasado la utilicé para mostrar el código de un script en una página web con syntax highlighting. Por eso, veamos cómo usar enscript para convertir texto plano a HTML y RTF (Rich Text Format).

Instalar y usar enscript

Antes de poder usar enscript, necesitaremos instalar el paquete correspondiente:

aptitude install enscript

o

yum install script

según estemos utilizando una distribución de la familia Debian o Fedora, respectivamente.

A continuación, tomemos como ejemplo el siguiente script Python llamado strings.py:

saludo = 'hola mundo'
print(saludo.upper())
presentacion = 'MI NOMBRE ES GABRIEL'
print(presentacion.lower())
print(presentacion.islower())
print(presentacion.isupper())
print(saludo.startswith('hola'))
print(presentacion.endswith('RIEL'))
vacio = ' '
print(vacio.isspace())
titulo = 'Mi Planta De Naranja Lima'
print(titulo.istitle())
dni = str(45092341)
print(dni.isdecimal())
password = 'admin1234'
print(password.isalpha())
print(password.isalnum())

y utilicemos enscript para crear un archivo HTML llamado strings.html con dicho contenido, donde también incluiremos resaltado de sintaxis:

enscript -p strings.html strings.py -whtml -Epython --color

donde

  • -p se utiliza para indicar el nombre deseado del archivo de salida (strings.html), luego de lo cual se debe indicar el archivo de entrada (strings.py).
  • -whtml indica que el formato del archivo de salida debe ser HTML.
  • -Epython nos dice que el archivo de entrada es código Python.
  • Finalmente, con --color especificamos que deseamos utilizar resaltado de sintaxis en el archivo resultante.

En la Fig. 1 podemos ver el archivo strings.html resultante:

Usar enscript para convertir código Python en un archivo HTML con resaltado de sintaxis
Figura 1 – Usar enscript para convertir código Python en un archivo HTML con resaltado de sintaxis

Convertir a formato RTF

Con una pequeña modificación, convirtamos ahora el código del ejemplo anterior a formato RTF:

enscript -p strings.rtf strings.py -wrtf -Epython --color

Veamos el resultado en la Fig. 2:

Usar enscript para convertir código Python en un archivo RTF con resaltado de sintaxis
Figura 2 – Usar enscript para convertir código Python en un archivo RTF con resaltado de sintaxis

Por suerte, los formatos de salida soportados por enscript están disponibles en el man page. Además, la lista de lenguajes para los que se puede proveer el resaltado de sintaxis puede verse con enscript --help-highlight.

Espero que este post les haya resultado útil. ¡Nos leemos en breve!