質問
C#で記述されたWindowsアプリケーションを使用して、パワーポイントスライドショーを表示/制御する良い方法はありますか?最終的には、フォームにサムネイルを表示し、これらのサムネイルをクリックすると、2番目のモニターに表示されるスライドを進めます(Powerpoint自体を使用して2番目のモニターにスライドショーを表示するのに似ています)。
Powerpointがインストールされていない場合にPowerpoint Viewerを使用できるようにしたい。
PowerPointをフォームに統合できるActiveXコントロールがいくつかあるようですが、これらのほとんどにお金がかかるようです。これらのコントロールのいずれかを使用した経験はありますか?
編集:Microsoft.Office.InterOp.Powerpointへの参照を追加することでアクセス可能なオブジェクトモデルがあることはわかっていますが、Microsoft Officeを前提条件にせずに結果のプログラムを配布できるようにしたいので、自由に配布できるため、Powerpoint Viewerに言及しました。
解決
このKBでは、PowerPointプレゼンテーションビューアーオブジェクトモデルを操作するための基本を説明します。アプリケーションを配布するときは、ビューアを含めることをお勧めします。
http://support.microsoft.com/kb/265385
ビューアー(トップレベル)オブジェクトへの参照を取得すると、powerpoint.presentationオブジェクトモデルでの作業と基本的に同じですが、機能が少なくなります(編集など)
Powerpoint 2007を使用している場合、System.XMLおよび関連するネームスペースを使用して編集機能を追加し、プレゼンテーションファイルをオープンxmlファイルとして操作できます。
UNO / openoffice.orgについてのコメントに関しては、ポイントを操作するためにUNOを使用することはできず、openoffice用であり、質問者の元々の要件ではなかったため、これらはポイントを見逃していると思います。
asposeのようなサードパーティのツールセットがありますが、あなたの目標はパワーポイントビューアーコンポーネント(無料)で作業することだったので、開発ツールへの支払いを避けたいと思いますか?いずれにせよ、ビューアコンポーネントOMは、既存のスライドショーの表示とプレビューに最適です。 (プレゼンテーションを最初から作成できるように、PowerPointのコピーが1つ必要です。VSTOプロジェクトを作成するにはVisual Studioが必要です。)
他のヒント
ここにある私たちのソフトウェアの1つがそれを行っています。最初はMS Officeを使用していましたが、最近ではMS Officeよりも優れた制御を提供する OpenOffice.org Uno に切り替えました。作業が簡単です。 .NET CLIバインディングがあります。
質問に答えるために、はい、できますが、代わりにOpenOffice.orgを使用することをお勧めします。
Microsoft ExcelやWordと同様に、Powerpointには、プロジェクトに参照を含めることでコードでアクセスできるオブジェクトモデルがあります。
Microsoft.Office.InterOp.Powerpoint。
ExcelおよびWordモデルを使用しましたが、Powerpointには使用していません。参照を含めてオブジェクトブラウザを開くと、利用可能な機能の種類を確認できます。サードパーティのツールを使用してオブジェクトモデルにアクセスしたくない場合、これは実行可能なソリューションです。
AsposeのWordツールキットを使用しました。Powerpointツールキットもあるので、検討する価値があると思います。
http://www.aspose.com/categories/file-format-components/aspose.slides-for-.net-and-java/default.aspx