From eea14d48bd38f10642004628f568731359191622 Mon Sep 17 00:00:00 2001 From: cliven Date: Sun, 14 Nov 2021 22:57:22 +0800 Subject: [PATCH] 1.17.0 --- README.md | 7 +- ofdrw-converter/README.md | 2 +- ofdrw-converter/pom.xml | 2 +- ofdrw-core/pom.xml | 2 +- ofdrw-crypto/pom.xml | 2 +- ofdrw-font/pom.xml | 2 +- ofdrw-full/pom.xml | 2 +- ofdrw-gm/pom.xml | 2 +- ofdrw-gv/pom.xml | 2 +- .../src/main/java/org/ofdrw/gv/GlobalVar.java | 2 +- ofdrw-layout/pom.xml | 2 +- ofdrw-pkg/pom.xml | 2 +- ofdrw-reader/pom.xml | 2 +- ofdrw-sign/doc/quickstart/README.md | 2 +- ofdrw-sign/pom.xml | 2 +- ofdrw-tool/README.md | 80 +++++++++++-------- ofdrw-tool/pom.xml | 2 +- pom.xml | 2 +- releasenotes.md | 13 +++ 19 files changed, 81 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 96b77287..14713884 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,10 @@ - [**ofdrw-reader**](./ofdrw-reader) OFD文档解析器,用于OFD的反序列化以及签名签章。 - [**ofdrw-sign**](./ofdrw-sign) OFD文档数字签章。 - [**ofdrw-gm**](./ofdrw-gm) 用于支持签章模块需要的国密电子签章数据结构。 -- [**ofrw-crypto**](./ofdrw-crypto) 用于实现《GM/T 0099-2020 开放版式文档密码应用技术规范》对OFD的密码相关功能。 ***New*** +- [**ofrw-crypto**](./ofdrw-crypto) 用于实现《GM/T 0099-2020 开放版式文档密码应用技术规范》对OFD的密码相关功能。 - [**ofdrw-gv**](./ofdrw-gv) OFDRW 所有模块所共用的全局变量。 - [**ofdrw-converter**](./ofdrw-converter) OFD文档转换PDF、图片、SVG、HTML。 +- [**ofdrw-tool**](./ofdrw-tool) OFD文档操作工具,如文档合并。 ***New*** - [**ofdrw-full**](./ofdrw-full) 上述所有模块整合包,用于简化依赖引入。 ## QuickStart @@ -36,7 +37,7 @@ org.ofdrw ofdrw-full - 1.16.0 + 1.17.0 ``` @@ -81,6 +82,8 @@ public class HelloWorld { - [OFD R&W OFD转换SVG](./ofdrw-converter/README.md) - [OFD R&W OFD转换HTML](./ofdrw-converter/README.md) - [OFD R&W 字形数据解析](./ofdrw-converter/src/main/java/org/ofdrw/converter/font/README.md) +- [OFD R&W 文档合并](./ofdrw-tool/README.md) + OFD阅读器客户端: [数科阅读器 . http://www.suwell.cn/](http://www.suwell.cn/) diff --git a/ofdrw-converter/README.md b/ofdrw-converter/README.md index 5f24f3cd..f7ad4a18 100644 --- a/ofdrw-converter/README.md +++ b/ofdrw-converter/README.md @@ -34,7 +34,7 @@ pom引入相关模块 org.ofdrw ofdrw-converter - 1.16.0 + 1.17.0 ``` diff --git a/ofdrw-converter/pom.xml b/ofdrw-converter/pom.xml index 18bfbd53..26d77823 100644 --- a/ofdrw-converter/pom.xml +++ b/ofdrw-converter/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-core/pom.xml b/ofdrw-core/pom.xml index 5aa6dacf..925b6753 100644 --- a/ofdrw-core/pom.xml +++ b/ofdrw-core/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-crypto/pom.xml b/ofdrw-crypto/pom.xml index bb470cc7..3f03b99b 100644 --- a/ofdrw-crypto/pom.xml +++ b/ofdrw-crypto/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-font/pom.xml b/ofdrw-font/pom.xml index 9fe96d30..931f5283 100644 --- a/ofdrw-font/pom.xml +++ b/ofdrw-font/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-full/pom.xml b/ofdrw-full/pom.xml index 3d2a8e3a..aa92db04 100644 --- a/ofdrw-full/pom.xml +++ b/ofdrw-full/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-gm/pom.xml b/ofdrw-gm/pom.xml index 1de6efdf..dbf60cde 100644 --- a/ofdrw-gm/pom.xml +++ b/ofdrw-gm/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-gv/pom.xml b/ofdrw-gv/pom.xml index 3f6d9d56..8a56af22 100644 --- a/ofdrw-gv/pom.xml +++ b/ofdrw-gv/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 ofdrw-gv diff --git a/ofdrw-gv/src/main/java/org/ofdrw/gv/GlobalVar.java b/ofdrw-gv/src/main/java/org/ofdrw/gv/GlobalVar.java index ee2d8820..bf3a7191 100644 --- a/ofdrw-gv/src/main/java/org/ofdrw/gv/GlobalVar.java +++ b/ofdrw-gv/src/main/java/org/ofdrw/gv/GlobalVar.java @@ -11,5 +11,5 @@ final public class GlobalVar { /** * OFD Reader and Writer 版本号 */ - public static final String Version = "1.16.0"; + public static final String Version = "1.17.0"; } diff --git a/ofdrw-layout/pom.xml b/ofdrw-layout/pom.xml index c58b0204..6731f483 100644 --- a/ofdrw-layout/pom.xml +++ b/ofdrw-layout/pom.xml @@ -6,7 +6,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 ofdrw-layout diff --git a/ofdrw-pkg/pom.xml b/ofdrw-pkg/pom.xml index e5c26bde..6ba8d36f 100644 --- a/ofdrw-pkg/pom.xml +++ b/ofdrw-pkg/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 OFD文件的容器以及用于文档的打包 diff --git a/ofdrw-reader/pom.xml b/ofdrw-reader/pom.xml index 2e7b1606..1c0f7fd1 100644 --- a/ofdrw-reader/pom.xml +++ b/ofdrw-reader/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-sign/doc/quickstart/README.md b/ofdrw-sign/doc/quickstart/README.md index c3ef1754..10011843 100644 --- a/ofdrw-sign/doc/quickstart/README.md +++ b/ofdrw-sign/doc/quickstart/README.md @@ -11,7 +11,7 @@ org.ofdrw ofdrw-sign - 1.16.0 + 1.17.0 ``` diff --git a/ofdrw-sign/pom.xml b/ofdrw-sign/pom.xml index 3147ddd0..1295132c 100644 --- a/ofdrw-sign/pom.xml +++ b/ofdrw-sign/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/ofdrw-tool/README.md b/ofdrw-tool/README.md index f8b30981..c0e25c14 100644 --- a/ofdrw-tool/README.md +++ b/ofdrw-tool/README.md @@ -1,45 +1,59 @@ # OFD Reader & Writer 文档操作工具 -## 文档合并 +## 引入依赖 -1. 创建空文档 -2. 输入待合并文档 -3. 选择页面 - - 资源分析 - - 资源复制 - - 页面复制 - - 页面资源替换 -4. 合并成文件 +```xml + + org.ofdrw + ofdrw-tool + 1.17.0 + +``` -页面涉及资源: - -- 页面模板 -- 绘制参数 (DrawParam) -- 颜色空间 -- 字体 -- 多媒体 -- 矢量图像 - - -- 注释 - -相同资源 - -模板页 +## 多文档合并 + +1. 提供合并文件输出位置。 +2. 提供待合并文件。 +3. 创建合并对象`OFDMerger`。 +4. 添加合并文档和页面(支持添加多个文档)。 +5. 关闭合并对象,生成文档。 + +```java +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class HelloMerge { + public static void main(String[] args) throws IOException { + // 1. 提供合并文件输出位置。 + Path dst = Paths.get("dst.ofd"); + // 2. 提供待合并文件。 + Path d1Path = Paths.get("file1.ofd"); + Path d2Path = Paths.get("file2.ofd"); + // 3. 创建合并对象 + try (OFDMerger ofdMerger = new OFDMerger(dst)) { + // 4. 添加合并文档和页面。 + ofdMerger.add(d1Path); + ofdMerger.add(d2Path); + } + // 5. 关闭合并对象,生成文档 (try() 语法自动关闭) + } +} +``` -- 资源对象 -- 资源文件 +为了更加灵活的合并文档,`OFDMerger#add`方法支持可选参数,指定需要合并的页面页码(从1开始) -相同文件 关联到不同页码 +例如: -每个文档 资源映射表 +- 选取`file1.ofd`的第3、1页作为新文档的第1、2页。 +- 选择`file2.ofd`的第1页作为新文档的第3、4页内容。 -ID -> 资源对象 | 关联文件 (Hash) -> 新文档ID +```java +// Path d1Path = Paths.get("file1.ofd"); +// Path d2Path = Paths.get("file2.ofd"); -查表流程 -``` -原文档ID -> 查表 -> 新ID - -> 对象关联文件 -> 计算文件Hash -> 查文件表 -> 存储 +ofdMerger.add(d1Path, 3, 1); +ofdMerger.add(d2Path, 1, 1); ``` \ No newline at end of file diff --git a/ofdrw-tool/pom.xml b/ofdrw-tool/pom.xml index 69328155..a57eeaf1 100644 --- a/ofdrw-tool/pom.xml +++ b/ofdrw-tool/pom.xml @@ -5,7 +5,7 @@ ofdrw org.ofdrw - 1.16.0 + 1.17.0 4.0.0 diff --git a/pom.xml b/pom.xml index bcb120d0..43745d85 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.ofdrw ofdrw pom - 1.16.0 + 1.17.0 https://github.com/ofdrw/ofdrw Open Fixed layout Document Reader And Writer Libary(OFD-RW) provider developers to generate ofd diff --git a/releasenotes.md b/releasenotes.md index 94875b31..f546735d 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -1,5 +1,18 @@ # 发布记录和特性 +## Version 1.17.0 2021-11-14 22:53:35 + +> Alias: Daxue + +新增: + +- 增加文档操作工具模块[ofdrw-tool](./ofdrw-tool) + - 文档合并功能,见 [测试用用例](./ofdrw-tool/src/test/java/org/ofdrw/tool/merge/OFDMergerTest.java) + +修复: + +- 外部字体复制BUG。 + ## Version 1.16.0 2021-10-15 20:42:17 > Alias: Xiaoxue