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 で実行)
ありがとう、そしてよろしく