ofd文件拆分合並思路探索 -- 附下載程序


  前言  ofd文件拆分合並會在多個場合用到,但市面上此類工具並不多。拆分和合並雖然為兩個功能,但從編程角度考慮,其處理思路有相同之處。文章就以合並為例,講一下處理思路。作者也寫了一個拆分合並小工具(加入qq群618168615下載),歡迎使用。

程序界面如下:

具有的功能: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群618168615下載程序試用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM