Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Vattenstämplar är ett tydligt men ändå subtilt sätt att identifiera ägaren till en viss fil. Även om människor kan tycka att de är irriterande, tjänar de sitt syfte på ett graciöst sätt.

Med en vattenstämpel kan du inte bara skydda dina filer, utan även lägga till beskrivande text, plats, tidpunkt för generering och mer. Så nästa gång du lämnar in din uppgift eller journalpapper, se till att lägga till en vattenstämpel med detta enkla Python-program.

Vad är ReportLab-modulen?

För att lägga till en vattenstämpel till en PDF-fil behöver du ett bra bibliotek som ReportLab-modulen. Det är ett bibliotek med öppen källkod som låter dig skapa PDF-filer, samt lägga till diagram, data och grafik till dem. Den här modulen hjälper dig att generera dynamiska PDF-filer, konvertera XML-filer till PDF-filer och generera rapporter. För att installera ReportLab på ditt system, öppna en terminal och skriv:

instagram viewer
pip Installera reportlab

Detta installerar ReportLab i din Python-miljö.

Vad är PyPDF2-modulen?

PyPDF2 är ett populärt bibliotek som du kan använda för att utföra en mängd användbara PDF-operationer. Dessa inkluderar beskärning, sammanfogning, delning, rotering, transformering, tillägg av data, stämpling och vattenmärkning. Du kan också kryptera och dekryptera, extrahera text, bilder och metadata och läsa eller lägga till PDF-kommentarer. För att installera PyPDF2 i ditt system, öppna en terminal och skriv:

pip Installera PyPDF2

Detta installerar PyPDF2 i din Python-miljö.

Hur man lägger till den önskade vattenstämpeln till PDF med Python

Att lägga till en vattenstämpel till en PDF-fil med Python är ganska enkelt. Du kommer att skapa en duk och rita textens vattenstämpel med din favoritfärg och riktning och spara den sedan som en PDF.

Efter genereringen av denna ensidiga vattenstämpeldesign kan du öppna båda PDF-filerna och slå samman dem sida för sida. Voilà, din vattenstämplade PDF är då klar.

Börja ditt program genom att importera duk från pdfgen, som ligger i reportlab modul. Gränssnittet pdfgen fungerar på den lägsta nivån för att generera PDF-filer. Du kan visualisera det som att måla en dokumentdesign och struktur på en sida. Canvas-klassen tillhandahåller de operationer som behövs för att göra det.

Du kan tänka på duken som ett ark vanligt papper med kartesiska koordinater. Ursprungspunkten (0,0) finns i det nedre vänstra hörnet. Värdena på x- och y-koordinaterna ökar när punkter rör sig bort från origo, uppåt och till höger.

Importera från ReportLab-biblioteket tum, Färg, och sidstorlek. Programmet kommer att använda tum som måttenhet. Det finns två färgformat tillgängliga under ReportLab: den RGB modell och CYMK modell. RGB är att föredra, men om du vill ha mer kontroll över nivån på färger som visas när du skriver ut PDF: en kan du istället välja CYMK.

Som namnet antyder är storleken på sidan inställd på A4. Importera dessutom PdfFileReader och PdfFileWriter från PyPDF2 för att utföra läs- och skrivoperationer på PDF-filer.

från reportlab.pdfgen importera duk
från reportlab.lib.units importera tum
från reportlab.lib importera färger
från reportlab.lib.pagesizes importera A4
från PyPDF2 importera PdfFileReader, PdfFileWriter

Definiera en funktion som kallas makeWatermark() för att skapa en ensidig vattenstämpel PDF-fil som du senare kommer att använda för att applicera på sidorna i det önskade dokumentet. Be användaren att mata in texten i vattenstämpeln med hjälp av inmatningssatsen.

Använd duken för att skapa ett ritområde med namnet watermark.pdf och A4 sidstorlek. De Översätt() funktionen flyttar origo till det övre vänstra hörnet.

Ställ in textfilen till grå med en opacitet på 0,6; på en skala från 0-1 är 0 det mest transparenta och 1 är det mest ogenomskinliga. Ställ in teckensnittsstilen till Helvetica med storleken 50. Applicera en rotation på 45 grader i moturs riktning. Skicka x- och y-koordinaterna tillsammans med texten för att rita den över duken och spara den med hjälp av save()-funktionen.

defgöra Vattenstämpel():
text = input("Skriv in vattenstämpeltexten här:")
pdf = canvas. Duk("vattenmärke.pdf", sidstorlek=A4)
pdf.Översätt(tum, tum)
pdf.setFillColor (colors.grey, alpha=0.6)
pdf.setFont("Helvetica", 50)
pdf.rotera(45)
pdf.drawCentredString(400, 100, text)
pdf.spara()

Vattenstämpelns PDF-fil som ovanstående funktion genererar ser ut så här:

Definiera en funktion som heter makepdf() för att vattenmärka sidorna i PDF-filen. Ange namnet på filen du vill vattenstämpla, inklusive eventuella .pdf förlängning. Initiera en variabel för att lagra namnet på den vattenmärkta PDF-filen. Öppna båda filerna i läs binärt läge.

Använd PdfFileReader() för att instansiera ett objekt som representerar varje PDF. Använd getPage() funktion för att få den första och enda sidan i den vattenmärkta PDF-filen.

defmakepdf():
pdf_fil = input("PDF-fil:")
vattenstämpel = 'watermark.pdf'
sammanslagna = "Vattenmärkt.pdf"

medöppen(pdf_fil, "rb") som indatafil, öppen(vattenstämpel, "rb") som vattenmärkesfil:
input_pdf = PdfFileReader (input_file)
watermark_pdf = PdfFileReader (vattenmärkesfil)
watermark_page = watermark_pdf.getPage (0)

Nu är det dags att slå samman vattenstämpelsidan med varje sida i mål-PDF-filen.

Skapa ett objekt av klassen PdfFileWriter att använda för att generera utdata-PDF. Definiera en loop som itererar över varje sida i den önskade PDF-filen. Funktionen getNumPages() returnerar det totala antalet sidor i en PDF. Använd funktionen getPage() för att hämta sidan och slå samman den med vattenstämpelsidan som lagrats tidigare.

Använd PdfFileWriter-objektet för att lägga till varje sammanslagen sida till den slutliga PDF-filen. När du har skapat utdata-PDF-filen, öppna utdatafilen i binärt skrivläge och använd funktionen write() för att spara den vattenmärkta pdf-filen till den här filen.

 output = PdfFileWriter()

föriiräckvidd(input_pdf.getNumPages()):
pdf_page = input_pdf.getPage (i)
pdf_sida.mergePage(vattenmärkessida)
produktion.addPage(pdf_sida)

medöppen(sammanslagna, "wb") som sammanslagen_fil:
produktion.skriva(sammanslagen_fil)

Till sist, anrop båda funktionerna – makeWatermark() och makepdf() – för att skapa den vattenmärkta PDF-filen:

makeWatermark()
makepdf()

Texten vattenmärkt PDF som genereras med ovanstående Python-program ser ut så här:

Dessutom kan du följa denna femstegsmetod för att skapa och lägg till en vattenstämpel till vilken bild som helst med Canva. Du kan också använda tekniker för att vattenmärka dina videor på bara några minuter.

Det kan finnas tillfällen då du lagt till en vattenstämpel av misstag och vill ta bort den. Du kan använda onlineverktyg som Soda PDF, Microsoft Word, Google Docs och PDF Zorro gratis. För bilder kan du utforska verktyg som Wondershare PixCut, Inpaint, Aiseesoft, Apowersoft och Cutout.pro.

För gratis borttagning av vattenstämpel i videor, använd Apowersoft, 123apps, PickFrom Blur och BeeCut.

Kom dock ihåg att inte använda något upphovsrättsskyddat material utan ägarens tillstånd.