0

別の OpenXML Word ドキュメント内に OpenXML Word ドキュメントを埋め込もうとしていますが、破損したファイルが作成されています。私はすでにこの投稿を確認しました 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で、指示に従っていると思いますが、同じ結果が得られません。

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

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 Productivity ツールを使用して生成されたドキュメントを開きましたが、手動でファイルを埋め込んだドキュメントに表示される埋め込みセクションがありません。

私が間違っていることについて何か考えはありますか?

4

2 に答える 2

0

ワード プロセッシング ドキュメントの結合を読むことができます。サンプルコードも公開されています。

于 2012-05-08T13:39:59.307 に答える
0

私は問題を理解しました。WordprocessingDocument を破棄する前に、WordprocessingDocument.Close を呼び出していませんでした。新しいドキュメント パーツを追加する場合は、基になるストリームに書き込まれるように Close() を呼び出す必要があります。

于 2012-05-09T16:11:05.733 に答える