• 💂 个人网站: IT知识小屋
  • 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

简介

本项目是一款功能强大PDF文件处理工具,项目基于JAVA实现,旨在为使用者提供一款高效、便捷的PDF创建、编辑解决方案。工具拆分成了FOP和PDFBox两大模块,可以同时满足PDF的创建和编辑需求。无论是合同、报表生成,还是现有PDF的修改、合并、拆分,都能一站式搞定,大幅降低开发者处理PDF的成本。

系统设计简洁易用,只需引入依赖即可开箱即用,不依赖额外的收费组件。开发者既可以通过模板渲染快速生成标准化PDF,也可以像搭积木一样灵活地构建、编辑内容,极大提升了PDF处理的效率与可维护性,是中小型企业集成PDF工具的最优选。


架构

软件架构

质量分析


功能列表

FOP模块

  • 基于模板生成:支持通过XSL-FO 模板生成 PDF文档,结合数据源进行渲染,常用于报表、合同等结构化文档生成场景。

  • 多种数据源支持:内置XML、Thymeleaf、FreeMarker、JTE、Document等数据源,满足不同开发习惯。

  • 面向对象生成:提供基于Document数据源的面向对象API,可以直接用代码灵活构建PDF,减少模板学习成本。

  • 灵活扩展性:模块化设计,支持自定义数据源或渲染逻辑,方便二次开发。

PDFBox模块

  • PDF创建与编辑:在标准PDFBox基础上做了大量扩展,支持从零创建PDF,也能对已有文件进行编辑。

  • 文本与分页处理:文字超出宽度自动换行,超出页面高度自动分页,排版体验更接近Word。

  • 中文支持:内置华为鸿蒙字体,开箱即用,避免中文乱码问题。

  • 页眉页脚:支持快速添加页眉页脚,比如标题、页码或统一说明。

  • 丰富的内置组件:内置文本、图片、条形码、表格、矩形、圆形、线条等常用组件,满足常见排版需求。

  • 水印功能:支持添加文字水印和图片水印,可用于版权声明和安全标识。

  • 文档分析:支持文本、图像、书签、评论、表单的分析,方便内容抽取和二次利用。

  • 文档比较:可以对比文本和图像的差异,适合版本检查或合同校对。

  • 文档提取:可快速提取 PDF 中的文本、图像、书签、评论、表单等元素。

  • 智能解析:集成AI能力,支持智谱、腾讯、阿里、字节、月之暗面、深度求索、昆仑万维、科大讯飞、开源中国等大模型,实现文档的自动化解析与理解。

  • 文档处理:支持文档的合并、拆分、渲染、页面调整,还能处理元数据、打印、替换、书签、评论、附件、线性化、表单、签名等操作。

  • 文件转换:支持Office转PDF、HTML 转 PDF、图片转 PDF,让不同格式文件一键转换。

  • 模板引擎支持:兼容FreeMarker、Thymeleaf、JTE、Beetl、Enjoy、Velocity等多种模板引擎,将HTML模板渲染成PDF。

  • 可扩展性:开放自定义组件机制,开发者可以扩展业务需要的功能,打造个性化PDF方案。


快速上手

1、引入依赖

全功能模块(pdfbox + fop)

<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>x-easypdf</artifactId>
    <version>3.4.4</version>
</dependency>

pdfbox模块操作示例

// 创建文档
Document document = PdfHandler.getDocumentHandler().create();
// 设置使用字体
document.setFontName("微软雅黑");
// 创建页面
Page page = new Page(document);
// 创建文本域
Textarea textarea = new Textarea(page);
// 设置文本
textarea.setText("Hello World!");
// 渲染文本
textarea.render();
// 添加页面
document.appendPage(page);
// 保存文档
document.save("E:\\PDF\\pdfbox\\document\\hello-world.pdf");
// 关闭文档
document.close();

fop模块(使用document数据源)

// 创建文档
Document document = TemplateHandler.Document.build();
// 创建页面
Page page = TemplateHandler.Page.build();
// 创建文本
Text text = TemplateHandler.Text.build().setText("hello world");
// 添加文本
page.addBodyComponent(text);
// 添加页面
document.addPage(page);
// 转换
document.transform("E:\\PDF\\fop\\document\\hello-world.pdf");

开源地址&使用手册

点击下方的【IT学习日记】回复【资源】领取!

如果这篇文章对您有帮助,请一定帮我点个 “关注”“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后

1000+优质开源项目更新进度:203/1000。如需更多类型优质项目推荐,请在文章后留言。

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐