Java 怎么操作 PDF?生成、合并、拆分全教程

admin 百科 13
Java操作PDF首选Apache PDFBox,支持生成(含中文字体)、合并(保留格式但不自动合书签)和拆分(按页码提取)三大核心功能,代码简洁可直接运行。

Java 怎么操作 PDF?生成、合并、拆分全教程-第1张图片-佛山资讯网

Java 操作 PDF 主要靠第三方库,最常用、最稳定的是 Apache PDFBox(开源免费、纯 Java、社区活跃),其次是 iText(功能强但 7.x 版本起采用 AGPL 协议,商用需授权)。下面用 PDFBox 为主,讲清生成、合并、拆分三大核心操作,代码简洁可直接运行。

生成 PDF:从空白文档写入文字和表格

PDFBox 不内置高级排版,适合生成结构简单、内容明确的 PDF(如报表、合同、凭证)。关键步骤:创建 PDDocument → 获取 PDPage → 用 PDPageContentStream 写内容。

  • 添加依赖(Maven):org.apache.pdfboxpdfbox2.0.29
  • 基础文字生成示例:

PDDocument doc = new PDDocument();
PDPage page = new PDPage();
doc.addPage(page);
try (PDPageContentStream cs = new PDPageContentStream(doc, page)) {
  cs.beginText();
  cs.setFont(PDType1Font.HELVETICA_BOLD, 14);
  cs.newLineAtOffset(50, 750);
  cs.showText("Hello, PDFBox!");
  cs.endText();
}
doc.save("hello.pdf");
doc.close();

⚠️ 注意:坐标原点在左下角,y 值越大越靠上;中文需加载支持中文字体(如 NotoSansCJKsc-Regular.otf),否则显示方块。

立即学习“Java免费学习笔记(深入)”;

合并多个 PDF:按顺序拼成一个文件

适合生成多页报告、归档扫描件、组合合同附件。PDFBox 提供 PDDocument#copyPages() 和更便捷的 PDFMergerUtility

  • 推荐用 PDFMergerUtility(自动处理字体、资源、书签):

PDFMergerUtility merger = new PDFMergerUtility();
merger.addSource("a.pdf");
merger.addSource("b.pdf");
merger.addSource("c.pdf");
merger.setDestinationFileName("merged.pdf");
merger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());

标签: java apache 编码 ai pdf stream

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~