itext pdf 水印
时间: 2023-09-12 18:11:20 浏览: 114
itext生成PDF水印
4星 · 用户满意度95%
您好!要在iText PDF中添加水印,您可以使用`PdfStamper`类来实现。以下是一个示例代码片段,演示如何向PDF文档添加文本水印:
```java
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import java.io.FileOutputStream;
import java.io.IOException;
public class PdfWatermarkExample {
public static void main(String[] args) {
try {
// 输入文件路径
String srcFile = "input.pdf";
// 输出文件路径
String destFile = "output.pdf";
// 水印文本
String watermarkText = "Confidential";
PdfReader reader = new PdfReader(srcFile);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(destFile));
int totalPages = reader.getNumberOfPages();
// 设置水印字体样式
BaseFont baseFont = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.WINANSI, BaseFont.EMBEDDED);
Font font = new Font(baseFont, 60, Font.BOLD, null);
// 循环给每一页添加水印
for (int i = 1; i <= totalPages; i++) {
PdfContentByte content = stamper.getOverContent(i);
Phrase watermark = new Phrase(watermarkText, font);
// 设置水印透明度
content.setGState(new PdfGState(0.3f));
// 将水印添加到页面的中心
ColumnText.showTextAligned(content, Element.ALIGN_CENTER, watermark, 297, 420, 45);
}
stamper.close();
reader.close();
System.out.println("Watermark added successfully!");
} catch (IOException | DocumentException e) {
e.printStackTrace();
}
}
}
```
您需要将`input.pdf`替换为要添加水印的PDF文件的路径,并将`output.pdf`替换为生成的带有水印的PDF文件的路径。您还可以根据您的需求自定义水印文本和样式。运行代码后,将在输出文件中看到添加了水印的PDF。
希望这可以帮助到您!如有任何疑问,请随时询问。
阅读全文