为什么用java将新图像添加到docx会导致损坏?

时间:2017-06-22 17:23:21

标签: java xml image relationship docx

这是一个奇怪的问题,我不希望得到一个好的答案,但我想我还是会尝试。

我开发了一个解析器,用于将DOCX文件的内容解析为HTML,另一个解析器将内容解析为docx格式。我知道那里有库,但为了防止丢失大量数据,我开发了自己的库,因此docx中所需的信息不会丢失。

长话短说,当用户将图像添加到html时,我遇到了腐败问题。

我注意到,当document.xml中的标记从上到下读取时,会为document.xml.rels文件生成关系ID。所以我已经这样做了,当添加一个图像时,它会在其解析时更改其余标记的关系ID并创建document.xml。同样,我正在重新创建document.xml.rels文件,因此关系的rIds对应于document.xml中的rIds。

保存后我打开它,它给我的信息是腐败。当我点击详细信息时,它告诉我“文件已损坏,无法打开”。然后它继续告诉我以下内容:

image

我单击是,文档看起来完全正常,没有丢失信息。当我保存该文档并查看损坏的docx和固定docx的document.xml和document.xml.rels文件时,我找不到任何差异。我将使用文件比较工具查看文件结构中的每个文件,但看不出任何差异。

这让我觉得这可能是我拉开内容的方式,但我不确定。

Here's一段视频,展示了我为什么感到困惑。我抓取一个损坏的文件,提取内容,然后重新压缩内容,发现所有损坏都消失了。说明中有一个视频,显示了文件的创建方式。

感谢任何帮助。

0 个答案:

没有答案