在Java中,PdfStamper
是一個來自于 iText 庫的類,用于處理PDF文檔
以下是一個簡單的示例,說明如何使用 PdfStamper
添加水印到現有的PDF文檔:
import com.itextpdf.text.DocumentException;
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 AddWatermark {
public static void main(String[] args) {
try {
// 創建一個 PdfReader 對象,用于讀取原始 PDF 文件
PdfReader reader = new PdfReader("input.pdf");
// 創建一個 FileOutputStream 對象,用于將修改后的 PDF 寫入輸出文件
FileOutputStream outputStream = new FileOutputStream("output.pdf");
// 創建一個 PdfStamper 對象,用于處理 PDF 文檔
PdfStamper stamper = new PdfStamper(reader, outputStream);
// 獲取 PDF 文檔的總頁數
int totalPages = reader.getNumberOfPages();
// 遍歷每一頁,添加水印
for (int pageNum = 1; pageNum <= totalPages; pageNum++) {
// 獲取當前頁的內容
PdfContentByte content = stamper.getOverContent(pageNum);
// 在這里添加水印,例如使用 beginText(), setFontAndSize(), showTextAligned() 等方法
// ...
}
// 關閉 PdfStamper 對象,完成操作
stamper.close();
} catch (IOException | DocumentException e) {
e.printStackTrace();
}
}
}
請注意,這只是一個簡單的示例。要實際添加水印,您需要使用 PdfContentByte
類的方法(如 beginText()
, setFontAndSize()
, showTextAligned()
等)來繪制文本或圖像。同時,您可能還需要處理其他功能,如調整頁面大小、添加表單字段等。更多關于 iText 庫的信息和示例,請參閱官方文檔:https://itextpdf.com/en/resources/examples