0

我想比较两个 .pptx 文件。比较后,我想打印输出,例如更改了哪张幻灯片?任何人都可以对此有任何想法吗?提前致谢。

4

2 回答 2

1

您可以将 PPTX 文件重命名为 *.zip 文件,然后提取将包含 xml 和图像文件的内容,以便您可以单独比较这些文件。

这就是 dot net 所能做的一切。

  1. 将 *.pptx 文件重命名为 *.zip 使用System.IO.File.Rename()
  2. 使用任何压缩库将这些 *.zip 文件提取到单独的目录中
  3. 提取的内容将包含 XML、Image 和其他文件
  4. 遍历子目录和文件并比较两个 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 回答