ODFDOM for Java:简化文档及其数据的程序控制,第 2 部分
2010-05-05 00:00:00 来源:WEB开发网包层功能
包层提供以下功能:
在包层操作文档,直接访问物理存储。这些操作包括从文档包中获取某个文件输入流、更新、插入或删除文件流以及其他基本操作。
这一层为用于打开、保存或修改 ODF 文档的便利层 API 提供基础,让便利层可以只处理文档层操作,而不需要处理包层活动。
处理 META-INF\manifest.xml 的解析和构造。包层不但读写 XML 流,还要处理 META-INF\manifest.xml 的内容。根据 ODF manifest 模式,这个文件列出 ODF 包中包含的所有文件流。
包层还负责解析和构造 manifest.xml 文件,以及在插入图像或修改其他文件流时更新这个文件。
如果 ODF 文档已经加密或数字签名,那么 manifest.xml 文件是不加密的;它保存每个加密文件流的密钥和摘要。当前 ODFDOM 不支持这个功能。
执行惰性装载。在导入 ODF 文档时,并不需要把包中的所有文件流都装载到内存中。例如,如果只希望在 ODF 文本文档中添加一个句子,就需要修改两个文件流 content.xml 和 META-INF/manifest.xml,所以只需装载这两个文件。
包层读取装载的文件流。如果文件流是 XML 格式的,DOM 层就根据 ODF 规范解析它并在内存中构造 DOM 树。
用户使用便利层 API 修改文档之后,触发保存操作,包层把修改后的内容 DOM 转换为输出流,覆盖原来的 content.xml 并更新 manifest.xml。
可以独立于上面的层单独使用包层,用户可以在流或包级修改 ODF 文档。
清单 1 给出一个简单的包层 API 示例,它把一个图像插入 sample.odt 包。注意,这段示例代码只把图像插入 ODF 包,而没有把图像引用插入文档内容。
清单 1. 把图像插入 ODF 包的代码(包层 API)
更多精彩
赞助商链接