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」という例外がスローされます。エラーメッセージのスクリーンショットを以下に示します。
Microsoft.Office.Interop.PowerPointのバージョンは15.0.0.0とのMicrosoft Office 15.0オブジェクトライブラリは、Officeのコアライブラリとして使用されています。 Windows 8.1の私のPCと私はMicrosoft Office 2013を使用しています。カスタム出力フォーマットが必要なので、現在例外を投げているSlideSize
プロパティを設定する必要があります。
ありがとうございます!私はpresentation.Final = falseを追加しようとしました。 SlideSizeプロパティを設定する前に、しかし運がなかった。私はまだ同じ問題を抱えています。どんなことが同じ問題を引き起こしているのかもしれないと思いますか? – Saket
ファイルがロックされているか、Finalとしてマークされているか、またはRead-Onlyステータスになっている可能性があります。あなたが別のファイルを編集して同じ結果を得ることができるかどうかを試してみようと思います。私はあなたのコードは、あなたがファイルを編集する能力を持っている限り、動作するはずです。 –
変換しようとしているファイルがロックされていないか、読み取り専用ではありません。それでも何らかの理由で、この例外が発生しています。私は問題が何かを理解することができたらいいと思う。 – Saket