¿Cómo extraer texto de pdf en script en Linux?

23

En Linux: ¿cómo extraer texto de un texto .pdfen el que realmente es texto, no una imagen escaneada? Quiero algo que pueda usar en la línea de comandos / en un script, no de forma interactiva. (No quiero convertir .tify usar OCR; el texto ya está disponible en el .pdfarchivo, entonces, ¿por qué introducir imprecisiones de OCR imperfecto?)

RobM
fuente
pregunta similar en askubuntu
Trevor Boyd Smith

Respuestas:

25

pdftotext que viene con poppler intentará extraer cualquier texto encontrado en el PDF.

Ignacio Vazquez-Abrams
fuente
1
¡Gracias por tu rápida respuesta, Ignacio! Ya estaba revisando pdftotext que viene con w xpdf (de foolabs.com): su respuesta me llevó a echarle otro vistazo y lo puse a funcionar. Poppler parece haber evolucionado de xpdf, así que también lo examinaré. ¡Gracias de nuevo!
RobM
9

La respuesta de Ignacio está bien. De hecho, sería lo primero en mi lista. Bueno, eso y tal vez para sugerir la pdftohtmlherramienta que también viene con poppler, combinada con pdfreflow si desea intentar volver a ensamblar el texto en párrafos, etc. (Por supuesto, esto le dará salida HTML, pero la conversión de HTML a texto plano puede hacerse de muchas maneras.)

Aquí hay algunas otras opciones también.

La ebook-convertherramienta de línea de comandos de Calibre , que puede convertir archivos .PDF a texto plano (o RTF o varios formatos de libros electrónicos, como ePub, etc.)

pdftxtextractde Podofo

Se puede llamar a Abiword desde la línea de comandos para convertir entre cualquier formato desde el que pueda ingresar / exportar, y con el complemento de importación apropiado, esto incluye archivos PDF:

abiword --to=txt file.pdf

(Para ser justos, creo que AbiWord y calibre usan las bibliotecas poppler, pero no soy positivo).

precioso
fuente
Gracias frabjous! En este caso, solo estoy extrayendo el texto para poder buscar cadenas específicas (nombres de proveedores, números de cuenta) y patrones (números de factura y fechas), por lo que no es necesario volver a formatearlo o volverlo a mostrar. Aprecio la corroboración y las alternativas, ¡y estoy seguro de que otros también lo harán! - Rob
RobM