python

Python: agregar pie de página a PDF

Introducción

Ya hemos trabajado anteriormente con Python para muchas cosas. Hoy veremos cómo poner un pie de página a cualquier documento PDF.

Veremos cómo poner un texto, número o cualquier mensaje que queramos.

Esto funciona cuando queremos poner nuestro nombre a algún documento, o modificar un documento PDF que no podemos editar.

El proceso es realmente sencillo, sólo necesitamos Python y algunas librerías que instalaremos con Pip. Recuerda que si no tienes instalado pip o Python, aquí hay un excelente tutorial.

Librerías o requisitos

Como siempre, necesitamos Python y pip. Aquí un tutorial.

Una vez que tengamos todo instalado, necesitamos 2 librerías más: PyPDF2 y ReportLab. Más abajo veremos cómo instalarlas.

Instalar PyPDF2

Ejecutamos lo siguiente en la línea de comandos:

pip install PyPDF2

Instalar ReportLab

Ejecutamos lo siguiente:

pip install reportlab

Ahora sí estamos listos.

Archivo de ejemplo

Para ejemplificar lo que aquí se verá, se utilizará un PDF normal que es de uno de mis posts:

post

Poner mensaje en pie de página

Para mí, esta opción es la más útil. Podría servir para poner nuestra “marca de agua” en los documentos que generemos. En fin, podemos poner cualquier mensaje deseado.

See the gist on github.

El código se explica por sí mismo. Simplemente creamos un documento PDF temporal, con el mensaje que pusimos y luego lo “combinamos” con el original.

Así vamos haciendo por cada página y al final escribimos el contenido del stream en el archivo de salida.

Si ejecutamos el código se verá algo así:

Agregando pie de página a un documento PDF de ejemplo

El resultado es este:

post_con_mensaje

Sencillo pero muy útil. Tal vez más tarde podríamos agregar una interfaz gráfica para facilitar el uso de este programa. Incluso podríamos empaquetar esto.

Conclusión

Te recomiendo leer la documentación oficial de ReportLab aquí, así como la de PyPDF2 aquí. Igualmente te invito a leer otros tutoriales de Python.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Estimado, tu código me parece muy interesante, me puedes comentar como hago para agregar ademas del pie de página el numero de la página.

  • Me puedes explicar con manzanas porfavor
    donde escribo o copio la ubicación del archivo pdf en el pc?
    o tiene que estar en la misma carpeta?

    • Hola. Puede ser la ruta absoluta o relativa. Si el PDF está en el mismo directorio que el script, basta con escribir el nombre completo incluyendo la extensión.
      Si el PDF está en otra ubicación entonces su ruta podría ser (podría ser; solo es un ejemplo) algo como C:\\su_usuario\\Documents\\documento.pdf
      Saludos

Entradas recientes

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

6 horas hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

7 horas hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

9 horas hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

14 horas hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

5 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

5 días hace

Esta web usa cookies.