miércoles, 1 de abril de 2020

Convertir PDF en documento de texto

Esto ya lo he comentado en alguna ocasión, pero hoy me apetece crear una entrada específica, para encontrarlo bien con el Buscador, porque la verdad es que lo tengo algo disperso en el Blog.
Todos sabemos que el formato PDF es, en realidad, un formato de imagen, y todos hemos oido hablar de los sistemas de Reconocimiento de Caracteres (OCR) para convertir imágenes a texto. De hecho ya hablé de esto en esta entrada. Pero debo decir que, como la mayoría de los usuarios, nunca necesité ‘preceptivamente’ el OCR, y nunca acabé de ‘tomarle el pulso’ al tema, y lo tengo abandonado.
Además, existen métodos mucho más fáciles para ‘editar’ (y poder modificar) los PDFs de texto...

(Hay que decir, de entrada, que un PDF de texto lo puedes abrir directamente con LibreOffice, con Draw, pero lo te presenta (edita) por párrafos (líneas) independientes. Y la verdad es que es muy incómodo de usar si quieres cambiar algo significativo. Quiero decir que, para cambiar/borrar un par de palabras, o borrar una línea, puede valer, claro, pero no es útil para convertir un PDF de texto en un ‘perfecto’ documento de Writer, donde las líneas y los párrafos formen un mismo 'cuerpo', que puedas tratar a tu gusto.

Para esto recomiendo usar otro método, también facilísimo. Ya lo expliqué cuando hablé en el Blog de un visor muy elemental de pdfs, el ‘XPDF’ pero ya digo que quiero crear una entrada específica, para encontrarlo bien.

Convertir un PDF en documento de texto
Es tan sencillo como esto: abres una consola en la ruta donde esté el archivo que quieres convertir, escribes
pdftotext nombre_archivo.pdf nombre_archivo.odt
y te lo convierte.

Pero luego hay que ‘arreglar’ un poco ese archivo de texto, que queda muy feo. Así que lo abres (con LibreOffice Writer, claro) y haces estas dos cosas...
  1. Editar-Seleccionar todo (o Ctrl+E) y luego, en la casilla donde aparece ‘Texto preformateado’ seleccionas ‘Estilo Prederminado’’
  2. Herramientas-Corrección automática-Aplicar

Y te queda perfecto
Nota: Otra posibilidad, si quedas con líneas de menos del 50% (por ejemplo, si el PDF original es 'tipo página de periódico', con varias columnas) es seleccionarlas y quitar los saltos de línea, que se hace con Buscar y Reemplazar. Para eso, en en Writer, vamos a Editar-Buscar y Reemplazar, y ponemos, en  buscar… $ y en Reemplazar… (1 espacio, con barra espaciadora). (Y pinchar en Reemplazar todo, claro). El ‘arreglo’ es algo más costoso, porque es muy recomendable, si hay muchas 'lineas cortas', hacerlo por partes, para luego separar más fácilmente los distintos párrafos. Pero funciona. 
(Para complementar con más detalles el tema de cómo ajustar líneas, saltos de párrafo, e,tc en Libreoffice,  ver aquí o, en extremo, aquí)
Y esto es todo, de esta forma pasas fácilmente un PDF a documento de texto, que ya puedes ponerlo a tu gusto, modificarlo, etc

OBSERVACIÓN IMPORTANTE: para que funcione esto tienes que comprobar dos cosas
a) Que tienes instalado el paquete ‘poppler-utils
b) Que, en Libreoffice (Writer) tienes marcada la opción ‘Combinar párrafos de un solo renglón si la longitud supera el 50%
Normalmente, ambas cuestiones (al menos en mi último Debian) ya aparecen por defecto, así que se puede probar, primero, con algún PDF, y ver si funciona, o hay que arreglar algo.
Aunque tampoco cuesta mucho ir, en el LibreOffice Writer, a Herramientas-Corrección automática-Opciones de corrección automática, pestaña 'Opciones' y ahí, en la ultima línea del cuadro, aparecerá esta opción de ‘Combinar…’ y ver si está marcada.

Y respecto a las poppler-utils, pues nada, un ‘sudo apt install poppler-utils’ y solucionado (es un paquete que no llega a 1 MB)

Por cierto, estas ‘utils’ tienen otra utilidad interesante, la ‘pdfimagen’, que lo que hace es que te extrae TODAS las imágenes de un PDF, para que luego hagas lo que quieras con ellas.
(no he tenido oportunidad de probarlo, pero un buen método para pasar un PDF complejo, con varias imágenes, podría ser, mejor que por OCR, con esta utilidad, y luego insertar las imágenes, donde corresponda, en el archivo de texto del PDF convertido).
Y haciéndolo así…
pdfimages -all nombre_archivo.pdf IMG%02d.png
las imágenes quedan extraidas en la misma ruta que el archivo PDF, y en formato IMG01.png, IMG02.png, etc.

Asi que aquí quedan estos ‘truquis’, que me parece interesante tenerlo ‘a mano’

¡Ah...! Añado otra, para unir PDFs, que leí meses más tarde, y que puede ser muy útil. Si tienes varios PDFs en una carpeta, unirlos en un solo PDF (si están ordenados, claro) es sencillísimo teniendo instaladas estas 'poppler utils'. Basta abrir una consola en esa carpeta y...
pdfunite *.pdf todos_unidos.pdf

No hay comentarios:

Publicar un comentario