Pdftotext, convierte un PDF a texto desde la terminal

about pdftotext

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.

Artículo relacionado:
Quitar una contraseña conocida de un archivo PDF en Ubutu

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:

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:

pdftotextconvertir pdf a texto sin formato

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

guardar en formato texto un número dado de páginas de un 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

man pdftotext

También se puede consultar la opción de ayuda con el comando:

comando de ayuda pdftotext

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.

Un comentario, deja el tuyo

  1.   Moypher Nigthkrelin dijo

    si, bueno sirve, pero aveces tengo que hacer OCR o usar el Libre Office Draw.

    Además hay muchos editores de pdf. y al parecer este no pasa a texo la imagenes, por eso no lo veo practico.

    Y Libre Office Draw es intuitivo y practico.

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.