Divide tu archivo PDF en archivos individuales de 2 páginas cada uno con Python

¿Necesitas dividir un archivo PDF en archivos más pequeños de solo 2 páginas cada uno?

Te muestro cómo usar Python y la biblioteca PyPDF2 para dividir fácilmente tu archivo PDF en archivos individuales, cada uno con 2 páginas. En este caso cada pagina del PDF se divide en un documento y le añade la última página del mismo que seria la parte de atras igual para todos.

Aprende cómo instalar PyPDF2, y te proporcionamos un código de ejemplo que podrás utilizar. Simplifica tu trabajo con archivos PDF voluminosos y aprovecha la flexibilidad de trabajar con secciones más pequeñas.

1. Asegúrate de tener Python instalado en tu sistema. PyPDF2 es compatible con Python 2.7 y versiones posteriores, así como con Python 3.x. Puedes verificar si tienes Python instalado abriendo una ventana de terminal o línea de comandos y ejecutando uno de los siguientes comandos:

python --version
python3 --version

Si el comando muestra la versión de Python instalada, continúa con el paso 2. Si no tienes Python instalado, puedes descargarlo e instalarlo desde el sitio web oficial de Python https://www.python.org.

2. Abre una ventana de terminal o línea de comandos e instala PyPDF2 utilizando el administrador de paquetes pip. Esto descargará e instalará automáticamente PyPDF2 y sus dependencias. Ejecuta el siguiente comando:

pip install PyPDF2

Importante: Si tienes Python 3 instalados en tu Mac, asegúrate de utilizar el comando pip3 en lugar de pip para instalarlo específicamente para Python 3. Ejecuta el siguiente comando:

pip3 install PyPDF2

Una vez que se complete la instalación, PyPDF2 estará listo para ser utilizado en tus programas de Python en tu entorno de macOS.

3. En Python, puedes utilizar la biblioteca PyPDF2 para dividir tu archivo PDF en archivos individuales. A continuación, el código en phyton para dividir el archivo PDF en documentos individuales de 2 páginas.

import os
from PyPDF2 import PdfReader, PdfWriter

def dividir_pdf(archivo_pdf, directorio_guardar_pdf, paginas_por_archivo):
    # Cargar el archivo PDF de entrada
    with open(archivo_pdf, 'rb') as file:
        pdf = PdfReader(file)
        total_paginas = len(pdf.pages)

        # Dividir el PDF en archivos más pequeños
        for i in range(0, total_paginas, paginas_por_archivo):

            # Se crea el nombre del archivo pdf
            salida_pdf = os.path.join(directorio_guardar_pdf, f'archivo-{i+1}.pdf')

            #Se crea el archivo pdf
            escritor = PdfWriter()

            # Se agrega la página al archivo pdf
            escritor.add_page(pdf.pages[i])

            # Se agrega la última pagina al archivo pdf
            escritor.add_page(pdf.pages[total_paginas-1])

            # Guardar el archivo PDF generado
            with open(salida_pdf, 'wb') as archivo_salida:
                escritor.write(archivo_salida)

# Llamar a la funcion
dividir_pdf('archivo.pdf', '/Users/impaco/Desktop/phyton/pdf', 2)


# comprimir carpeta en zip
import shutil
shutil.make_archive('pdf', 'zip', '/Users/impaco/Desktop/phyton/pdf')
  • Esta función toma tres parámetros: archivo_pdf (ruta del archivo PDF de entrada), directorio_guardar_pdf (ruta del directorio donde se guardarán los archivos PDF divididos) y paginas_por_archivo (número de páginas que se deben incluir en cada archivo PDF dividido).
  • Primero, utiliza la biblioteca PdfReader de PyPDF2 para cargar el archivo PDF de entrada y obtener el número total de páginas en el PDF.
  • Luego, usa un bucle for para dividir el PDF en archivos más pequeños. Itera desde la página 0 hasta la última página del PDF, avanzando en incrementos de paginas_por_archivo.
  • Dentro del bucle, se crea el nombre del archivo PDF de salida utilizando la variable i (número de página actual). La función os.path.join se utiliza para unir el directorio de guardar PDF con el nombre del archivo.
  • A continuación, se crea un nuevo objeto PdfWriter para el archivo PDF de salida.
  • Se agrega la página actual del PDF de entrada al nuevo archivo PDF utilizando el método add_page del objeto nuevo_pdf.
  • También se agrega la última página del PDF de entrada al nuevo archivo PDF. Esto se hace utilizando el índice total_paginas-1 para acceder a la última página.
  • Finalmente, el archivo PDF generado se guarda en el disco utilizando el archivo de salida proporcionado y el método write del objeto nuevo_pdf.

Deja el primer comentario