lunes, 8 de septiembre de 2025

DATOS. Archivos PDF

Biblioteca PyPDF2 (II)

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 archivo con el que trabajemos, ya que un .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 básico, aunque posiblemente no el más frecuente: un documento de texto simple y de página única (3). También podemos aplicar esta calificación al trabajo con un .pdf complejo del que únicamente queramos obtener una página de texto simple (4).

Sobre esta base y sin más pretensión que la didáctica, voy a finalizar el script iniciado en la entrada anterior



from PyPDF2 import PdfReader
lector = PdfReader("vueltaCavernas.pdf")
pagina = lector.pages[0]
texto = pagina.extract_text()
print(texto)


Es muy sencillo acceder al contenido de un .pdf sencillo: bastan dos líneas, una para obtener el texto texto = pagina.extract_text() y otra mostrarlo print(texto) (5). La parte negativa es el escaso manejo que nos permite esta alternativa de afrontamiento de cuestiones complejas de forma y de contenidos del documento. La primera de estas limitaciones la veremos con cierto detalle cuando trabajemos con .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 en el directorio donde copies el script (7).

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 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 su integridad y su accesibilidad universal.
4 Donde se encuentra, por ejemplo, la información-diana, la que consideramos clave para nuestro objetivo.
5 La función print() escribe en consola el resultado de la captura asignada a la variable texto. Desde la consola podemos copiarlo y usarlo con otro servicio como un procesador de texto, por ejemplo, pero también guardarlo desde el script 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, la cual no se puede ser resuelta mediante esta biblioteca.
7 Si modificas esta ubicación debes modificar también de la instrucción lector = PdfReader("VueltaCavernas.pdf")

No hay comentarios:

Publicar un comentario

Comenta esta entrada