Wasserzeichen zu PDF-Dokumenten mit Python hinzufügen
Tags: pdf, python, watermark, watermarking
Published: 2023-09-25 07:27:50

PDF-Dokumente sind ein gängiges Dateiformat, das plattformübergreifend verwendet wird und gute Formatierung sowie hohe Sicherheit bietet. Sie werden häufig zum Drucken, Teilen und Verteilen von Inhalten im Internet verwendet. Allerdings bestehen auch Risiken wie Diebstahl, Weitergabe oder Manipulation von PDF-Dokumenten. Um das Urheberrecht zu schützen und Informationen wie die Quelle, den Besitzer und den Verwendungszweck des Dokuments anzugeben, können wir Wasserzeichen zu PDF-Dokumenten hinzufügen. Aufgrund der schwierigen Bearbeitbarkeit von PDFs können Wasserzeichen nicht leicht entfernt oder geändert werden. Daher bieten Wasserzeichen in PDF-Dokumenten einen effektiven Schutz und erhöhen die Sicherheit und Glaubwürdigkeit des Dokuments. In diesem Artikel wird gezeigt, wie man mit Python **Text- und Bildwasserzeichen in ein PDF-Dokument einfügt**.

- **[Textwasserzeichen einfügen](#textwasserzeichen-einf%C3%BCgen)**
- **[Bildwasserzeichen einfügen](#bildwasserzeichen-einf%C3%BCgen)**

Für die in diesem Artikel verwendete Methode benötigen wir [Spire.PDF for Python](https://www.e-iceblue.com/Download/Spire-PDF-Python.html), das von der offiziellen Website heruntergeladen oder direkt über pip installiert werden kann:
```PowerShell
pip install Spire.PDF
```

## Textwasserzeichen einfügen
Spire.PDF for Python bietet verschiedene Klassen und Methoden, um Textwasserzeichen auf den Seiten eines PDF-Dokuments zu zeichnen. Hier sind die detaillierten Schritte:

- Erstellen Sie ein Objekt der Klasse **PdfDocument**.
- Verwenden Sie die Methode **PdfDocument.LoadFromFile()**, um das PDF-Dokument zu laden.
- Erstellen Sie eine Schriftart.
- Iterieren Sie über die Dokumentseiten.
- Verwenden Sie die Methode **PdfDocument.Pages.get_Item()**, um eine Seite zu erhalten.
- Erstellen Sie ein Objekt der Klasse **PdfTilingBrush**.
- Verwenden Sie die Methode **PdfBrush.Graphics.SetTransparency()**, um die Transparenz des Wasserzeichens festzulegen.
- Verwenden Sie die Methode **PdfBrush.Graphics.TranslateTransform()**, um die Verschiebung einzustellen.
- Verwenden Sie die Methode **PdfBrush.Graphics.RotateTransform()**, um den Neigungswinkel des Wasserzeichens einzustellen.
- Verwenden Sie die Methode **PdfBrush.Graphics.DrawString()**, um das Wasserzeichen auf dem Pinsel zu zeichnen.
- Verwenden Sie die Methode **PdfPageBase.Canvas.DrawRectangle()**, um das Wasserzeichen auf der Seite zu zeichnen.

**Python**
```python
from spire.pdf.common import *
from spire.pdf import *

inputFile = "Dokument.pdf"
outputFile = "output/Text-Wasserzeichen.pdf"

# Erstellen eines Objekts der Klasse PdfDocument
pdf = PdfDocument()

# Laden des PDF-Dokuments
pdf.LoadFromFile(inputFile)

# Erstellen der Schriftart
font = PdfTrueTypeFont("HarmonyOS Sans SC", 32.0, 0, True)

# Durchlaufen der Seiten des Dokuments
for i in range(pdf.Pages.Count):
    # Seite abrufen
    page = pdf.Pages.get_Item(i)
    # Erstellen eines Objekts der Klasse PdfTilingBrush
    brush = PdfTilingBrush(SizeF(page.Canvas.ClientSize.Width / float(2), page.Canvas.ClientSize.Height / float(3)))
    # Einstellen der Transparenz des Wasserzeichens
    brush.Graphics.SetTransparency(0.3)
    brush.Graphics.Save()
    # Einstellen der Verschiebung
    brush.Graphics.TranslateTransform(brush.Size.Width / float(2), brush.Size.Height / float(2))
    # Einstellen des Neigungswinkels des Wasserzeichens
    brush.Graphics.RotateTransform(-45.0)
    # Zeichnen des Wasserzeichentextes auf dem Pinsel
    brush.Graphics.DrawString("NICHT KOPIEREN", font, PdfBrushes.get_Violet(), 0.0, 0.0, PdfStringFormat(PdfTextAlignment.Center))
    brush.Graphics.Restore()
    brush.Graphics.SetTransparency(1.0)
    # Zeichnen des Wasserzeichens auf der Seite
    page.Canvas.DrawRectangle(brush, RectangleF(PointF(0.0, 0.0), page.Canvas.ClientSize))

# PDF-Dokument speichern
pdf.SaveToFile(outputFile)
pdf.Close()
```

**Ergebnisdokument**

![Textwasserzeichen einfügen](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n45qjue40iw6rgx2tlhv.png)

## Bildwasserzeichen einfügen
Wir können auch ein Bildwasserzeichen auf ähnliche Weise in ein PDF-Dokument einfügen. Hier sind die detaillierten Schritte:

- Erstellen Sie ein Objekt der Klasse **PdfDocument**.
- Verwenden Sie die Methode **PdfDocument.LoadFromFile()**, um das PDF-Dokument zu laden.
- Verwenden Sie die Methode **PdfImage.FromFile()**, um das Wasserzeichenbild zu laden.
- Iterieren Sie über die Dokumentseiten.
- Verwenden Sie die Methode **PdfDocument.Pages.get_Item()**, um eine Seite zu erhalten.
- Verwenden Sie die Methode **PdfBrush.Graphics.SetTransparency()**, um die Transparenz des Wasserzeichens festzulegen.
- Verwenden Sie die Methode **PdfBrush.Graphics.DrawImage()**, um das Wasserzeichen auf dem Pinsel zu zeichnen.
- Verwenden Sie die Methode **PdfPageBase.Canvas.DrawRectangle()**, um das Wasserzeichen auf der Seite zu zeichnen.

**Python**
```python
from spire.pdf.common import *
from spire.pdf import *

inputFile = "Dokument.pdf"
outputFile = "output/Bild-Wasserzeichen.pdf"

# Erstellen eines Objekts der Klasse PdfDocument
pdf = PdfDocument()

# Laden des PDF-Dokuments
pdf.LoadFromFile(inputFile)

# Laden des Wasserzeichenbildes
image = PdfImage.FromFile("Wasserzeichen.png")

# Durchlaufen der Seiten des Dokuments
for i in range(pdf.Pages.Count):
    # Seite abrufen
    page = pdf.Pages.get_Item(i)
    # Erstellen eines Objekts der Klasse PdfTilingBrush
    brush = PdfTilingBrush(SizeF(page.Canvas.Size.Width / float(3), page.Canvas.Size.Height / float(3)))
    # Einstellen der Transparenz des Wasserzeichens
    brush.Graphics.SetTransparency(0.3)
    brush.Graphics.Save()
    # Zeichnen des Wasserzeichens auf dem Pinsel
    brush.Graphics.TranslateTransform(brush.Size.Width/2 - image.Width/2, brush.Size.Height/2 - image.Height/2)
    brush.Graphics.DrawImage(image, 0.0, 0.0, float(image.Width), float(image.Height))
    brush.Graphics.Restore()
    # Zeichnen des Wasserzeichens auf der Seite
    page.Canvas.DrawRectangle(brush, RectangleF(PointF(0.0, 0.0), page.Canvas.Size))

# Speichern des PDF-Dokuments
pdf.SaveToFile(outputFile, FileFormat.PDF)
pdf.Close()
```

**Ergebnisdokument**

![Bildwasserzeichen einfügen](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dmbu5bckpt1jtw22ohe7.png)

Das war eine Einführung in das Hinzufügen von Text- und Bildwasserzeichen zu PDF-Dokumenten mit Spire.PDF for Python. Weitere Tutorials finden Sie im [Spire.PDF for Python Tutorial Center](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Spire.PDF-for-Python-Program-Guide-Content.html). Sie können auch das [Spire.PDF-Forum](https://www.e-iceblue.com/forum/spire-pdf-f7.html) besuchen, um an Diskussionen teilzunehmen.