Skip to content

xsx344646090/x-easypdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一个 java 语言简化处理 pdf 的框架

更新说明

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


项目主页

https://x-easypdf.cn


项目概述

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


当前版本

v3.1.1


使用环境

jdk 1.8+


项目特性

fop模块

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

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

以编辑功能为主,对标准的 pdfbox 进行扩展,添加了成吨的功能。

  • 超出页面宽度自动换行,超出页面高度自动分页
  • 内置华为鸿蒙字体,天然支持中文文本
  • 内置页眉页脚,简单快捷
  • 内置多个组件,满足不同的需求
  • 内置多种扩展器,方便解析、提取与处理文档内容
  • 支持自定义组件与扩展

maven坐标

  • 全功能模块(pdfbox + fop)
<dependency>
    <groupId>org.dromara.x-easypdf</groupId>
    <artifactId>x-easypdf</artifactId>
    <version>3.1.1</version>
</dependency>
  • pdfbox模块
<dependency>
    <groupId>org.dromara.x-easypdf</groupId>
    <artifactId>x-easypdf-pdfbox</artifactId>
    <version>3.1.1</version>
</dependency>
  • fop模块
<dependency>
    <groupId>org.dromara.x-easypdf</groupId>
    <artifactId>x-easypdf-fop</artifactId>
    <version>3.1.1</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数据源)
TemplateHandler.Document.build().addPage(TemplateHandler.Page.build().addBodyComponent(TemplateHandler.Text.build().setText("hello world"))).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等技术开发。 让每一位开源爱好者,体会到开源的快乐。

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