ofd文件拆分合并思路探索 -- 附下载程序
前言 ofd文件拆分合并会在多个场合用到,但市面上此类工具并不多。拆分和合并虽然为两个功能,但从编程角度考虑,其处理思路有相同之处。文章就以合并为例,讲一下处理思路。作者也写了一个拆分合并小工具(加入qq群565438497 下载),欢迎使用。
程序界面如下:
具有的功能:ofd合并、ofd合并为pdf、ofd批量转pdf。

ofd合并就是将多个ofd合并到一个文件,方便阅读和归档。文档合并只考虑显示部分,非显示部分不考虑;如:大纲、元数据、附件;在合并后,就会丢失。ofd文件合并需要考虑的因素有:页,模板、签章、批注等,这些都会影响显示的内容。下面根据这几项逐步分析处理步骤。
1 ofd页处理
页中包含的id和资源均要做处理。需要处理的项如下:
- ID:ofd中的id是不允许重复的,所有的id均要重新赋值。
- Font: 指向的是字体名称
- ColorsSpace:颜色空间。
对所有表示id引用的值都要做替换,两个不同的文件可能会用到相同的id,但是其代表的含义是不同的,必须重新赋值,

2 模板处理
Page页中会有引用模板描述。

Document列出所有的模板列表

首先要对TemplateID重新编码,将模板文件信息写入新的Document中。
3 签章
SignedValue.dat值也要存入新的ofd文件中,在Seal.esl文件缺失的情况下,可以从此文件中读取印章图片。
Seal.esl为印章图片,需要写入新的ofd文件中。
StampAnnot:确定了印章在某页的位置。 PageRef需要重新赋值。

4 批注
在 Annotations文件中,PageID和FileLoc需要重新赋值。

Annotation文件内容与page内容有点类似。id需要重新赋值。

后记:ofd文件的拆分合并需要将所有的id重新编号,引用此编号的部分也要做相应调整。若完美的实现拆分合并,还是有很多逻辑需要处理。本人已初步编码实现了此功能,可以加QQ群565438497 下载程序试用。
ofd文件拆分合并思路探索 -- 附下载程序的更多相关文章
- c#实现ofd文件转图片功能 (附执行程序)
前言 ofd文件的作用就是保证信息能如实的存储.传递.显示.保证ofd文件的真实性靠的是签名:ofd 的显示需要专用软件.ofd标准是新的国家标准,应用范围远不如pdf:现有浏览器不能解析ofd.支持 ...
- php实现在线下载程序安装包功能
在线下载程序安装包可以很方便在服务器端下载各种程序安装包(Discuz!.phpwind.Dedecms.WordPress....等一些常用程序)并存储在服务器,大大减少站长上传程序安装包时间.默认 ...
- Microsemi Libero使用技巧——使用命令行模式下载程序
前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...
- Microsemi Libero使用技巧——使用FlashPro单独下载程序
前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...
- 大文件拆分问题的java实践(附源码)
引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借 ...
- 大文件拆分方案的java实践(附源码)
引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借 ...
- 一次下载多个文件的解决思路-JS
一次下载多个文件的解决思路(iframe) - Eric 真实经历 最近开发项目需要做文件下载,想想挺简单的,之前也做过,后台提供下载接口,前端使用window.location.href就行了呗.不 ...
- 用bcftools将多个vcf文件合并成一个vcf文件 或将多个vcf和合并成的vcf文件拆分成单个样本的vcf文件
1. 软件的安装 a. bcftools 的安装 b. bgzip的安装: https://blog.csdn.net/weixin_30471065/article/details/95108525 ...
- python 小程序大文件的拆分合并
1. 将大文件拆分为小文件 I 通过二进制的方式将大文件读取出来,将其拆分存,以不同的文件方式存放在一个目录下面 II 提供两种操作方式交互式和命令行模式 #! usr/bin/python # -* ...
- 网络加速手段之一,JS文件资源合并下载
有过ftp下载文件经验的人都有体验,单独下载一个100M的文件比分开下载100个1M的文件速度快很多,这是因为下载需要解析域名,建立连接等额外开销的时间,因此下载100个文件就要做100次这种额外的开 ...
随机推荐
- 轻量级网络-ShuffleNetv2 论文解读
摘要 1.介绍 2.高效网络设计的实用指导思想 G1-同样大小的通道数可以最小化 MAC G2-分组数太多的卷积会增加 MAC G3-网络碎片化会降低并行度 G4-逐元素的操作不可忽视 3.Shuff ...
- JS转义html编码
两个方法: 1.利用用浏览器内部转换器实现html转义: 2.用正则表达式实现html转义: var HtmlUtil = { /*1.用浏览器内部转换器实现html编码(转义)*/ htmlEnco ...
- 使用MySQL Workbench进行数据库备份
1.打开MySQL Workbench 2.进行数据库连接配置 如果之前连过,会有历史记录,直接点击需要备份的连接即可 3.进入主界面后,选择左侧的Administration选项卡,然后点击Data ...
- Xor-FWT 的另一种理解方式
Xor-FWT 的另一种理解方式 学习 \(\text{Fennec's Algorithm}\) 的额外收获,顺手记录一下. 假设我们要求两个长度为 \(n\) 的数组的异或卷积,为方便起见令 \( ...
- Flink Catalog
概念 Catalog 提供了元数据信息,例如数据库.表.分区.视图以及数据库或其他外部系统中存储的函数和信息. 数据处理最关键的方面之一是管理元数据. 元数据可以是临时的,例如临时表.或者通过 Tab ...
- 使用Microsoft.Extensions.AI简化.NET中的AI集成
项目介绍 Microsoft.Extensions.AI是一个创新的 .NET 库,它为平台开发人员提供了一个内聚的 C# 抽象层,简化了与大型语言模型 (LLMs) 和嵌入等 AI 服务的交互.它支 ...
- Sublime装sftp远程编辑插件
我平时很喜欢用Sublime来编辑一些脚本软件,本次需要远程编辑Linux上的脚本,需要安装一些插件来完成. Ctrl+Shift+P呼叫出命令行面板后输入 install选择 Install Pac ...
- jenkins拉取github代码报错问题解决
问题起因: 踩坑踩坑 用jenkins拉取github项目的代码时,配置完成点击构建时,报错信息为:Couldn't find any revision to build. Verify the re ...
- 如何制作一个HTML页面的锁屏功能
如果后台一些界面比较敏感,希望主动或者被动的在人员不想暴露信息的情况下加一把锁,就是说避免信息一直在页面上暴露,可以使用"阅后即焚"这种思路,这种思路比较简单,显示了就过几秒删除, ...
- 解读Graph+AI白皮书:LLM浪潮下,Graph尚有何为?
历时半年,由蚂蚁集团和之江实验室牵头,联合北京邮电大学.浙江大学.西湖大学.东北大学.杭州悦数科技.浙江创邻科技.北京大学.北京交通大学.复旦大学.北京海致星图科技.腾讯.信雅达科技.北京枫清科技等单 ...