4

C# と Open XML を使用して、URL からドキュメントに画像を挿入しようとしています。画像が変わる可能性があるのでダウンロードはせず、外部参照のままにしておきたい。

ローカル イメージを追加できる、このような例をいくつか見つけました。

http://msdn.microsoft.com/en-us/library/bb497430.aspx

URIを取得するためにそれをどのように適応させることができますか? または、まったく別のアプローチがありますか?

4

1 に答える 1

6

クイック パーツ フィールドを使用して、Word 文書に外部画像を追加できます。説明については、スーパーユーザーに関する次の回答を参照してください。

説明されている手順をプログラムで実現するには、外部リレーションシップを使用して URL から画像を含める必要があります。

これを実現する手順は次のとおりです。

  1. Picture クラスのインスタンスを作成します。
  2. 図形を追加して、画像のスタイル (幅/高さ) を指定します。
  3. ImageData クラスを使用して、外部関係の ID を指定します。
  4. メイン ドキュメント パーツに外部関係を追加します。ステップ 3 で指定したのと同じ ID を外部関係に付与します。

次のコードは、上記の手順を実装するだけです。Word 文書の最初の段落に画像が追加されます。

using (WordprocessingDocument newDoc = WordprocessingDocument.Open(@"c:\temp\external_img.docx", true))
{
    var run = new Run();

    var picture = new Picture();

    var shape = new Shape() { Id = "_x0000_i1025", Style = "width:453.5pt;height:270.8pt" };
    var imageData = new ImageData() { RelationshipId = "rId56" };

    shape.Append(imageData);

    picture.Append(shape);

    run.Append(picture);

    var paragraph = newdoc.MainDocumentPart.Document.Body.Elements<Paragraph>().FirstOrDefault();

    paragraph.Append(run);      

    newDoc.MainDocumentPart.AddExternalRelationship(
       "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
       new System.Uri("<url to your picture>", System.UriKind.Absolute), "rId56");
}

上記のコードでは、形状タイプを定義するコードを省略しました。OpenXML SDK 生産性向上ツールのようなツールを使用し て、画像との外部関係を持つ Word 文書を検査することをお勧めします。

于 2012-09-30T17:47:14.780 に答える