電子紙閱讀器的PPT格式引擎設計和優化
摘要:根據目前主流電子紙閱讀器硬件資源有限、要求功耗小、灰階顯示等特點,提出了一種PPT格式文檔解析方案。聚焦于滿足人們對于移動閱讀的基本需求,選取了文字、圖形、圖像作為基本解析對象,設計并實現了一個適合電子紙閱讀器的PPT格式引擎,并進行了多重優化以提升性能體驗,在低端的硬件配置和有限的運行時間內完成格式解析。
關鍵詞:電子紙閱讀器;格式解析;移動閱讀;格式引擎
引言
PPT(Microsoft Office PowerPoint),是微軟公司開發的編輯演示文稿的辦公軟件。該格式相對于txt、chm等,信息量更大,結構也更加復雜,導致其對硬件配置要求較高。然而,目前嵌入式終端配置低,因此本文聚焦于滿足人們對于移動閱讀的基本需求,暫不考慮視頻、音頻和外部對象等特性支持。本解析器在開源環境下,基于Linux操作系統實現。基于嵌入式多格式解析引擎系統架構和中間格式理論,具有平臺無關性、高效性的特點。
1 系統特點
該解析引擎兼容版本多,包括Microsoft PowerPoint97-2003等版本。下面介紹一下系統特點。
①不依賴于圖形服務器。解析引擎擁有自己的專用的矢量圖形繪制器。不依賴于特定的底層圖形服務器。例如,我們的實驗系統的圖形服務器由nanoX改為Qt時,該解析引擎不需要修改。
②高效性。對于一般的格式解析器,樣本文件越大,打開速度越慢,而該解析器可以做到文件打開速度與文件大小基本無關。
③平臺無關性。解析引擎并不是直接在顯示設備上繪制圖形和文字,而是把各種格式元素繪制在一段內存區域上,然后把這段內存數據映射到物理設備上。即輸入是文件,輸出是屏幕大小的位圖。
④配置靈活。解析引擎的模塊化設計便于移植和裁剪。所有數據類型采用宏定義,便于根據平臺配置。
⑤支持手寫批注。解析器只做內容抽取和顯示,不支持編輯和保存,支持手寫批注。手寫批注不改變原文檔,而是新建xml描述文件。
⑥個性化交互方式。利用電子紙控制器的16通道和黑白刷,實現動畫切換效果。
2 格式分析
2.1 總體結構
Microsoft PowerPoint使用OLE2組合文檔存儲。和文件系統結構類似,它包含容器和流,并組成的樹狀結構。各種流獨立存儲,便于載入和快速保存。如表1所列,PPT文件包括以下5種流式數據。
PPT存儲格式采用十六進制,small endian字節序,分為若干個大數據塊和小數據塊,大小分別為512字節和64字節,第一個數據塊為初始數據塊,存儲了數據塊索引表。
2.2 圖像流結構
PPT中包含矩形、圖片框、文本框、線、橢圓等204種形式的元素,統稱為Shape。每種Shape有一個唯一的實例碼與之相應。
多媒體數據的層次結構如圖1所示。
Drawing Group為組合圖形存儲結構,它包含了一組圖形對象。Drawing為圖形存儲結構,Shape和Solver為兩組圖形屬性元數據。Blip Store為插入的圖片對象。Property Table為缺省屬性表。Client Data為一組元數據信息,包含坐標,文本和OLE數據和用戶自定義屬性表。
屬性項采用id-value結構,自定義屬性表的長度可變。各項屬性相對位置不變。自定義屬性表中出現的屬性將覆蓋默認屬性。
Drawing為一組描述來管理容器中的圖形對象的規則集合,包括對齊方式、標尺等。
評論