乐于分享
好东西不私藏

x-easypdf:Java一站式 PDF 解决方案

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/