Biblioteca PyPDF2.
Archivo multi-página
Siguiendo con lo bueno (y fácil de resolver), trataremos en esta entrada sobre el acceso a los documento multi-página, que son los más.
Aunque acceder a una página concreta de un documento o a la única página de un documento simple no presenta mayor dificultad según vimos en [la entrada anterior], hacerlo a todo el contenido de un documento compuesto por múltiples páginas será seguramente de mayor utilidad, dado que son los más; y ejemplos confirmatorios de lo anterior hay muchos (1).
Por suerte acceder a todo ese texto es uno de los problemas de fácil solución mediante PyPDF2. Y para comprobarlo vamos a trabajar con un documento multi-página no especialmente complejo, aunque sí lo suficiente como para que nos permita observar alguna de las limitaciones de PyPDF2 (2). No obstante estas dificultades no son lo que ahora nos interesan, así que centrémonos en lo que sí.
from PyPDF2 import PdfReaderleer_doc = PdfReader("pdf/Curriculo.pdf")pag = len(leer_doc.pages)texto = ""for pg in range(pag):pagina = leer_doc.pages[pg]texto += pagina.extract_text()print("INICIO DEL TEXTO -----------------------\n")print(texto)print("\nFIN DEL TEXTO----------------------")
Me interesa que compares esta línea (pagina = lector.pages[0]) con esta otra (pag = len(leer_doc.pages)). La primera nos permite acceder directamente a una página determinada (3) y la segunda nos da acceso a todas (gracias a la función len(), pero también al atributo .pages de la variable objeto leer_doc), pero necesitamos crear un bucle para recorrerlas...
for pg in range(pag):pagina = leer_doc.pages[pg]texto += pagina.extract_text()
... acumulando el resultado del recorrido (pagina = leer_doc.pages[pg]) de forma acumulativa (+=) en la variable previamente declarada (texto = "") mediante esta instrucción (texto += pagina.extract_text()) (4)
Documento. Desde [este enlace] puedes acceder y descargar el documento pdf multi-página que nos sirve de recurso en esta entrada (5).
NOTAS
(1) Artículos de revistas especializadas o de informes publicados on-line, informe de servicios externos... son algunos de esos documentos multi-página cuyo contenido nos puede interesar. De hecho ya quisiéramos que el único problema fuera acceder a todas las páginas del documento.
(2) Este documento ha sido publicado por la Consejería de educación y presenta más complejidad que estar formado por varias páginas, pero de momento nos centraremos únicamente en esa característica. Puedes acceder al pdf desde el enlace que te proporciona en Documento.
(3) En este caso la primera página, pero podría ser cualquier otra. Este procedimiento nos sirve tanto para trabajar con textos de una única página como con textos de varias páginas, pero de las que sólo nos interesa acceder a una de ellas. Recuerda que el índice inicia en 0, de ahí [0] para referirse a la primera página del documento.
(4) El resultado no es todo lo satisfactorio que desearíamos, incluyendo el efecto no deseado de la repetición de la cabecera y del pie de página, pero se cumple el objetivo principal del script: capturar en la variable texto todo el contenido del documento.
(5) Recuerda copiar este documento dentro de la carpeta pdf o bien modificar la línea del script


No hay comentarios:
Publicar un comentario
Comenta esta entrada