x-easypdf:Java一站式 PDF 解决方案
做过报表的同学都知道,处理PDF文档一直是个让人头疼的问题。要么功能不够全,要么代码写起来太复杂,要么还得花钱买商业授权。今天给大家介绍一款国产开源神器——x-easypdf,几行代码就能搞定各种PDF需求,关键是完全免费!
这是个什么工具?
x-easypdf是国内Dromara开源社区孵化的一个PDF处理框架,用大白话说就是:一个帮你自动生成和操作PDF文档的Java工具包。不管你是要生成报表、做电子发票、填合同还是转格式,它都能搞定。
x-easypdf最贴心的地方是内置了中文字体,不用再为中文乱码烦恼,开箱即用。
两大核心模块,按需选择
x-easypdf有两个主要模块,你可以根据需求选择:
pdfbox模块——组件化操作PDF
这个模块就像搭积木一样,把各种元素(文字、图片、表格)拼成PDF文档。适合需要编程精细控制的场景。
能做什么?
-
• ✅ 创建PDF文档,加文字、图片、表格、条形码 -
• ✅ 给PDF加水印(文字或图片都行) -
• ✅ 自动换行和分页,不用自己算坐标 -
• ✅ 编辑现有PDF,添加或修改内容 -
• ✅ 合并多个PDF、拆分PDF、提取页面 -
• ✅ PDF和Office/Word/Excel/图片互相转换 -
• ✅ 给PDF加数字签名 -
• ✅ 用AI读取PDF内容(支持ChatGPT、文心一言等主流大模型)
fop模块——模板生成PDF
这个模块适合有固定格式的场景,比如发票、合同、报表。你先做好一个模板,然后把数据填进去就能生成PDF。
支持的数据源:
-
• XML数据 -
• Thymeleaf模板 -
• FreeMarker模板 -
• 直接传Java对象
应用举例
场景1:生成带二维码的电子发票
// 创建文档Document document = PdfHandler.getDocumentHandler().create();Page page = new Page(document);// 添加发票信息文字Textarea text = new Textarea(page);text.setText("电子发票");text.render();// 添加二维码Barcode barcode = new Barcode(page);barcode.setContent("发票信息...");barcode.render();// 保存document.appendPage(page);document.save("发票.pdf");
场景2:把Excel报表转成PDF
// 一行代码搞定转换OfficeConverter.convert("报表.xlsx", "报表.pdf");
场景3:给PDF批量加水印
Document document = PdfHandler.getDocumentHandler().load("原文件.pdf");Page page = document.getPage(0);// 添加水印Watermark watermark = new Watermark(page);watermark.setText("机密文件");watermark.render();document.save("带水印.pdf");
场景4:用AI分析PDF合同内容
// 接入AI解析,自动提取合同关键信息AiParser parser = new AiParser();String content = parser.parse("合同.pdf");
快速开始
第一步:加依赖
在项目的pom.xml里加上:
<dependency> <groupId>org.dromara</groupId> <artifactId>x-easypdf</artifactId> <version>最新版本</version></dependency>
第二步:写代码
// 最简单的Hello World示例Document document = PdfHandler.getDocumentHandler().create();Page page = new Page(document);Textarea textarea = new Textarea(page);textarea.setText("Hello World!");textarea.render();document.appendPage(page);document.save("test.pdf");document.close();
搞定!就这几行代码,一个PDF就生成了。
适合哪些人用?
-
• 后端Java开发:需要生成报表、发票、合同等PDF文档 -
• 企业信息化:做OA系统、ERP系统的文档模块 -
• 电商开发者:订单导出、电子发票、物流单据 -
• 金融从业者:对账单、财务报表、协议文件
写在最后
x-easypdf算是目前Java生态里比较完善的国产PDF解决方案了。如果你正在被PDF处理困扰,不妨试试看。项目文档很详细,还有大量示例代码,上手成本不高。
项目信息:
-
• 项目源码:https://gitee.com/dromara/x-easypdf -
• 官方文档:https://x-easypdf.cn/
夜雨聆风