在Java中,使用iText庫可以輕松地實現水印效果。以下是一個簡單的示例,展示了如何使用iText 7為PDF文檔添加水印:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.1.16</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-pdf-watermark</artifactId>
<version>7.1.16</version>
</dependency>
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.kernel.pdf.canvas.parser.PdfCanvasProcessor;
import com.itextpdf.kernel.pdf.canvas.parser.listener.IPdfTextLocation;
import com.itextpdf.kernel.pdf.font.PdfFont;
import com.itextpdf.kernel.pdf.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.headerfooter.PdfHeaderFooter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import java.io.*;
public class PdfWatermark {
public static void main(String[] args) throws IOException {
String inputPath = "path/to/input.pdf";
String outputPath = "path/to/output.pdf";
String watermarkText = "Watermark";
addWatermark(inputPath, outputPath, watermarkText);
}
public static void addWatermark(String inputPath, String outputPath, String watermarkText) throws IOException {
// 讀取輸入PDF文件
PdfReader reader = new PdfReader(inputPath);
PdfWriter writer = new PdfWriter(outputPath);
PdfDocument pdfDocument = new PdfDocument(reader, writer);
// 創建水印
PdfFont font = PdfFontFactory.createFont("Arial", true);
PdfTextAnnotation annotation = new PdfTextAnnotation(pdfDocument, new Rectangle(pdfDocument.getDefaultPageSize().getWidth(), pdfDocument.getDefaultPageSize().getHeight()));
annotation.setFont(font);
annotation.setColor(new Color(0.5f, 0.5f, 0.5f));
annotation.setText(watermarkText);
annotation.setOpacity(0.5f);
pdfDocument.getFirstPage().addAnnotation(annotation);
// 關閉PDF文檔
pdfDocument.close();
}
}
在這個示例中,我們首先讀取輸入PDF文件,然后創建一個新的PDF文檔。接著,我們為水印創建一個PdfTextAnnotation
對象,設置其字體、顏色、透明度等屬性。最后,將水印添加到PDF文檔的第一頁,并關閉PDF文檔。
你可以根據需要修改輸入路徑、輸出路徑和水印文本。這個示例將在輸入PDF文檔的第一頁添加一個半透明的水印。如果你想在水印上添加更多自定義選項,可以查閱iText 7官方文檔:https://itextpdf.com/en/products/itext-7/features/Watermarking