marca de agua

PHPWord: agregar marca de agua, TOC y gráficas a documento de Word con PHP

En este post vamos a ver cómo trabajar con documentos de Word usando el lenguaje de programación PHP y la librería PHPWord, parte de la familia de PHPOffice.

Lo que veremos será cómo:

  1. Agregar marca de agua a un documento
  2. Agregar un índice o tabla de contenido
  3. Trabajar con gráficas de barras, de pastel, de línea, etcétera

Este tutorial es la tercera parte de una serie de tutoriales sobre documentos de Word y PHP.

Recuerda ver la primera parte para ver cómo instalar la librería y su uso básico, así como la segunda parte para trabajar con listas, tablas e imágenes.

Continue reading…

Marca de agua colocada con PHP y GD

Poner marca de agua a imágenes con PHP

En este post voy a explicar y demostrar cómo se pueden poner marcas de agua con PHP utilizando las funciones de la librería GD.

Vamos a ver cómo poner la marca de agua en distintas posiciones (arriba a la izquierda, arriba a la derecha, centrada horizontal y verticalmente) y cómo modificar la opacidad de la marca de agua.

Marca de agua colocada con PHP y GD

Marca de agua colocada con PHP y GD

En la imagen de arriba se puede notar que he colocado una marca de agua de una “terminal” sobre una captura de código C (es sobre el post de generar números aleatorios con C).

He elegido estas dos imágenes porque el dueño soy yo, así que no pueden existir reclamaciones de derechos de autor y esas cosas que dan pereza.

Nota: recuerda que hace tiempo publiqué WaterPy, una aplicación similar pero escrita en Python.

Continue reading…

Posibilidad de posicionamiento de marca de agua con WaterPy

Presentando a WaterPy: una aplicación de escritorio para poner marcas de agua

Hoy vengo a presentar una aplicación de escritorio muy simple pero funcional en lo que realiza. Se trata de un software que hace una cosa: poner marcas de agua.

Entre sus principales características encontramos:

  • Open source (aquí el repositorio)
  • Multiplataforma gracias a que lo que usa es igualmente multiplataforma
  • Permite modificar la transparencia de la marca de agua
  • La marca de agua puede ponerse en cualquier posición de la imagen, es decir, en la esquina inferior, superior, etcétera. En modo horizontal se puede colocar en: izquierda, derecha o centro. Y en modo vertical arriba, abajo o en el centro.
  • Permite procesar directorios completos de imágenes, o una imagen
  • Da la posibilidad de agregar una separación entre los límites de la imagen

Veamos cómo fue que la hice y por qué la hice, así como un ejemplo de uso.

Nota: puedes descargarlo aquí.

Continue reading…

Marca de agua con ffmpeg sobre vídeo

Introducción

Hoy veremos cómo podemos agregar, a un vídeo, una marca de agua con ffmpeg. Ffmpeg es una herramienta que funciona para múltiples cosas, como cortar un vídeo, unir 2 vídeos, etcétera.

Lo que explicaré en este post es cómo podemos agregar una imagen a un vídeo MP4 como marca de agua en cualquier posición del vídeo (centro, esquina, etcétera).

Continue reading…

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 listo

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.

from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter


nombre_pdf_original = "post.pdf" # Cambia aquí el nombre de tu documento original
nombre_pdf_salida = "post_con_mensaje.pdf" # Cambia aquí el nombre del PDF de salida
mensaje = "Este es un pie de página :)"
packet = io.BytesIO()

mi_canvas = canvas.Canvas(packet, pagesize=letter)

"""
    También podemos cambiar las coordenadas del mensaje.
    La posición (0, 0) es la esquina inferior izquierda
    por eso es que nuestro mensaje sale tan cerca a 
    dicho lugar
"""
mi_canvas.drawString(5, 5, mensaje)
mi_canvas.save()

packet.seek(0)
pdf_con_pie = PdfFileReader(packet)

pdf_existente = PdfFileReader(open(nombre_pdf_original, "rb"))
output = PdfFileWriter()

# Iterar desde 0 hasta el número de páginas de nuestro documento
numero_de_paginas = pdf_existente.getNumPages()
for numero in range(0, numero_de_paginas):
    page = pdf_existente.getPage(numero)
    page.mergePage(pdf_con_pie.getPage(0))
    print("Agregando mensaje \"{}\" a la página {} de {}".format(mensaje, numero + 1, numero_de_paginas))
    output.addPage(page)

outputStream = open(nombre_pdf_salida, "wb")
output.write(outputStream)
outputStream.close()

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

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.