1

C# と Microsoft.Office.Interop.PowerPoint を使用して、pps(x) または ppt(x) を PDF に変換したいと考えています。これを行うには、次のコーディングを実行するメソッドを使用します。

Microsoft.Office.Interop.PowerPoint.Presentation presentation = null;
Microsoft.Office.Interop.PowerPoint.Application application = null;
try
{
    application = new Microsoft.Office.Interop.PowerPoint.Application();
    presentation = application.Presentations.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);
    presentation.SaveAs(targetPath, PpSaveAsFileType.ppSaveAsPDF, Microsoft.Office.Core.MsoTriState.msoTrue);
    result = true;
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
    result = false;
}
finally
{
    if (presentation != null)
    {
        presentation.Close();
        presentation = null;
    }
    if (application != null)
    {
        application.Quit();
        application = null;
    }
}
return result;

メソッドが初めて呼び出されると、ppsx は pdf として正常に保存されます。しかし、メソッドが別の時間に呼び出されると、次の例外が発生しますapplication = new Microsoft.Office.Interop.PowerPoint.Application();

例外メッセージは次のとおりです。Creating an instance of the COM component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} from the IClassFactory failed due to the following error: 800706b5 The interface is unknown. (Exception from HRESULT: 0x800706B5).この例外が発生する直前に、コンソールに別の例外が表示されます"System.Runtime.InteropServices.COMException" in mscorlib.dll

F12 経由でインターフェイスに移動するMicrosoft.Office.Interop.PowerPoint.Applicationと、このインターフェイスの GUID は 9149344 2 -5A91-11CF-8700-00AA0060263B になります。そのため、例外のメッセージ内の GUID とは少し異なります。

お聞きしたいのですが、この問題を解決するにはどうすればよいですか?

PS: このノートブックには Microsoft Office 2010 がインストールされています (Microsoft Win 7 で実行)

ありがとう、そしてよろしく

4

3 に答える 3