Manipulación de PDFs con pypdf en Python

Manipulación de PDFs con pypdf en Python

Introducción

PDF es un formato de archivo de documento portátil que se utiliza para representar documentos electrónicos. Es un formato de archivo independiente del hardware y el software, lo que significa que puede ser abierto y visualizado en cualquier dispositivo que tenga un lector de PDF.

PyPDF2 es una biblioteca de Python que proporciona funciones para leer, escribir y manipular archivos PDF. Es una biblioteca gratuita y de código abierto que se puede instalar desde el repositorio de paquetes de Python.

Instalación

Para instalar PyPDF2, abra una terminal y ejecute el siguiente comando:

pip install pypdf2

Ejemplos

A continuación se presentan algunos ejemplos de cómo utilizar PyPDF2 para manipular archivos PDF:

Leer un archivo PDF

Para leer un archivo PDF, puede utilizar el método PdfFileReader(). Este método devuelve un objeto PdfFileReader, que contiene información sobre el archivo PDF, como el título, el autor y el número de páginas.

Python
import pypdf2

# Abrir un archivo PDF
pdf_file = open('documento.pdf', 'rb')

# Crear un objeto PdfFileReader
pdf_reader = pypdf2.PdfFileReader(pdf_file)

# Imprimir el título del archivo PDF
print(pdf_reader.getDocumentInfo().title)

Escribir un archivo PDF

Para escribir un archivo PDF, puede utilizar el método PdfFileWriter(). Este método devuelve un objeto PdfFileWriter, que puede utilizarse para agregar páginas a un archivo PDF existente o crear un nuevo archivo PDF.

Python
import pypdf2

# Crear un objeto PdfFileWriter
pdf_writer = pypdf2.PdfFileWriter()

# Agregar una página al archivo PDF
pdf_writer.addPage(pdf_reader.getPage(0))

# Escribir el archivo PDF
pdf_file = open('documento_salida.pdf', 'wb')
pdf_writer.write(pdf_file)
pdf_file.close()

Fusionar archivos PDF

Para fusionar archivos PDF, puede utilizar el método PdfFileMerger(). Este método devuelve un objeto PdfFileMerger, que puede utilizarse para agregar archivos PDF a un nuevo archivo PDF.

Python
import pypdf2

# Crear un objeto PdfFileMerger
pdf_merger = pypdf2.PdfFileMerger()

# Agregar archivos PDF al archivo de salida
pdf_merger.append('documento1.pdf')
pdf_merger.append('documento2.pdf')

# Escribir el archivo PDF de salida
pdf_file = open('documento_fusionado.pdf', 'wb')
pdf_merger.write(pdf_file)
pdf_file.close()

Dividir un archivo PDF

Para dividir un archivo PDF, puede utilizar el método PdfFileReader() para obtener un objeto PdfFileReader y luego iterar sobre las páginas del archivo PDF. Para cada página, puede crear un nuevo archivo PDF y agregar la página al nuevo archivo PDF.

Python
import pypdf2

# Abrir un archivo PDF
pdf_file = open('documento.pdf', 'rb')

# Crear un objeto PdfFileReader
pdf_reader = pypdf2.PdfFileReader(pdf_file)

# Iterar sobre las páginas del archivo PDF
for i in range(pdf_reader.getNumPages()):
    # Crear un nuevo archivo PDF
    pdf_file_salida = open('documento_salida_{}.pdf'.format(i), 'wb')

    # Agregar la página al nuevo archivo PDF
    pdf_writer = pypdf2.PdfFileWriter()
    pdf_writer.addPage(pdf_reader.getPage(i))
    pdf_writer.write(pdf_file_salida)
    pdf_file_salida.close()

# Cerrar el archivo PDF
pdf_file.close()

Conclusión

PyPDF2 es una biblioteca de Python potente y flexible que puede utilizarse para manipular archivos PDF de diversas maneras.