在 git 中配置 PowerPoint 比较和合并

Configure PowerPoint Compare & Merge in git

PowerPoint 具有比较 UI 中的 2 个 PowerPoint 文件的功能。它位于 Review 功能区,然后是 Compare

我想配置 git 以便能够从命令行比较和合并 2 个 PowerPoint 文件,弹出打开 PowerPoint,解决更改并保存。

但不幸的是,我似乎无法找到一种无需多次点击即可在比较模式下打开 PowerPoint 的方法。有谁知道调用 powerpnt.exe 以这种神奇模式打开的正确方法吗?

经过充分研究,结论是,虽然 PowerPoint 确实支持合并模式,但无法使用 command-line 参数在该模式下打开它。

但是 API 合并文档在 COM 对象模型中可用,因此也可从 .NET 通过主要互操作程序集使用。

我最终写了一个小的 open-source 项目,作为 command-line 和 PowerPoint 之间的代理来启动和合并文件。 (目前仍在进行中和粗糙的工作):

https://github.com/jessehouwing/ppt-diffmerge

ppt-diffmerge-tool --local="$LOCAL" --remote="$REMOTE" --base="$BASE" --output="$RESULT" 

核心代码:


PowerPointApplication app = null;
Presentation presentation = null;

try
{
    app = new PowerPointApplication();
    app.PresentationCloseFinal += App_PresentationClose;

    if (!string.IsNullOrWhiteSpace(Output))
    {
        File.Copy(Local, Output, true);
        Local = Output;
    }

    presentation = app.Presentations.Open(Local);

    if (string.IsNullOrWhiteSpace(Base))
    {
        presentation.Merge(Remote);
    }
    else
    {
        presentation.MergeWithBaseline(Remote, Base);
    }

    handle.WaitOne();
}
finally
{
    Marshal.ReleaseComObject(presentation);
    Marshal.ReleaseComObject(app);
}
return 0;

这很疯狂,甚至支持 3 向合并!