¿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) ypaginas_por_archivo
(número de páginas que se deben incluir en cada archivo PDF dividido). - Primero, utiliza la biblioteca
PdfReader
dePyPDF2
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 depaginas_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ónos.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 objetonuevo_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 objetonuevo_pdf
.