1

次のように、Word2010ドキュメントにPNG画像を追加します。

var imagePart = report.MainDocumentPart.AddImagePart(ImagePartType.Png);
var imagePath = Path.Combine(imageFolder, "1.png");
var stream = new FileStream(imagePath, FileMode.Open);
imagePart.FeedData(stream);
stream.Close();

空のPictureコンテンツコントロールのblip要素を見つけ、その参照プロパティを変更して新しい画像を指すようにします。

var blip = image.Descendants<Blip>().Single();
blip.Embed = report.MainDocumentPart.GetIdOfPart(imagePart);

生成されたドキュメントを保存し、Open XMLProductivityToolを使用して検証します。このエラーが発生します:

The relationship 'Ra4d8ccdc5256bb1' referenced by attribute 'http://schemas.openxmlformats.org/officeDocument/2006/relationships:embed' does not exist.

関係とは何ですか?なぜAddImagePart作成しないのですか?このエラーを修正するにはどうすればよいですか?生成されたドキュメントをWordで開くと、画像が表示されません。

4

2 に答える 2

1

私は解決策を見つけました。理由はわかりませんが、同封しなければなりませんでした

WordprocessingDocument report = WordprocessingDocument.Open(path, true)

このようなusingステートメントで:

using(WordprocessingDocument report = WordprocessingDocument.Open(path, true)) {
    //embed the image
}

ドキュメントusingが適切に保存されていませんでした:関係が作成されませんでした。

于 2012-06-29T08:00:34.623 に答える
0

サンプルはhttp://msdn.microsoft.com/en-us/library/bb497430.aspxにあります。

于 2012-06-26T09:03:22.807 に答える