【问题标题】:how to compare two pptx file using .net?如何使用.net比较两个pptx文件?
【发布时间】:2020-07-22 15:59:42
【问题描述】:

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

【问题讨论】:

    标签: c# .net compare powerpoint


    【解决方案1】:

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

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

    1. 使用System.IO.File.Rename() 将 *.pptx 文件重命名为 *.zip
    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

    【讨论】:

      【解决方案2】:

      使用Presentation.Export 方法将每张幻灯片导出为PNG,使用答案herehash 获取每张图片中的像素值(很确定您可以只散列一个通道),将这些散列存储为2 个列表(每个演示文稿一个),然后运行Except 查询,你就得到了独特幻灯片的哈希值。如果您将图像名称存储为字典键并将散列存储为值,则可以反向查找散列,然后您只需打印这些图像。

      编辑:我将您的问题读作“打印幻灯片”。没关系,图片名称应该足以引用原始幻灯片编号

      【讨论】:

        猜你喜欢
        • 2014-03-30
        • 1970-01-01
        • 2010-11-24
        • 2017-01-23
        • 2012-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多