Pdftotext, convierte un PDF a texto desde la terminal
En el siguiente artículo vamos a echar un vistazo a pdftotext. Esta es una utilidad para la línea de comandos de código abierto que nos va a permitir convertir archivos PDF a archivos de texto simple. Básicamente lo que hace es extraer los datos de texto de los archivos PDF. Este software es gratuito y se incluye de forma predeterminada en muchas distribuciones Gnu/Linux.
En las siguientes líneas vamos a ver una herramienta para la terminal, pero para el mismo propósito de extraer el texto de los archivos PDF también se puede utilizar una herramienta gráfica como Calibre. Vale la pena señalar que tanto la herramienta gráfica como la que podemos utilizar en la terminal, no pueden extraer el texto si el PDF está hecho de imágenes (fotografías, imágenes de libros escaneados, etc).
En la mayoría de las distribuciones de Gnu/Linux, pdftotext está incluido como parte del paquete poppler-utils. Esta herramienta es una utilidad de línea de comandos que convierte archivos PDF a texto sin formato. En ella vamos a encontrar muchas opciones disponibles, incluida la capacidad de especificar el rango de páginas para convertir, la posibilidad de mantener el diseño físico original del texto lo mejor posible, establecer finales de línea e incluso trabajar con archivos PDF protegidos con una contraseña.
Instalar pdftotext en Ubuntu
Para instalar esta herramienta en nuestro sistema Ubuntu, en caso de que no lo tengas ya instalado, no habrá más que abrir una terminal (Ctrl+Alt+T) y escribir en ella el siguiente comando para instalar poppler-utils:
sudo apt install poppler-utils
Cómo utilizar pdftotext
Convertir un archivo PDF a texto
Una vez que tenemos el paquete instalado en nuestro sistema operativo, ya podemos convertir un archivo PDF a texto sin formato. Podemos intentar mantener el diseño original utilizando la opción -layout con el comando, pero también podemos intentarlo sin ella. En una terminal (Ctrl+Alt+T) el comando a utilizar sería el siguiente:
pdftotext -layout pdf-entrada.pdf pdf-salida.txt
En el anterior comando habría que reemplazar pdf-entrada.pdf con el nombre del archivo PDF que nos interese convertir, y pdf-salida.txt por el nombre del archivo TXT en el que queramos guardar el texto del archivo PDF de entrada. Si no especificamos ningún archivo de texto de salida, pdftotext va a nombrar el archivo de forma automática con el mismo nombre que el archivo PDF original pero con extensión txt. Otra cosa que puede resultar interesante añadir al comando serán las rutas antes de los nombres de los archivo si es necesario (~/Documentos/pdf-entrada.pdf).
Convertir solo un rango de páginas del PDF a texto
Si no nos interesa convertir todo el archivo PDF, y queremos acotar un rango de páginas del PDF a convertir en texto habrá que utilizar la opción -f (primera página para convertir) y -l (última página para convertir) seguida cada una de las opciones con el número de la página. El comando a utilizar sería algo como lo siguiente:
pdftotext -layout -f P -l U pdf-entrada.pdf
En el anterior comando habrá que reemplazar las letras P y U con el primer y último número de página para extraer. El nombre de pdf-entrada.pdf también tendremos que cambiarlo y darle el nombre del archivo PDF con el que queremos trabajar.
Utilizar caracteres de final de línea
Esto vamos a poder especificarlo usando -eol seguido de mac, dos o unix. El siguiente comando añadirá terminaciones de líneas unix:
pdftotext -layout -eol unix pdf-entrada.pdf
Ayuda
Para consultar las opciones disponibles, ejecuta la página de manual:
man pdftotext
También se puede consultar la opción de ayuda con el comando:
pdftotext --help
Convertir los archivos PDF de una carpeta utilizando un bucle Bash FOR
En caso de que queramos convertir todos los archivos PDF de una carpeta a archivos de texto, pdftotext no admite la conversión por lotes de PDF a texto. Esto vamos a poder hacerlo utilizando un bucle Bash FOR en la terminal (Ctrl+Alt+T):
for file in *.pdf; do pdftotext -layout "$file"; done
Para más información acerca de pdftotext, se puede consultar la página web del proyecto. En caso de que prefieras no tener que escribir comandos en la terminal, también se puede utilizar un servicio online para obtener el mismo resultado.
El artículo Pdftotext, convierte un PDF a texto desde la terminal ha sido originalmente publicado en Ubunlog.