2011-10-19 14 views
2

OpenXMLドキュメント、特にPresentationDocumentの保存に関するアドバイスを探しています。PowerPointの保存とオートセーブPowerPoint OpenXMLプレゼンテーションドキュメント

私のシナリオでは、テンプレートとして機能するPowerPointの.pptxプレゼンテーションをディスクから直接開きます。次に、他のさまざまなPowerPointプレゼンテーションからスライドを追加(コピー)します。別々のソースプレゼンテーションごとに、MasterSlidePartsとSlideLayoutPartsも追加します。

質問1:プレゼンテーションを保存する必要がある場合 、私はそれがPresentationDocumentに対するすべての変更を保存します発行できる単一のコマンドはありますか?

 presentationDocument.PresentationPart.Presentation.Save(); 

     foreach (var slideMasterPart in presentationDocument.PresentationPart.SlideMasterParts) 
     { 
      slideMasterPart.SlideMaster.Save(); 
     } 

質問2:PresentationDocumentを開くとき、をデフォルトに思える「自動保存」のオプション」があるか、私は手動で新しいですか例えば、変更されてされて各項目を保存する必要があります本当 "である。誰でも自動保存が何をしているのか正確に説明できますか?

私が読んだことは、PresentationDocumentが処分されたときにPresentationDocumentのすべてを保存することを示唆しています。これは正しいです?

もしそうなら、プレゼンテーション作成ロジックをテストできるように、私は自分自身での保存を制御する必要があるので、私はautosave = falseを設定する必要があります。

ご回答ありがとうございます。

スティーブ

+0

"オートセーブ"の仕組みは?その質問に対する答えを知るには、そのオプションのMSDNの説明を読む必要があります。 –

+0

複数の質問がある場合は、それらを分割することをお勧めします。これらの質問の両方は、ドキュメントを読むことで解決できます。 –

+0

ご意見ありがとうございますRamhound。私は何時間もMSDNのドキュメントを検索してきましたが、これら2つの関連する質問に特定の答えが見つからなかったので、ここにいる誰かが私を助けてくれることを願っていました。 – Appetere

答えて

2

質問1:あなたのファイルを開いて、明示的にどちらかを呼び出し、それらのいずれかが通話を保存する必要はありません方法の変更を行うためのストリームを使用している場合。 presentationDocument変数のDispose()メソッドを呼び出すだけで済みます。文書の処分

をフラッシュのための状態と内容が保存されますが、ドキュメント、およびすべて解放 リソースを閉じます。

これにより、プレゼンテーションの保存を呼び出す必要がなくなります。また、個々のスライドをループする必要もありません。

質問2:autosave状態は、以下の文書:

部品が配置 に保存すべきかどうかを示すフラグを取得します。

これは、あなたがしたい場合は、この値がtrueに設定されるようにしたいと思うDispose()メソッドを呼び出すときに、すべての部品を保存することを信じているように私につながります。そうしないと、変更内容が保存されないことがあります。

+0

ありがとうございますamurra。私はPresentationDocumentを使ってディスクから直接ファイルを開いていましたが、最初にストリームとして開いてから、ストリームをPresentationDocumentに渡すと、これははるかに良いアイデアです。これはまた、ディスクに移動するのではなく、テスト用のドキュメントをMemoryStreamに渡すことができるようになるため、テストをはるかに簡単にします。ありがとう! – Appetere

関連する問題