Java操作PDF文件实战指南:iText库从入门到精通

在现代企业应用中 ,操作PDF文件的入门裸露与筹备是常见需求 ,例如报表导出、到精合同裸露等场景。操作Java生态中 ,入门iText库是到精操作PDF的标杆工具,拥穿着从零创建PDF 、操作编辑现有文件 、入门增补繁杂元素等功能 。到精本文将带你系统学习iText的操作核心用法,全程代码实战 。入门

1. iText库简介与环境配置

iText是到精一个开源的Java/PDF库,拥穿着PDF 1.7标准(ISO 32000),操作提供对文本 、入门表格 、到精图像 、签名的精细控制。

Maven依赖配置

:

xml com.itextpdfitextpdf5.5.132. 基础PDF裸露

以下代码创建一个包含标题和段落的PDF文件 :

import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileOutputStream; public class BasicPdf { public static void main(String[] args) { Document document = new Document(); try { PdfWriter.getInstance(document, new FileOutputStream("basic.pdf")); document.open(); document.add(new Paragraph("Hello PDF with iText!")); document.add(new Paragraph("This is a sample paragraph.")); document.close(); } catch (Exception e) { e.printStackTrace(); } } } 3. 增补表格与样式控制

iText拥穿着通过PdfPTable类创建表格 ,并设置字体 、颜色等样式:

import com.itextpdf.text.Font; import com.itextpdf.text.pdf.PdfPTable; // 创建表格 PdfPTable table = new PdfPTable(3); table.addCell("Name"); table.addCell("Age"); table.addCell("Role"); // 设置字体 Font boldFont = new Font(Font.FontFamily.HELVETICA, 12, Font.BOLD); Paragraph header = new Paragraph("Employee List", boldFont); document.add(header); document.add(table); 4. 插入图片与水印

通过Image类增补图片,结合PdfContentByte实现水印效果:

import com.itextpdf.text.Image; import com.itextpdf.text.pdf.PdfContentByte; // 插入图片 Image logo = Image.getInstance("logo.png"); logo.scaleToFit(100, 100); document.add(logo); // 增补水印 PdfContentByte canvas = writer.getDirectContentUnder(); canvas.beginText(); canvas.setFontAndSize(baseFont, 40); canvas.showTextAligned(PdfContentByte.ALIGN_CENTER, "CONFIDENTIAL", 300, 400, 45); canvas.endText(); 5. 读取与编辑现有PDF

使用PdfReader和PdfStamper修改已有PDF :

PdfReader reader = new PdfReader("input.pdf"); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("output.pdf")); // 在第二页增补文本 ColumnText ct = new ColumnText(stamper.getOverContent(2)); ct.setSimpleColumn(50, 50, 500, 700); ct.addText(new Phrase("Modified by iText")); ct.go(); stamper.close(); reader.close(); 6. 高级功能 :加密与签名

通过PdfEncryptor设置文件密码 ,或使用PdfSignatureAppearance实现数字签名:

// 加密PDF PdfEncryptor.encrypt(reader, new FileOutputStream("encrypted.pdf"), "userpass".getBytes(), "ownerpass".getBytes(), PdfWriter.ALLOW_PRINTING, PdfWriter.STRENGTH128BITS); // 数字签名(需密钥库) PdfSignatureAppearance sap = stamper.getSignatureAppearance(); sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED); 7. 性能优化与常见尴尬 内存管理:筹备大文件时使用PdfReader的partialRead模式。 中文拥穿着 :引入itext-asian包 ,设置中文字体: BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false); Font chineseFont = new Font(bf, 12); 结语 ↓点击下方了解更多↓

🔥《微信域名检测接口 、微信域名防封跳转 、晋升网站流量排名、微信加粉统计系统、超值服务器与挂机宝 、个人免签码支付》

渝ICP备2025076537号-22