Estoy buscando una herramienta que pueda identificar un cierto patrón dentro del texto de un documento de Microsoft Word (.doc) o un documento PDF.
Por patrón quiero decir, por ejemplo, "todos los párrafos que comiencen con xxx y terminen con zzz".
Necesito poder recopilar estos datos de dos documentos y compararlos entre sí y generar una hoja de Excel con las diferencias.
¿Hay alguna herramienta que pueda ayudarme con eso? preferentemente de código abierto. Lo usaré en Windows y tiene que ser FOSS y, si no está disponible, una biblioteca (con una interfaz C/C++) estaría bien.
Para documentos de MS-Word, use LibreOffice en la línea de comandos. Funcionará con archivos .doc y .docx, así como con otros formatos (tal vez incluso con archivos PDF, no estoy seguro). Extrae el texto así:
libreoffice --headless --cat my_file.doc
Y ahora puede introducir eso en una utilidad de búsqueda de texto o en su propio código. En un sistema Unix-ish, o usando Cygwin en Windows, lo haría de esta manera:
libreoffice --headless --cat my_file.doc | grep "some_search_term"
Para documentos PDF, puede utilizar la pdftotext
utilidad:
pdftotext my_document.pdf - | grep "my_search_term"
Aquí hay una página de descarga de binarios o código fuente; y muchas distribuciones de Linux lo empaquetan (aunque el nombre puede diferir).
Con una curva de aprendizaje bastante superficial, puede hacer todo esto en Python con un par de bibliotecas:
El proceso será:
Características de esta solución:
einpoklum
Eslam Gamal