xml - 以下过程出错 : unzip . pptx -> 修改内容 -> rezip to .pptx

标签 xml powerpoint openxml

我正在尝试解压缩 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 时,我收到以下错误消息:

There was an error accessing Macintosh 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/

相关文章:

ms-word - OPEN XML 将自定义不可见数据添加到段落/表格

c# - 使用 Open XML 插入工作表 - "...unreadable content..."

c# - 如何在 XmlTextWriter 中设置 Settings 属性,以便我可以将每个 XML 属性写在自己的行中?

javascript - 使用 jQuery 调用 API 的 CORS 问题

java - 如何使用属性文件在 log4j.xml 中设置值?

apache-poi - 在 POI 模式中找不到 CTBarChart

.net - 使用 open xml sdk 代码,如何调整表格(在 ms word 文档中)以适应页边距?

java - 向 JAXB 生成的 POJO 添加解码方法

c# - 多 DPI 系统上的 VSTO 自定义任务 Pane 显示两次内容

java - 3.13 版中缺少 Apache POI hslf?