Водяной знак – это текст или изображение, которое появляется либо перед существующим содержимым документа, либо за ним. Например, вы можете применить “Конфиденциальный” водяной знак к страницам с конфиденциальной информацией или применить водяной знак изображения, такой как логотип вашей компании, к страницам, связанным с вашей компанией. Эта статья покажет вам, как добавить текстовый водяной знак и водяной знак изображения в существующий PDF-файл на Java с помощью Free Spire.PDF для Java библиотека.
Установка
Перед кодированием, пожалуйста, скачайте бесплатный Spire.PDF для пакета Java через по этой ссылке распакуйте пакет и затем добавьте Spire.Pdf.jar в папке lib в вашем приложении в качестве зависимости.
Используя код
Добавить Текстовый Водяной знак
import com.spire.pdf.*; import com.spire.pdf.graphics.*; import java.awt.*; import java.awt.geom.*; public class TextWatermark { public static void main(String[] args){ //load a PDF file PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("Sample.pdf"); //get the first page PdfPageBase page = pdf.getPages().get(0); Dimension2D dimension2D = new Dimension(); dimension2D.setSize(page.getCanvas().getClientSize().getWidth() / 2, page.getCanvas().getClientSize().getHeight() / 3); //watermark text 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); brush.getGraphics().drawString("Confidential", new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,30),true), PdfBrushes.getRed(), 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()); //draw watermark text to the page page.getCanvas().drawRectangle(brush, loRect); //save the resultant file pdf.saveToFile("TextWatermark.pdf"); //close pdf.close(); } }
На следующем скриншоте показан результат добавления текстового водяного знака в PDF-файл.
Добавить Водяной знак Изображения
import com.spire.pdf.*; import java.awt.geom.*; public class ImageWatermark { public static void main(String[] args){ //load a PDF file PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("Sample.pdf"); //get the first page PdfPageBase page = pdf.getPages().get(0); //set background image page.setBackgroundImage("watermark.png"); Rectangle2D rect = new Rectangle2D.Float(); rect.setFrame(page.getClientSize().getWidth() / 2 - 100, page.getClientSize().getHeight() / 2 - 200, 200, 300); //set background region page.setBackgroundRegion(rect); //save the resultant file pdf.saveToFile("ImageWatermark.pdf"); //close pdf.close(); } }
На следующем скриншоте показан результат добавления водяного знака изображения в PDF-файл.
Оригинал: “https://dev.to/eiceblue/add-text-watermark-and-image-watermark-to-pdf-in-java-25pe”