Las marcas de agua son una forma clara pero sutil de identificar al propietario de un archivo en particular. Si bien las personas pueden encontrarlos molestos, cumplen su propósito con gracia.
Con una marca de agua, no solo puede proteger sus archivos, sino también agregar texto descriptivo, ubicación, hora de generación y más. Por lo tanto, la próxima vez que entregue su tarea o trabajo diario, asegúrese de agregar una marca de agua con este sencillo programa de Python.
¿Qué es el módulo ReportLab?
Para agregar una marca de agua a un archivo PDF, necesitará una buena biblioteca como el módulo ReportLab. Es una biblioteca de código abierto que le permite crear archivos PDF, así como agregarles tablas, datos y gráficos. Este módulo lo ayuda a generar PDF dinámicos, convertir archivos XML a PDF y generar informes. Para instalar ReportLab en su sistema, abra una terminal y escriba:
pepita instalar informelab
Esto instala ReportLab en su entorno de Python.
¿Qué es el módulo PyPDF2?
PyPDF2 es una biblioteca popular que puede usar para realizar una variedad de operaciones PDF útiles. Estos incluyen recortar, fusionar, dividir, rotar, transformar, agregar datos, estampar y marcas de agua. También puede cifrar y descifrar, extraer texto, imágenes y metadatos, y leer o agregar anotaciones en PDF. Para instalar PyPDF2 en su sistema, abra una terminal y escriba:
pepita instalar PyPDF2
Esto instala PyPDF2 en su entorno de Python.
Cómo agregar la marca de agua deseada a un PDF usando Python
Agregar una marca de agua a un archivo PDF usando Python es bastante simple. Creará un lienzo y dibujará la marca de agua de texto con su color y dirección favoritos, luego guárdelo como PDF.
Después de generar este diseño de marca de agua de una página, puede abrir ambos archivos PDF y fusionarlos página por página. Voilà, su PDF con marca de agua está listo.
Comience su programa importando lienzo de pdfgen, ubicado en el informelab módulo. La interfaz pdfgen actúa en el nivel más bajo para generar archivos PDF. Puede visualizarlo como pintar el diseño y la estructura de un documento en una página. La clase canvas proporciona las operaciones necesarias para hacerlo.
Puede pensar en el lienzo como una hoja de papel normal con coordenadas cartesianas. El punto de origen (0,0) está en la esquina inferior izquierda. Los valores de las coordenadas x e y aumentan a medida que los puntos se alejan del origen, hacia arriba y hacia la derecha.
Desde la biblioteca ReportLab, importe pulgada, color, y tamaño de página. El programa utilizará pulgadas como unidad de medida. Hay dos formatos de color disponibles en ReportLab: el RGB modelo, y el CYMK modelo. Es preferible RGB, pero si desea tener más control sobre el nivel de colores que aparecen cuando imprime el PDF, puede optar por CYMK.
Como sugiere el nombre, el tamaño de la página se establece en A4. Además, importe el PdfFileReader y PdfFileWriter de PyPDF2 para realizar operaciones de lectura y escritura en archivos PDF.
de reportlab.pdfgen importar lienzo
de reportlab.lib.unidades importar pulgada
de reportlab.lib importar colores
de reportlab.lib.tamaños de página importar A4
de PyPDF2 importar PdfFileReader, PdfFileWriter
Defina una función llamada hacer marca de agua () para crear el archivo PDF de marca de agua de una página que luego usará para aplicar en las páginas del documento deseado. Pida al usuario que ingrese el texto de la marca de agua usando la declaración de entrada.
Utilice el lienzo para generar un área de dibujo con el nombre marca de agua.pdf y tamaño de página A4. El traducir() La función mueve el origen a la esquina superior izquierda.
Establezca el archivo del texto en gris con una opacidad de 0,6; en una escala de 0-1, 0 es el más transparente y 1 es el más opaco. Establezca el estilo de fuente en Helvetica con un tamaño de 50. Aplique una rotación de 45 grados en el sentido contrario a las agujas del reloj. Pase las coordenadas x e y junto con el texto para dibujarlo sobre el lienzo y guárdelo usando la función save().
definitivamentehacer marca de agua():
texto = entrada ("Ingrese el texto de la marca de agua aquí:")
pdf = lienzo. Lienzo("marca de agua.pdf", tamaño de página=A4)
pdf.traducir(pulgada, pulgada)
pdf.setFillColor (colores.gris, alfa=0.6)
pdf.setFont("Helvética", 50)
pdf.girar(45)
pdf.drawCentredString(400, 100, texto)
pdf.ahorrar()
El archivo PDF de marca de agua que genera la función anterior tiene este aspecto:
Defina una función llamada hacerpdf() para marcar con agua las páginas del PDF. Ingrese el nombre del archivo que desea marcar con una marca de agua, incluidos los .pdf extensión. Inicialice una variable para almacenar el nombre del PDF con marca de agua. Abra ambos archivos en modo binario de lectura.
Utilizar el PdfFileReader() para instanciar un objeto que represente cada PDF. Utilizar el obtenerPágina() función para obtener la primera y única página del PDF con marca de agua.
definitivamentehacerpdf():
archivo_pdf = entrada("Archivo PDF: ")
marca de agua = 'marca de agua.pdf'
combinado = "Marca de agua.pdf"
conabierto(archivo PDF, "rb") como fichero de entrada, abierto(filigrana, "rb") como archivo de marca de agua:
input_pdf = PdfFileReader (archivo_de_entrada)
marca de agua_pdf = PdfFileReader (archivo de marca de agua)
marca_de_agua_página = marca_de_agua_pdf.getPage (0)
Ahora es el momento de fusionar la página de marca de agua con cada página en el PDF de destino.
Cree un objeto de la clase PdfFileWriter para usarlo para generar el PDF de salida. Defina un bucle que itere sobre cada página en el PDF deseado. La función getNumPages() devuelve el número total de páginas en un PDF. Use la función getPage() para obtener la página y fusionarla con la página de marca de agua almacenada anteriormente.
Utilice el objeto PdfFileWriter para agregar cada página combinada al PDF final. Una vez que haya creado el PDF de salida, abra el archivo de salida en modo binario de escritura y use la función write() para guardar el pdf con marca de agua en este archivo.
salida = PdfFileWriter()
paraienrango(entrada_pdf.getNumPages()):
pdf_page = input_pdf.getPage (i)
página_pdf.mergePage(marca_de_agua)
producción.añadir página(página_pdf)
conabierto(fusionado, "wb") como archivo_combinado:
producción.escribir(archivo_fusionado)
Finalmente, llame a ambas funciones, makeWatermark() y makepdf(), para crear el archivo PDF con marca de agua:
hacer marca de agua ()
hacerpdf()
El PDF de texto con marca de agua generado con el programa Python anterior se ve así:
Además, puede seguir este método de cinco pasos para crea y agrega una marca de agua a cualquier imagen usando Canva. También puedes usar técnicas para poner marcas de agua en tus videos en solo unos minutos.
Puede haber ocasiones en las que haya agregado una marca de agua por error y desee eliminarla. Puede usar herramientas en línea como Soda PDF, Microsoft Word, Google Docs y PDF Zorro de forma gratuita. Para imágenes, puede explorar herramientas como Wondershare PixCut, Inpaint, Aiseesoft, Apowersoft y Cutout.pro.
Para la eliminación gratuita de marcas de agua en videos, use Apowersoft, 123apps, PickFrom Blur y BeeCut.
Sin embargo, recuerde no utilizar ningún material protegido por derechos de autor sin el permiso del propietario.