我正在尝试解压缩 Microsoft Office 文件(.docx 和 .pptx),修改一些内容,然后重新压缩为新的 .docx 或 .pptx 文件。

我使用 .docx 文件成功地做到了这一点:

1) $ unzip .../test.docx
2)修改document.xml文件中的部分内容

3) $ zip -r rezipped.docx *
使用上述过程,我可以在 Microsoft Word 中成功打开新文档 (rezipped.docx) 并查看更改后的内容。

然后我为 .pptx 尝试了相同的过程,但没有成功。

1) $ unzip .../test.pptx
2)修改slide1.xml文件中的部分内容
例如,简单的文本更改:<a:t>Hello World</a:t><a:t>Hi World</a:t>
3) $ zip -r rezipped.pptx *
当我尝试在 Microsoft PowerPoint 2008 for Mac 版本 12.0 中打开 rezipped.pptx 时,我收到以下错误消息:



但是,我可以在 Keynote 中打开文件而不会出现任何问题。

我尝试了相同的实验,但我只修改了 docProps 文件夹(即 app.xml 或 core.xml)中的一个文件,并且能够重新压缩它并在 Microsoft PowerPoint 中毫无问题地打开它。因此,只有在我编辑 ppt 文件夹中的文件时才会遇到此问题。

当我编辑 slide1.xml 的内容然后重新压缩文件时,是什么导致了这种损坏? .pptx 结构中是否有另一个文件正在跟踪内容/修改?

我还尝试在更改文件后重置文件的修改日期以查看是否有任何影响,但没有:touch -m -t 198001010000 slide1.xml

最佳答案

尝试使用 7zip 重新压缩它。确保不包含任何其他目录。在 slide1.xml 中编辑 Textcontent 后,我​​能够重新压缩我解压缩的 PPTX 文件

关于xml - : unzip . pptx -> 修改内容 -> rezip to .pptx 过程出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23706469/

10-10 03:52