如何使用 Java 为 PDF 中的图像添加水印

问题描述

如何使用 Java 为 PDF 中的图像添加水印。

解决方案

以下是使用 Java 为 PDF 中的图像添加水印的程序。

import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.color.DeviceGray; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject; 

import com.itextpdf.layout.Canvas; 
import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image; 
import com.itextpdf.layout.property.TextAlignment;  

public class AddingToImagesInPDF { 
   public static void main(String args[]) throws Exception { 
      String file = "C:/EXAMPLES/itextExamples/addingImageToPDF.pdf"; 

        //创建 PdfDocument 对象
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
        
        //创建 Document 对象
        Document doc = new Document(pdfDoc);
        
        //创建图像
        Image image = new Image(ImageDataFactory.create(
        "C:/EXAMPLES/itextExamples/logo.jpg"));
        image.scaleToFit(400, 700);
        
        //创建模板
        PdfFormXObject template = new PdfFormXObject(new Rectangle(
        image.getImageScaledWidth(), image.getImageScaledHeight()));
        
        Canvas canvas = new Canvas(template, pdfDoc).add(image);
        String watermark = "Welcome to Tutorialspoint"; 
        canvas.setFontColor(DeviceGray.LIGHT_GRAY)
        .showTextAligned(watermark, 100, 360, TextAlignment.CENTER);
        
        //将模板添加到文档
        Image image1 = new Image(template);
        doc.add(image1);
        
        //关闭文档
      	doc.close();  
     	 System.out.println("Watermark added successfully..");  
   }  
}

输入

OpenCV 复制输入

输出

水印
java_itext.html