Biblioteca PyPDF2.
Archivo simple
No debería ser un tema que nos interesara, pero la realidad es que sí: en lo que al acceso al contenido se refiere, con PyPDF2 obtendremos resultados diferentes en función de cómo esté construido el pdf con el que trabajemos.
Un documento pdf puede ser muy simple o muy complejo. Por simple vamos a entender aquel que contiene únicamente un texto sencillo, con independencia de su extensión (1) y por complejo aquel que contiene diversos elementos, incluyendo gráficos y configuraciones del texto en columnas (2).
En esta entrada trataremos el caso más simple, aunque muy posiblemente no sea el más frecuente. Se trata de un documento de texto simple y de una única página (3), lo que equivale a decir que trabajamos con un pdf sencillo o con un pdf complejo pero del que únicamente nos interesa el contenido de una página determinada que no presenta texto en multi-columna, tablas ni gráficos (4).
Sobre esta base y sin más pretensión que la didáctica, voy a desarrollar (a terminar de desarrollar, para ser más exactos) el script iniciado en la [entrada anterior].
from PyPDF2 import PdfReader
lector = PdfReader("pdf/VueltaCavernas.pdf")
texto = pagina.extract_text()
print(texto)
Es interesante constatar lo sencillo que es acceder al contenido de un pdf sencillo como el que usamos aquí como recurso, ya que es suficiente con una línea de código para hacerlo (texto = pagina.extract_text()) y otra para obtener el resultado en pantalla (print(texto)), aunque sea de forma extremadamente simple (5). La parte negativa es el escaso manejo que nos permite esta forma simple de acceso al control de cuestiones de forma y de acceso a contenidos concretos dentro del documento.
La primera de estas limitaciones la podremos ver con más detalle cuando trabajemos pdf más complejos; la segunda requiere otro enfoque y otros medios (6).
De momento nos vamos a quedar con lo bueno, que todavía tiene recorrido. Trataremos estos temas en la próxima entrada y el acceso a documentos más complejos más adelante.
Documentos. [pdf simple] Recuerda guardarlo dentro de una carpeta identificada como pdf (7). Esta carpeta debe ubicarse dentro del directorio en el que almacenes el script reproducido en esta entrada.
NOTAS
(1) No es que la extensión no afecte a cómo trabajar con PyPDF2, es que no supone un problema ni afecta al resultado del acceso. Veremos en esta misma entrada la diferencia entre trabajar con un documento de una sola página o del que queremos extraer el contenido de una página y extraer el contenido de un documento de múltiples páginas.
(2) Muchas publicaciones se presentan a doble columna y contienen tablas de datos y elementos gráficos complejos. Puede que nos interese acceder a documentos de este tipo para extraer determinada información, aunque no sea esta la principal utilidad práctica que obtengamos de PyPDF2.
(3) El que uso como recurso es un texto de un panel informativo del [Museo de Burgos] capturado mediante el programa scanner de la cámara del móvil. Posteriormente fue exportado como texto a un documento Writer y almacenado en formato pdf. Muchos de estos textos simples resultan de procedimientos similares: elaborados originalmente con un procesador de texto, son guardados en formato pdf para garantizar (al menos intentarlo) su integridad y su accesibilidad. (4) Vamos, un texto simple sin más. Este podría ser el caso de un documento sencillo en su configuración o no tanto, pero del que nos interesa únicamente el contenido de una de sus páginas por ser, por ejemplo, donde se ubica la información que consideramos fundamental para nuestro objetivo.
(5) Y para algunos puede que poco funcional. La función print() escribe en consola el resultado de la captura asignada a la variable texto. Desde la consola podemos copiarlo y ubicarlo en otra utilidad, como puede ser un procesador de texto, por ejemplo; pero también guardarlo directamente en un archivo de texto plano o en un documento Word creado mediante python-docx, por ejemplo.
(6) Lo cierto es que esta supuesta limitación no lo es de PyPDF2; se trata en realidad de la segunda fase del procedimiento de acceso al contenido del pdf que no se puede esperar que sea resuelta mediante PyPDF2.
(7) Recuerda que si modificas esta ubicación debes modificar también de la instrucción lector = PdfReader("pdf/VueltaCavernas.pdf")
No hay comentarios:
Publicar un comentario
Comenta esta entrada