2017-02-01 8 views
0

Powerpoint Office Interopを使用してPPTファイルをPDFに変換しようとしています。私たちは、以下のコードスニペットに示すように変換を行うためにExportAsFixedFormat()を使用している:Powerpoint interopを使用中にSlideSizeプロパティを設定できません

 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(unknown member):Failed」という例外がスローされます。エラーメッセージのスクリーンショットを以下に示します。

enter image description here

Microsoft.Office.Interop.PowerPointのバージョンは15.0.0.0とのMicrosoft Office 15.0オブジェクトライブラリは、Officeのコアライブラリとして使用されています。 Windows 8.1の私のPCと私はMicrosoft Office 2013を使用しています。カスタム出力フォーマットが必要なので、現在例外を投げているSlideSizeプロパティを設定する必要があります。

答えて

0

あなたのコードは正しいです。プレゼンテーションが「最終」としてマークされているため、エラーを再現することができました。追加してみてください:

presentation.Final = false;

サイズを変更する前に追加してください。それが役に立てば幸い。がんばろう。

+0

ありがとうございます!私はpresentation.Final = falseを追加しようとしました。 SlideSizeプロパティを設定する前に、しかし運がなかった。私はまだ同じ問題を抱えています。どんなことが同じ問題を引き起こしているのかもしれないと思いますか? – Saket

+0

ファイルがロックされているか、Finalとしてマークされているか、またはRead-Onlyステータスになっている可能性があります。あなたが別のファイルを編集して同じ結果を得ることができるかどうかを試してみようと思います。私はあなたのコードは、あなたがファイルを編集する能力を持っている限り、動作するはずです。 –

+0

変換しようとしているファイルがロックされていないか、読み取り専用ではありません。それでも何らかの理由で、この例外が発生しています。私は問題が何かを理解することができたらいいと思う。 – Saket

関連する問題