PyPDF2: Procesamiento de PDF en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajar con archivos PDF en Python: guía completa de la librería PyPDF2

PDF es uno de los formatos más populares para documentos electrónicos. Sin embargo, manipularlo, como unir, dividir, cifrar o extraer texto, requiere herramientas fiables. En Python, una de las librerías más populares y estables para trabajar con PDF es PyPDF2.

PyPDF2 permite al desarrollador leer, editar y crear archivos PDF, así como obtener metadatos, gestionar páginas, añadir protección e incluso incrustar marcas de agua. Es una herramienta potente tanto para automatizar flujos de documentos como para integrarse con otros servicios.

¿Qué es PyPDF2?

PyPDF2 es una librería de Python para trabajar con archivos PDF, desarrollada como una versión mejorada de la librería original PyPDF. Proporciona una API de alto nivel para leer, escribir y modificar documentos PDF sin necesidad de comprender la estructura interna del formato PDF.

Principales funcionalidades de la librería

  • Lectura y extracción de texto de archivos PDF
  • Combinación de varios documentos PDF
  • División de PDF en páginas individuales
  • Añadir marcas de agua y superponer páginas
  • Cifrado y descifrado de archivos PDF
  • Trabajo con metadatos de documentos
  • Rotación y escalado de páginas
  • Trabajo con marcadores e índice

Instalación de PyPDF2

La instalación de la librería se realiza a través de pip:

pip install PyPDF2

Para un funcionamiento más estable, se recomienda instalar también las dependencias adicionales:

pip install PyPDF2[crypto]

Clases y componentes principales

PdfReader

La clase PdfReader está diseñada para leer archivos PDF. Proporciona acceso a las páginas, metadatos y otra información del documento.

PdfWriter

La clase PdfWriter se utiliza para crear nuevos archivos PDF o modificar los existentes. Permite añadir páginas, aplicar cifrado y cambiar metadatos.

PdfMerger

La clase PdfMerger se especializa en combinar varios archivos PDF en un solo documento, con la posibilidad de configurar el orden de las páginas.

Operaciones básicas con PDF

Lectura de archivos PDF

from PyPDF2 import PdfReader

# Cargar un archivo PDF
reader = PdfReader("example.pdf")

# Obtener el número de páginas
print(f"Número de páginas: {len(reader.pages)}")

# Extraer texto de la primera página
first_page = reader.pages[0]
text = first_page.extract_text()
print(text)

Extraer texto de todas las páginas

from PyPDF2 import PdfReader

reader = PdfReader("example.pdf")
full_text = ""

for page_num, page in enumerate(reader.pages):
    text = page.extract_text()
    full_text += f"--- Página {page_num + 1} ---\n{text}\n\n"

print(full_text)

Verificar información del documento

from PyPDF2 import PdfReader

reader = PdfReader("example.pdf")

# Verificar si está cifrado
if reader.is_encrypted:
    print("El archivo está cifrado")
else:
    print("El archivo no está cifrado")

# Obtener dimensiones de la primera página
page = reader.pages[0]
print(f"Tamaño de página: {page.mediabox}")
print(f"Rotación: {page.rotation} grados")

Combinar archivos PDF

Combinación simple

from PyPDF2 import PdfMerger

merger = PdfMerger()

# Añadir archivos
merger.append("file1.pdf")
merger.append("file2.pdf")
merger.append("file3.pdf")

# Guardar el resultado
merger.write("merged_document.pdf")
merger.close()

Combinación especificando un rango de páginas

from PyPDF2 import PdfMerger

merger = PdfMerger()                    

Recommendations