Java利用iText库为PDF每页循环添加中文文字水印,附代码示例!
在Java中,您可以使用iText库来创建和添加PDF文档的文本水印。这是一个非常强大且灵活的库,允许您为PDF文件中的每一页添加水印。以下是一个基本的例子来展示如何使用iText在PDF文件中添加中文文字水印: ```java import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import java.io.FileOutputStream; import java.io.IOException; public class Watermark { public static void main(String[] args) { try { // 创建一个PDF文档 Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("watermarked_pdf.pdf")); document.open(); // 创建一个中文文本水印 Font font = new Font(FontFamily.SIMS_SERIF, 24, Font.BOLD); String watermarkText = "这是中文水印"; watermarkText = watermarkText.replaceAll("[^\\p{C}]+", ""); // 使用正则表达式过滤掉所有非中文字符,以便仅保留中文字符串 Chunk watermarkChunk = new Chunk(watermarkText, font); // 将水印应用于所有页面 for (int i = 1; i <= document.getNumberOfPages(); i++) { PdfContentByte canvas = writer.getDirectContent(); document.setPageSize(document.getPageSizeWithRotation()); BaseColor watermarkColor = new BaseColor(0xFFFFFF); // 设置水印颜色为白色 watermarkChunk.setFillColor(watermarkColor); // 设置水印颜色 watermarkChunk.draw(canvas); // 将水印绘制到页面上 document.newPage(); // 添加新的页面以适应水印,如果需要在同一页上多次添加水印,可以使用循环进行操作 } document.close(); writer.close(); } catch (DocumentException | IOException e) { e.printStackTrace(); } } } ``` 这个代码会在PDF文件的每一页上添加一个中文文字水印。注意,这段代码会创建一个新的PDF文件(如果已经存在同名的文件,它会被覆盖),并保存为"watermarked_pdf.pdf"。您需要根据自己的需求修改文件名和路径。这段代码使用了正则表达式来过滤掉所有非中文字符,以确保仅保留中文文本。如果您需要添加其他语言的文字水印,可能需要修改这段代码以适应不同的需求。 ######[AI写代码神器 | 576点数解答 | 2024-02-22 18:26:14]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)422
- PDF.js 动态导入模块失败:原因剖析与解决方案全揭秘(字节豆包 | 573点数解答 | 2025-07-30 16:04:03)140
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)49
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)324
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1201
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)444
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)360
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)375
- jQuery 实战:打造可添加与删除任务的待办事项列表应用(字节豆包 | 499点数解答 | 2024-10-29 20:40:48)285
- “广”加密会变“歧”?常见加密算法里并无此结果! (阿里通义 | 136点数解答 | 2023-12-18 13:46:31)254
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)488
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)373