2012-05-08 12 views
0

OpenXMLワードドキュメントを別のOpenXMLワードドキュメントの中に埋め込み、破損したファイルを作成しようとしています。私はすでにこの投稿を見直しました http://blogs.msdn.com/b/brian_jones/archive/2009/06/30/embedding-an-open-xml-file-in-another-open-xml-file.aspxとこのスタックオーバーフローポストEmbedding an OpenXML document within another OpenXml documentと私は指示に従っていると思うが、私は同じ結果を得ていないよ。OpenXML SDKを使用してOpenXMLドキュメントを別のドキュメントに埋め込むことはできません

私のコードは次のようになります。

foreach (KeyValuePair<string, byte[]> docKV in files) 
      { 
       var embeddedPackagePart = document.MainDocumentPart.AddNewPart<EmbeddedPackagePart>("application/vnd.openxmlformats-officedocument.wordprocessingml.document", "rfp" + docKV.key); 
       var stream = new MemoryStream(docKV.Value); 
       embeddedPackagePart.FeedData(stream); 
       stream.Close(); 
} 

だから基本的に私は、辞書に保存されたファイルのリストをループして、各ファイルを埋め込みました。私は実際のOpenXMLマークアップを作成するコードを削除して、組み込みオブジェクトにリンクしてエラーを絞り込みました。私が実際に埋め込んでいることは、問題を作り出すものであると言えます。

また、OpenXML SDKの生産性ツールを使用して生成されたドキュメントを開きましたが、手作業でファイルを埋め込んだドキュメントに表示される埋め込みセクションがありません。

私が間違っていることについて考えてみましょうか?

答えて

0

私は問題を把握しました。私はWordprocessingDocumentを破棄する前にWordprocessingDocument.Closeを呼び出していませんでした。新しいドキュメントパーツを追加する場合は、基礎となるストリームに書き込むためにClose()を呼び出さなければなりません。

0

Merging word processing documentsを読むことができます。サンプルコードも用意されています。

+0

これは私が探しているものではありません。私は文書を結合したくないのではなく、 "挿入 - >オブジェクト"メニューオプションを選択したときにオブジェクトが埋め込まれるのと同じ方法で、文書Aの中に文書Bを埋めたいと思います。 – AndrewSwerlick

関連する問題