Colocar marca de agua en pdf
oleh rubenben2815 @rubenben2815
- 97
- 0
- 0
En ocasiones, en mi trabajo, es necesario colocar marcas de agua en los pdfs creados en la oficina. Para crear mi proyecto pensé en esa situación para intentar crear código que me permita colocar marca de agua de una manera rápida.
Investigue mucho y puse en práctica lo aprendido.
import PyPDF2 #PyPDF2 es una biblioteca que permite la manipulacion de archivos pdf.
#Se utiliza el comando pip install PyPDF2 para la instalación de la biblioteca.
from reportlab.pdfgen import canvas
#Estamos declarando una importacion de la clase canvas del módulo pdfgen.
#reportlab.pdfgen es un módulo de la biblioteca Reportlab para generar pdf.
#Se instala con el comando pip install reporlab.
#canvas es un objeto que representa una hoja en blanco.
#-----------------------------------------------------------
#Se crean dos variables principales para el archivo original y la escritura del mismo.
ruta='pip.pdf'
leer_pdf=PyPDF2.PdfReader(ruta) #archivo original
escribir_pdf=PyPDF2.PdfWriter()
#----------------------------------------------------------
#Coordenadas (x,y)
base_pdf,altura_pdf=leer_pdf.pages[0].mediabox.upper_right
#leer_pdf.pages[0] Acceso a la primera página del pdf.
#mediabox.upper_right Funcion para adquirir las dimenciones de la página y enfocarnos en el centro.
#----------------------------------------------------------
rutanew='newpdf.pdf'
cvs=canvas.Canvas(rutanew)
#Crearemos un objeto de tipo canvas para generar un nuevo archivo pdf
cvs.setFont("Helvetica",40)
#Establecemos la fuente y el tamaño de la misma para el texto a crear
cvs.setFillColorRGB(0,0,0,alpha=1)
#Establecemos el color de relleno para el texto.
#El parámetro alpha representa la transparencia.
cvs.drawString(100,altura_pdf/2,"HOLA MUNDO")
#Colocaremos el texto(marca de agua) en el centro de la hoja
cvs.save()
#Guardamos para generar el archivo
#-----------------------------------------------------------
pdfM_agua=PyPDF2.PdfReader(rutanew)
#Creamos variables para el nuevo archivo pdf creado
paginaMarca_agua=pdfM_agua.pages[0]
#Accedemos a la primera hoja del pdf
#-----------------------------------------------------------
#Creamos un ciclo para recorrer las hojas del pdf orginal
#El ciclo permite iterar las páginas para "unirlas" colocando la marca de agua
for pagina in leer_pdf.pages:
poriginal=pagina
poriginal.merge_page(paginaMarca_agua)
escribir_pdf.add_page(poriginal)
#-----------------------------------------------------------
#Creamos un nuevo archivo pdf el cual almacenara todos los cambios realizados
#El nuevo archivo almacenara la "union" de ambos archivos creados el orginal y marca de agua
rutafinal='newfinal.pdf'
with open(rutafinal,"wb") as f:
escribir_pdf.write(f)


1 komentar
Masuk atau bergabung Gratis untuk berkomentar