【问题标题】:Unable to set SlideSize property while using powerpoint interop使用 powerpoint 互操作时无法设置 SlideSize 属性
【发布时间】:2017-02-01 12:55:26
【问题描述】:

我们正在尝试使用 Powerpoint Office Interop 将 PPT 文件转换为 PDF。我们正在使用ExportAsFixedFormat() 进行转换,如下面的代码 sn-p 所示:

        public static void ConvertPowerPointToPdf(string inputFile)
        {
            string outputFileName = @"C:\All format files\PPT2PDF.pdf";

            Microsoft.Office.Interop.PowerPoint.Application powerPointApp =
            new Microsoft.Office.Interop.PowerPoint.Application();
            Presentation presentation = null;
            Presentations presentations = null;
            try
            {
                presentations = powerPointApp.Presentations;
                presentation = presentations.Open(inputFile, MsoTriState.msoFalse, MsoTriState.msoFalse,
                MsoTriState.msoFalse);

                presentation.PageSetup.SlideSize = PpSlideSizeType.ppSlideSizeA4Paper; //It throws the exception here

                presentation.ExportAsFixedFormat(outputFileName, PpFixedFormatType.ppFixedFormatTypePDF,
                PpFixedFormatIntent.ppFixedFormatIntentPrint);
            }
            catch (Exception)
            {
                throw;
            }
        }

如果我们不设置 SlideSize 属性,上面的代码可以正常工作。当我们尝试设置SlideSize 属性时,异常被抛出为“PageSetup(未知成员):失败。”报错信息截图如下:

Microsoft.Office.Interop.PowerPoint版本为15.0.0.0,Microsoft Office 15.0 Object Library作为Office核心库使用。我的电脑在 Windows 8.1 中,我使用的是 Microsoft Office 2013。由于我们需要自定义输出格式,我们需要设置当前抛出异常的 SlideSize 属性。

【问题讨论】:

    标签: c# interop powerpoint office-interop com-interop


    【解决方案1】:

    您的代码是正确的。通过将演示文稿标记为“最终”,我能够准确地重新创建您的错误。尝试添加:

    presentation.Final = false;

    在调整大小之前添加它。希望能帮助到你。祝你好运。

    【讨论】:

    • 你好!我尝试添加presentation.Final = false;在设置 SlideSize 属性之前,但没有任何运气。我仍然遇到同样的问题。猜猜是什么导致了同样的问题?
    • 这很可能是因为文件被锁定、标记为 Final 或处于只读状态。我会尝试看看你是否也可以编辑另一个文件,看看你是否得到相同的结果。我可以告诉你,只要你有能力编辑文件,你编写的代码就应该可以工作。
    • 我要转换的文件未锁定或只读。尽管如此,由于某种原因,我得到了这个例外。我希望我能弄清楚问题是什么。
    • 尝试在本地创建一个新文件并尝试编辑该电源点。如果错误没有发生,您将把问题隔离到文件中。如果新文件仍然发生错误,那么我们知道它与代码或设置有关。让我知道结果,我会努力引导你朝着正确的方向前进。
    • 我复制并粘贴了您的代码以再次对其进行测试,并且能够以完全相同的设置运行它而不会出错。让我相信这是文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    相关资源
    最近更新 更多