1 Star 0 Fork 388

awei0916 / x-easypdf

forked from dromara / x-easypdf 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 27.21 KB
一键复制 编辑 原始数据 按行查看 历史
xsx 提交于 2023-07-15 17:15 . 更新版本

一个用搭积木的方式构建pdf的框架(基于pdfbox/fop)

更新说明

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


项目主页

https://x-easypdf.cn


项目概述

x-easypdf是一个基于pdfbox/fop二次封装的框架,目前拥有两大模块:【pdfbox模块】与【fop模块】。【pdfbox模块】主打pdf编辑功能,以组件化的形式进行pdf的构建;【fop模块】主打pdf导出功能,采用数据源的方式对xsl-fo模板进行转换,同时提供java对象的方式构建dom模板文档,即使完全不懂xsl-fo的语法,也能轻松上手写出对应的模板。两个模块均可单独使用,也可以结合使用,帮助开发者快速生成pdf文档。


当前版本

v2.12.2


使用环境

jdk 1.8+


项目特性

  • pdfbox模块
    • 简单智能

    自动换行与分页

    • 表单填写

    内置文档表单填写器(可填写表单中的文本域)

    • 图像转换

    内置文档图像器(可将文档整个转换为图片,或将文档中的某几页转换为图片)

    • 文档提取

    内置文档提取器(可提取文档中的文本与图片)

    • 文档替换

    内置文档替换器(可替换文档中的图片)

    • 文档分析

    内置文档分析器(可分析文档中的文本与图片信息,包含坐标、内容、字体大小等)

    • 文档拆分

    内置文档拆分器(可将文档按照页码拆分成一个或多个文档)

    • 数字签名

    内置文档签名器(可对文档进行数字签名)

    • 内置字体

    内置细体 | 正常 | 粗体三种开源中文字体(华为鸿蒙字体)

    • 组件丰富

    内置水印、页眉、页脚、文本、图片、表格、矩形、圆形、线条、布局、条形码(一维码/二维码)等组件

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

软件架构

软件架构


代码扫描

  • SonarQube

SonarQube

  • Gitee Scan

Gitee Scan


maven坐标

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

安装教程

mvn clean install

快速体验

  • pdfbox模块
XEasyPdfHandler.Document.build(XEasyPdfHandler.Page.build(XEasyPdfHandler.Text.build("Hello World"))).save("E:\pdf\hello-world.pdf").close();
  • fop模块(使用document数据源)
XEasyPdfTemplateHandler.Document.build().addPage(XEasyPdfTemplateHandler.Page.build().addBodyComponent(XEasyPdfTemplateHandler.Text.build().setText("hello world"))).transform("E:\pdf\hello-world.pdf");

更多教程,请查看文档


Dromara 成员项目

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

Java
1
https://gitee.com/awei0916/x-easypdf.git
git@gitee.com:awei0916/x-easypdf.git
awei0916
x-easypdf
x-easypdf
master

搜索帮助