Wasserzeichen mit PDFBox
Posted: 18 Jan 2025, 21:48
Ich versuche, speziell mit PDFBox ein Wasserzeichen zu einer PDF-Datei hinzuzufügen. Ich habe es geschafft, dass das Bild auf jeder Seite angezeigt wird, aber es verliert die Hintergrundtransparenz, weil es so aussieht, als würde PDJpeg es in ein JPG konvertieren. Vielleicht gibt es eine Möglichkeit, dies mit PDXObjectImage zu tun.
Hier ist, was ich bisher geschrieben habe:
Hier ist, was ich bisher geschrieben habe:
Code: Select all
public static void watermarkPDF(PDDocument pdf) throws IOException
{
// Load watermark
BufferedImage buffered = ImageIO.read(new File("C:\\PDF_Test\\watermark.png"));
PDJpeg watermark = new PDJpeg(pdf, buffered);
// Loop through pages in PDF
List pages = pdf.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
while(iter.hasNext())
{
PDPage page = (PDPage)iter.next();
// Add watermark to individual page
PDPageContentStream stream = new PDPageContentStream(pdf, page, true, false);
stream.drawImage(watermark, 100, 0);
stream.close();
}
try
{
pdf.save("C:\\PDF_Test\\watermarktest.pdf");
}
catch (COSVisitorException e)
{
e.printStackTrace();
}
}