Skip to content

xsx344646090/x-easypdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

885 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pdf 一站式解决方案

更新说明

master分支将作为稳定版本发布,develop分支将会不定期进行更新,欢迎大家提供宝贵意见,QQ交流群:15018726


项目主页

https://x-easypdf.cn


项目概述

dromara x-easypdf是一个java语言简化处理pdf的框架,包含fop模块与pdfbox模块,fop模块以创建功能为主,基于xsl-fo模板生成pdf文档,以数据源的方式进行模板渲染;pdfbox模块以编辑功能为主,对标准的pdfbox进行扩展,添加了成吨的功能。


当前版本

v3.5.5


使用环境

jdk 1.8+


项目特性

fop模块

支持创建功能,基于 xsl-fo 模板生成 pdf 文档,以数据源的方式进行模板渲染。

  • 基于模板生成
  • 内置多种数据源(xml 数据源、thymeleaf 数据源、freemarker 数据源、jte 数据源、document 数据源)
  • 提供面向对象的方式生成模板(document 数据源)
  • 灵活的扩展性
pdfbox模块

支持创建与编辑功能,对标准的 pdfbox 进行扩展,添加了成吨的功能。

  • 换行与分页:超出页面宽度自动换行,超出页面高度自动分页
  • 中文支持:内置华为鸿蒙字体,天然支持中文文本
  • 页眉页脚:内置页眉页脚,简单快捷
  • 内置组件:内置多个组件,包含文本、图像、条形码、表格、矩形、圆形、线条
  • 内置水印:支持文本水印与图像水印
  • 文档分析:支持文本分析、图像分析、书签分析、评论分析、表单分析
  • 文档比较:支持文本比较与图像比较
  • 文档提取:支持文本提取、图像提取、书签提取、评论提取、表单提取
  • 文档解析:支持 AI 解析文档内容,适配智谱(glm)、腾讯(hunyuan)、阿里(qwen)、字节跳动(doubao)、月之暗面(kimi)、深度求索(deepseek)、昆仑万维(tiangong)、科大讯飞(spark)、开源中国(gitee)等大模型
  • 文档处理:支持合并处理、拆分处理、渲染处理、页面处理、元数据处理、打印处理、替换处理、书签处理、评论处理、附件处理、线性化处理、表单处理、签名处理
  • 文件转换:支持 office 文件转 pdf 、 html 转 pdf 、图像转 pdf
  • 模板引擎:支持 html 模板渲染为 pdf , 适配 freemarker 、thymeleaf 、jte 、 beetl 、 enjoy 、 velocity 等模板引擎
  • 支持自定义组件与扩展

maven坐标

  • 全功能模块(pdfbox + fop)
<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>x-easypdf</artifactId>
    <version>3.5.5</version>
</dependency>
  • pdfbox模块
<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>x-easypdf-pdfbox</artifactId>
    <version>3.5.5</version>
</dependency>
  • fop模块
<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>x-easypdf-fop</artifactId>
    <version>3.5.5</version>
</dependency>

安装教程

mvn clean install

快速体验

  • 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");

更多教程,请查看文档


Dromara 成员项目

一个轻量级的分布式日志标记追踪神器,10分钟即可接入,自动对日志打标签完成微服务的链路追踪 轻量,快速,稳定,可编排的组件式流程引擎 小而全的Java工具类库,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 一个轻量级 java 权限认证框架,让鉴权变得简单、优雅! 高性能一站式分布式事务解决方案。 强一致性分布式事务解决方案。 可靠消息分布式事务解决方案。 一站式问题定位平台,以agent的方式无侵入接入应用,完整集成arthas功能模块,致力于应用级监控,帮助开发人员快速定位问题 业界领先的身份管理和认证产品 Forest能够帮助您使用更简单的方式编写Java的HTTP客户端 一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件 面向 REST API 的高性能认证鉴权框架 傻瓜级ElasticSearch搜索引擎ORM框架 Northstar盈富量化交易平台 Idea 版 Postman,为简化调试API而生 开源分布式云原生架构一站式解决方案 企业生产级百亿日PV高可用可拓展的RPC框架。 配置极简功能强大的异步任务动态编排框架 基于配置中心的轻量级动态可监控线程池 一个用搭积木的方式构建pdf的框架(基于pdfbox) 一个专门用于图片合成的工具,没有很复杂的功能,简单实用,却不失强大 Dante-Cloud 是一款企业级微服务架构和服务能力开发平台。 低代码数据可视化开发平台 微服务中后台快速开发平台,支持租户(SaaS)模式、非租户模式 RedisFront 是一款开源免费的跨平台 Redis 桌面客户端工具, 支持单机模式, 集群模式, 哨兵模式以及 SSH 隧道连接, 可轻松管理Redis缓存数据. 一个入门简单、跨平台、企业级桌面软件开发框架 简称ocp是基于Spring Cloud的企业级微服务框架(用户权限管理,配置中心管理,应用管理,....) Easy-Trans 一个注解搞定数据翻译,减少30%SQL代码量 一款基于 Netty 的、开源的内网穿透神器。 一个支持在 JetBrains 系列 IDE 上运行的 ChatGPT 的插件。 zyplayer-doc是一款适合团队和个人使用的WIKI文档管理工具,同时还包含数据库文档、Api接口文档。 最全最好用的微信支付V3 Spring Boot 组件。 J2eeFAST 是一个致力于中小企业 Java EE 企业级快速开发平台,我们永久开源! 数据库比对工具:hive 表数据比对,mysql、Doris 数据比对,实现自动化配置进行数据比对,避免频繁写sql 进行处理,低代码(Low-Code) 平台 giteye.net 是专为开源作者设计的数据图表服务工具类站点,提供了包括 Star 趋势图、贡献者列表、Gitee指数等数据图表服务。 后台管理系统 重写 RuoYi-Vue 所有功能 集成 Sa-Token + Mybatis-Plus + Jackson + Xxl-Job + SpringDoc + Hutool + OSS 定期同步 微服务管理系统 重写RuoYi-Cloud所有功能 整合 SpringCloudAlibaba Dubbo3.0 Sa-Token Mybatis-Plus MQ OSS ES Xxl-Job Docker 全方位升级 定期同步 允许完全摆脱 Mapper 的 mybatis-plus 体验!封装 stream 和 lambda 操作进行数据返回处理。 短信聚合工具,让发送短信变的更简单。 简化kubernetes上大数据集群的运维管理 Hodor是一个专注于任务编排和高可用性的分布式任务调度系统。 流程编排,插件驱动,测试无限可能 Disjob是一个分布式的任务调度框架 轻量级 Mysql Binlog 客户端, 提供宕机续读, 高可用集群等特性 基于 Canvas 的开源版 创客贴 支持导出json,svg, image文件。 在 SpringBoot 中通过简单的方式将文件存储到 本地、阿里云 OSS、腾讯云 COS、七牛云 Kodo等 开源、高性能、安全、功能强大的物联网调试和管理解决方案。 web 版 linux(终端[终端回放] 文件 脚本 进程 计划任务)、数据库(mysql postgres)、redis(单机 哨兵 集群)、mongo 统一管理操作平台 Akali(阿卡丽),轻量级本地化热点检测/降级框架,10秒钟即可接入使用!大流量下的神器 异构数据库迁移同步(搬家)工具。 Java 傻瓜式 AI 框架。 mybatis-plus 框架的增强拓展包。 免费开源的支付网关。 基于easyAi引擎的JAVA高性能,低成本,轻量级智能客服。 扩展MyBatis JPA支持,简化CUID操作,增强SELECT分页查询 现代化的动画引擎 国产自研工作流,其特点简洁(只有6张表)但又不简单,五脏俱全,组件独立,可扩展,可满足中小项目的组件。 DyJava是一款功能强大的抖音Java开发工具包 MilvusPlus(简称 MP)是一个 Milvus 的操作工具,旨在简化与 Milvus 向量数据库的交互,为开发者提供类似 MyBatis-Plus 注解和方法调用风格的直观 API,提高效率而生。 java下唯一一款同时支持强类型对象关系查询和强类型SQL语法查询的ORM,拥有对象模型筛选、隐式子查询、隐式join、显式子查询、显式join,支持Java/Kotlin 一款高颜值、现代化的智能运维&轻量堡垒机平台。 Java开源网站内容管理系统(java cms)。使用SpringBoot、MyBatis、Vue3、ElementPlus、Vite、TypeScript等技术开发。 让每一位开源爱好者,体会到开源的快乐。

为往圣继绝学,一个人或许能走的更快,但一群人会走的更远。

About

a framework based on pdfbox/fop

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors