我想比较两个 .pptx 文件。比较后,我想打印输出,例如更改了哪张幻灯片?任何人都可以对此有任何想法吗?提前致谢。
问问题
568 次
2 回答
1
您可以将 PPTX 文件重命名为 *.zip 文件,然后提取将包含 xml 和图像文件的内容,以便您可以单独比较这些文件。
这就是 dot net 所能做的一切。
- 将 *.pptx 文件重命名为 *.zip 使用
System.IO.File.Rename()
- 使用任何压缩库将这些 *.zip 文件提取到单独的目录中
- 提取的内容将包含 XML、Image 和其他文件
- 遍历子目录和文件并比较两个 pptx 文件的提取内容。
\_rels\.rels
\docProps
\docProps\app.xml
\docProps\core.xml
\docProps\thumbnail.jpeg
\ppt
\ppt\_rels
\ppt\media
\ppt\notesMasters
\ppt\notesMasters\_rels
\ppt\notesMasters\notesMaster1.xml
\ppt\notesSlides
\ppt\notesSlides\_rels
\ppt\notesSlides\notesSlide1.xml
\ppt\notesSlides\notesSlide2.xml
\ppt\slideLayouts
\ppt\slideLayouts\_rels
\ppt\slideLayouts\slideLayout1.xml
\ppt\slideLayouts\slideLayout2.xml
\ppt\slideMasters
\ppt\slideMasters\_rels
\ppt\slideMasters\slideMaster1.xml
\ppt\slideMasters\slideMaster2.xml
\ppt\slides
\ppt\slides\_rels
\ppt\slides\slide1.xml
\ppt\slides\slide2.xml
\ppt\tags
\ppt\theme
\ppt\presentation.xml
\ppt\presProps.xml
\ppt\tableStyles.xml
\ppt\viewProps.xml
\[Content_Types].xml
于 2020-07-22T07:52:03.963 回答
0
使用Presentation.Export方法将每张幻灯片导出为 PNG,使用此处的答案获取每个图像中的像素值,对它们进行散列(很确定你可以只散列一个通道),将这些散列存储为 2 个列表(每个演示文稿一个),然后运行except查询,你得到了唯一幻灯片的哈希值。如果您将图像名称存储为字典键并将散列存储为值,则可以反向查找散列,然后您只需打印这些图像。
编辑:我将您的问题读作“打印幻灯片”。没关系,图像名称应该足以参考原始幻灯片编号
于 2013-02-21T05:30:16.683 回答