DEV Community

SirOnly
SirOnly

Posted on

Einfügen eines Textwasserzeichens in PDF mit Java

PDF-Text-Wasserzeichen sind digitale Textmarken, die als Hintergrund auf jeder PDF-Seite angezeigt werden. Im Gegensatz zu Stempeln sind Textwasserzeichen in die Seite integriert und können nicht direkt entfernt werden. Sie werden oft verwendet, um Dokumentinformationen, Unternehmensinformationen, Autoreninformationen und viele andere Attribute des Dokuments anzuzeigen. Darüber hinaus können Textwasserzeichen dazu beitragen, PDF-Dokumente vor Missbrauch zu schützen. Textwasserzeichen werden häufig in PDF-Dokumenten mit dem ursprünglichen Inhalt verwendet, der im Web veröffentlicht ist. In diesem Artikel wird gezeigt, wie Sie mit der kostenlosen Free Spire.PDF for Java-Bibliothek Textwasserzeichen in ein PDF-Dokument einfügen können.

  • Einfügen eines einzelnen Textwasserzeichens in ein PDF-Dokument
  • Einfügen eines kachelartigen Textwasserzeichens in ein PDF-Dokument

Hinzufügen von Abhängigkeiten

Für diese Methode wird die kostenlose Free Spire.PDF for Java-Bibliothek benötigt. Importieren Sie zuerst die JAR-Datei.

1. Maven
Wenn Sie Maven verwenden, können Sie die JAR-Datei einfach in Ihr Projekt importieren, indem Sie den folgenden Code in die pom.xml-Datei Ihres Projekts hinzufügen.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>
Enter fullscreen mode Exit fullscreen mode

2. Herunterladen der JAR-Datei von der offiziellen Website
Laden Sie zunächst die ZIP-Datei von der offiziellen Website von Free Spire.PDF for Java herunter. Entpacken Sie die ZIP-Datei und importieren Sie die Spire.Pdf.jar-Datei aus dem lib-Ordner als Abhängigkeit in Ihr Projekt.

Einfügen eines einzelnen Textwasserzeichens in ein PDF-Dokument

Ein einzelnes Textwasserzeichen ist ein Textwasserzeichen, das nur einmal in der Mitte der Seite angezeigt wird. Die Schritte zum Einfügen eines einzelnen Textwasserzeichens lauten wie folgt:

  • Erstellen Sie eine Instanz der Klasse PdfDocument.
  • Laden Sie das PDF-Dokument mit der Methode PdfDocument.loadFromFile().
  • Erstellen Sie ein Schriftartenobjekt.
  • Schleife über die Seiten und fügen Sie auf jeder Seite das Wasserzeichen ein.
  • Verwenden Sie die Methode PdfDocument.getPages().get(), um eine Seite abzurufen.
  • Verwenden Sie die Methode PdfPageBase.getCanvas().translateTransform(), um die Anfangsposition festzulegen.
  • Verwenden Sie die Methode PdfPageBase.getCanvas().rotateTransform(), um den Drehwinkel festzulegen.
  • Verwenden Sie die Methode PdfPageBase.getCanvas().drawString(), um den Wasserzeichen-Text auf der Seite zu zeichnen.
  • Speichern Sie das Dokument mit der Methode PdfDocument.saveToFile().

Java

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.htmlconverter.qt.Size;

import java.awt.*;
import java.awt.geom.*;

public class insertSingleTextWaterMark {
    public static void main(String[] args) {

        // Erstellen Sie eine Instanz der Klasse PdfDocument
        PdfDocument pdf = new PdfDocument();

        // Laden Sie das PDF-Dokument
        pdf.loadFromFile("Sample.pdf");

        // Erstellen Sie eine Schriftart
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Mincho", Font.BOLD, 50));

        // Schleife über die Seiten und fügen Sie jedem eine Wasserzeichen ein
        String text = "Entwurf";
        float set1 = (float) (font.getSize() * Math.sqrt(2));
        float set2 = (float) (font.getHeight() * Math.sqrt(2) / 4);
        for (int i = 0; i < pdf.getPages().getCount(); i++) {
            // Holen Sie die Seite
            PdfPageBase page = pdf.getPages().get(i);
            // Setzen Sie die Transparenz des Wasserzeichens
            page.getCanvas().setTransparency(0.8f);
            // Setzen Sie die Anfangsposition
            page.getCanvas().translateTransform(page.getCanvas().getSize().getWidth() / 2 - (set1 + set2), page.getCanvas().getSize().getHeight() / 2 + set1 - set2);
            // Setzen Sie den Rotationswinkel
            page.getCanvas().rotateTransform(-45);
            // Zeichnen Sie den Text des Wasserzeichens
            page.getCanvas().drawString(text, font, PdfBrushes.getDarkGray(), 0, 0);
        }

        // Speichern Sie die Datei
        pdf.saveToFile("Text-Wasserzeichen.pdf");
    }
}
Enter fullscreen mode Exit fullscreen mode

Einfügen eines kachelartigen Textwasserzeichens in ein PDF-Dokument

Es ist auch möglich, Textwasserzeichen als Kachel auf der Seite anzuzeigen. Die detaillierten Schritte zum Einfügen eines kachelartigen Textwasserzeichens lauten wie folgt:

  • Erstellen Sie eine Instanz der Klasse PdfDocument.
  • Laden Sie das PDF-Dokument mit der Methode PdfDocument.loadFromFile().
  • Schleife über die Seiten im Dokument, um das Wasserzeichen einzufügen.
  • Verwenden Sie die Methode PdfDocument.getPages().get(), um die Seiten im Dokument abzurufen.
  • Verwenden Sie die benutzerdefinierte Methode insertWatermark(), um das Textwasserzeichen einzufügen.
  • Verwenden Sie die Methode PdfDocument.saveToFile(), um das Dokument zu speichern.

Java

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.*;

public class insertTextwatermark {
    public static void main(String[] args) {

        // Erstellen Sie eine Instanz der Klasse PdfDocument
        PdfDocument pdf = new PdfDocument();

        // Laden Sie das PDF-Dokument
        pdf.loadFromFile("Sample.pdf");

        // Schleife über alle Seiten im Dokument, um Wasserzeichen einzufügen
        for (int i = 0; i < pdf.getPages().getCount(); i++){
            PdfPageBase pageBase = pdf.getPages().get(i);
            insertWatermark(pageBase, "Entwurf");
        }

        // Dokument speichern
        pdf.saveToFile("Gekacheltes Text-Wasserzeichen.pdf");
    }

    static void insertWatermark(PdfPageBase page, String watermark) {
        Dimension2D dimension2D = new Dimension();
        dimension2D.setSize(page.getCanvas().getClientSize().getWidth() / 2, page.getCanvas().getClientSize().getHeight() / 3);
        PdfTilingBrush brush = new PdfTilingBrush(dimension2D);
        brush.getGraphics().setTransparency(0.3F);
        brush.getGraphics().save();
        brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 2, (float) brush.getSize().getHeight() / 2);
        brush.getGraphics().rotateTransform(-45);
        PdfCjkStandardFont font = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Mincho_W_3,30);
        brush.getGraphics().drawString(watermark, font, PdfBrushes.getViolet(), 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
        brush.getGraphics().restore();
        brush.getGraphics().setTransparency(1);
        Rectangle2D loRect = new Rectangle2D.Float();
        loRect.setFrame(new Point2D.Float(0, 0), page.getCanvas().getClientSize());
        page.getCanvas().drawRectangle(brush, loRect);
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)