Manipulación de documentos PDF con PyPDF2 en Python

Manipulación de documentos PDF con PyPDF2 en Python

PyPDF2 es una biblioteca de Python que permite leer, escribir y manipular archivos PDF. Es una herramienta muy potente que puede ser utilizada para una variedad de tareas, como:

  • Extraer texto e imágenes de archivos PDF
  • Fusionar o dividir archivos PDF
  • Modificar el contenido o el formato de un archivo PDF

Instalación

Para instalar PyPDF2, ejecuta el siguiente comando en la terminal:

pip install PyPDF2

Lectura de archivos PDF

Para leer un archivo PDF con PyPDF2, utiliza la función PdfFileReader(). Esta función devuelve un objeto PdfFileReader que representa el archivo PDF.

Python
import PyPDF2

# Lee el archivo PDF
pdf_file = open("documento.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Imprime el número de páginas
print(pdf_reader.numPages)

# Imprime el título del documento
print(pdf_reader.getDocumentInfo().title)

Extracción de texto

Para extraer texto de un archivo PDF, utiliza la función extractText(). Esta función devuelve una cadena con el texto de todas las páginas del documento.

Python
import PyPDF2

# Lee el archivo PDF
pdf_file = open("documento.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Extrae el texto
texto = pdf_reader.extractText()

# Imprime el texto
print(texto)

Fusionar archivos PDF

Para fusionar dos o más archivos PDF, utiliza la función PdfFileMerger(). Esta función crea un nuevo archivo PDF que contiene el contenido de los archivos de origen.

Python
import PyPDF2

# Abre los archivos PDF de origen
pdf_file1 = open("documento1.pdf", "rb")
pdf_file2 = open("documento2.pdf", "rb")

# Crea un nuevo objeto `PdfFileMerger`
pdf_merger = PyPDF2.PdfFileMerger()

# Añade los archivos de origen al nuevo documento
pdf_merger.append(pdf_file1)
pdf_merger.append(pdf_file2)

# Escribe el nuevo archivo PDF
pdf_merger.write("documento_fusionado.pdf")

Dividir archivos PDF

Para dividir un archivo PDF en varios archivos más pequeños, utiliza la función split(). Esta función crea un nuevo archivo PDF para cada página del documento de origen.

Python
import PyPDF2

# Lee el archivo PDF
pdf_file = open("documento.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Divide el archivo PDF en 2 archivos
for i in range(pdf_reader.numPages):
    pagina = pdf_reader.getPage(i)
    pdf_writer = PyPDF2.PdfFileWriter()
    pdf_writer.addPage(pagina)
    pdf_file_out = open("documento_" + str(i) + ".pdf", "wb")
    pdf_writer.write(pdf_file_out)
    pdf_file_out.close()

Otras funciones

PyPDF2 también proporciona una serie de funciones adicionales para manipular archivos PDF. Estas funciones incluyen:

  • addPage(): Añade una página a un archivo PDF
  • deletePage(): Elimina una página de un archivo PDF
  • rotatePage(): Rota una página de un archivo PDF
  • setPageLayout(): Establece el diseño de una página de un archivo PDF
  • setPageMode(): Establece el modo de visualización de un archivo PDF

Conclusión

PyPDF2 es una herramienta muy potente que puede ser utilizada para una variedad de tareas de manipulación de documentos PDF. Con un poco de práctica, podrás utilizar esta biblioteca para crear tus propios proyectos de procesamiento de PDF.