2017-12-07 42 views
0

私の質問はthis oneとかなり似ていますが、答えは同じですね...スライド上のすべての図形/画像を保存したいのですが単一のpng(またはjpeg)として。プログラム的には、私はPowerpoint「C#からの画像保存」

slide.Shapes.SelectAll(); 

まで取得しますが、画像として保存する方法はありません。これは可能ですか?そうでなければ、他の提案、うまくいけば/例? (VBAはない - 私は全体の変換を自動化する必要があります)

があり、他のポストでのOpenXMLへの参照があったが、私はそれを引っ張ってどのようにしてもわからない

+0

ページの画像だけですか?またはすべてのコンテンツを含むページ全体ですか?これらの形式のいずれかに名前を付けて保存することができます。ページあたり1つのファイル。 – JamieMeyer

+0

イメージを保存することを強く望みます(周囲の空白を避けるため)。私の転倒は 'slide.Export();' – user1174627

答えて

0

私は方法がわかりません。あなたがC#でこれを行うだろうが、私はあなたが行うことができますVBA、と同じように、あなたが同じメソッドを利用するだろうと推測するだろう:

Activewindow.Selection.ShapeRange.Export("c:\temp\delete-me.jpg",ppShapeFormatJPG) 

ppShapeFormatJPGは、PowerPointの定数であり、VBAロング= 1; IIRCはC#の整数になります。

この方法では、エクスポートされたイメージの幅と高さを文書化されていない方法で管理する、2つのオプションのパラメータscalewidthとscaleheightも使用できます。デフォルトでは、パラームは供給されません。私は72 dpiでエクスポートします。数値が大きいほど、ピクセル数は多くなりますが、比率は歪んで表示されます。私はそれにいくつかの奇妙な論理があると確信しているが、それは私を逃れる。すべてのヒントを歓迎します!

3番目のオプションのパラメータExportModeがあります。私のテストでは、あなたがそれを提供するかどうかは関係ありませんし、もしそうであれば、あなたが選んだ利用可能な値はどれですか。

+0

ありがとうございます。誰でも、C#/ .NETの世界からVBAマクロを作成し実行する方法はありますか? 1つ以上のPPTファイルを処理するための汎用スクリプトが必要です。 – user1174627

+0

.ShapeRange.ExportはPowerPointオブジェクトモデルの一部であり、VBA固有の機能ではないので、slide.Exportと同じ方法でC#から直接アクセスできると思います。しかし、少しスペイン語を読むことができますが、私はそれ以上私の人生を救うために話すことはできません。同様にC#。 ;-) –

+0

私はこの物だけを取り掛けていますが、私が理解しているように、外部から利用可能なオブジェクトとメソッドは、Powerpoint内のVBAアプリが見ることのできるサブセットです。 'Selection'や' ShapeRange'のようなものは見つけられませんでした。 – user1174627