バージョン

画像を Word 文書に追加

Infragistics® Word ライブラリは、 WordDocumentWriter ストリーマー オブジェクトを使用して、新しい Word 文書に追加できる 2 種類の画像をサポートします。それらはアンカー固定画像とインライン画像(ピクチャーとも言う)です。

アンカー固定はドキュメント内の特定の位置に「アンカー固定された」画像で、隣接するテキストはその境界の周りに配置されます。これとは対照的に、「インライン」画像は段落内で隣接するコンテンツとともに移動します。

以下のスクリーンショットは、アンカー固定した画像およびインライン画像がある Word 文書を表示します。

Word Add Images to Word Document 01.png

注: アンカー固定した画像およびインライン画像を追加するコードは、WordDocumentWriter オブジェクトの StartParagraph メソッドと EndParagraph メソッドの間に配置する必要があります。

アンカー固定した画像の追加

アンカー固定した画像を現在の段落に追加するには、WordDocumentWriter クラスのインスタンスを使用して、AnchoredPicture のインスタンスを返す CreateAnchoredPicture メソッドを呼び出します。この参照は、WordDocumentWriter オブジェクトの AddAnchoredPicture メソッドにパラメーターとして渡されます。

C# の場合:

//  静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
// 新しいインスタンスを作成します
WordDocumentWriter docWriter = WordDocumentWriter.Create(@"C:\TestWordDoc.docx");
// 画像を取得します
Image img = Image.FromFile(@"..\..\Ballon_New_Year.jpg");
// アンカー固定した画像を作成します
AnchoredPicture anchPic = docWriter.CreateAnchoredPicture(img);
docWriter.AddAnchoredPicture(anchPic);

Visual Basic の場合:

'  静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
' 新しいインスタンスを作成します
Dim docWriter As WordDocumentWriter = WordDocumentWriter.Create("C:\TestWordDoc.docx")
' 画像を取得します
Dim img As Image = Image.FromFile("..\..\Ballon_New_Year.jpg")
' アンカー固定した画像を作成します
Dim anchPic As AnchoredPicture = docWriter.CreateAnchoredPicture(img)
docWriter.AddAnchoredPicture(anchPic)

インライン画像の追加

インライン画像を段落に追加するには、WordDocumentWriter オブジェクトの AddInlinePicture メソッドを使用します。

C# の場合:

//  静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
// 新しいインスタンスを作成します
WordDocumentWriter docWriter = WordDocumentWriter.Create(@"C:\TestWordDoc.docx");
// 画像を取得します
Image img = Image.FromFile(@"..\..\Ballon_New_Year.jpg");
// インライン画像を追加します
docWriter.AddInlinePicture(img);

Visual Basic の場合:

'  静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
' 新しいインスタンスを作成します
Dim docWriter As WordDocumentWriter = WordDocumentWriter.Create("C:\TestWordDoc.docx")
' 画像を取得します
Dim img As Image = Image.FromFile("..\..\Ballon_New_Year.jpg")
' インライン画像を追加します
docWriter.AddInlinePicture(img)

注: AddAnchoredPicture メソッドまたは AddInlinePicture メソッドが使用される前に、StartParagraph メソッドを使用して段落を開始する必要があります。そうしないと例外がスローされます。

アンカー固定した画像の周囲に表示されるアウトラインのプロパティを定義するには、PictureOultlineProperties クラスを使用できます。WordDocumentWriter オブジェクトの CreatePictureOutlineProperties メソッドは、PictureOutlineProperties クラスへの参照を含むインスタンスを返します。この参照はさまざまなアウトライン プロパティを公開します。これらのプロパティはアンカー固定した画像のみに定義できます。

C# の場合:

// 画像のアウトライン プロパティを定義します
PictureOutlineProperties picOutlineProps = docWriter.CreatePictureOutlineProperties();
picOutlineProps.Color = Color.Violet;
picOutlineProps.Style = PictureOutlineStyle.Single;
picOutlineProps.LineWidth = 1;
' Get Image
Image img = Image.FromFile(@"..\..\Ballon_New_Year.jpg");
// アンカー固定した画像を作成します
AnchoredPicture anchPic = docWriter.CreateAnchoredPicture(img);
anchPic.AlternateTextDescription = "Word Image";
anchPic.Outline.Color = picOutlineProps.Color;
anchPic.Outline.Style = picOutlineProps.Style;
anchPic.Outline.LineWidth = picOutlineProps.LineWidth;

Visual Basic の場合:

' 画像のアウトライン プロパティを定義します
Dim picOutlineProps As PictureOutlineProperties = docWriter.CreatePictureOutlineProperties()
picOutlineProps.Color = Color.Violet
picOutlineProps.Style = PictureOutlineStyle.[Single]
picOutlineProps.LineWidth = 1
' 画像を取得します
Dim img As Image = Image.FromFile("..\..\Ballon_New_Year.jpg")
' アンカー固定した画像を作成します
Dim anchPic As AnchoredPicture = docWriter.CreateAnchoredPicture(img)
' アンカー固定した画像の画像アウトライン プロパティを指定します
anchPic.AlternateTextDescription = "Word Image"
anchPic.Outline.Color = picOutlineProps.Color
anchPic.Outline.Style = picOutlineProps.Style
anchPic.Outline.LineWidth = picOutlineProps.LineWidth

アンカー固定した画像とインライン画像をミックス

C# の場合:

//  静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
// 新しいインスタンスを作成します
WordDocumentWriter docWriter = WordDocumentWriter.Create(@"C:\TestWordDoc.docx");
docWriter.StartDocument();
docWriter.StartParagraph();
docWriter.AddTextRun("A paragraph is a series of sentences that are organized and coherent, and are all related to a single topic. Almost every piece of writing you do that is longer than a few sentences should be organized into paragraphs.");
// 画像のアウトライン プロパティを定義します
PictureOutlineProperties picOutlineProps = docWriter.CreatePictureOutlineProperties();
picOutlineProps.Color = Color.Violet;
picOutlineProps.Style = PictureOutlineStyle.Single;
picOutlineProps.LineWidth =1;
// 画像を取得します
Image img = Image.FromFile(@"..\..\Ballon_New_Year.jpg");
// アンカー固定した画像を作成します
AnchoredPicture anchPic = docWriter.CreateAnchoredPicture(img);
// アンカー固定した画像の画像アウトライン プロパティを指定します
anchPic.AlternateTextDescription = "Word Image";
anchPic.Outline.Color = picOutlineProps.Color;
anchPic.Outline.Style = picOutlineProps.Style;
anchPic.Outline.LineWidth = picOutlineProps.LineWidth;
docWriter.AddAnchoredPicture(anchPic);
// インライン画像を追加します
docWriter.AddInlinePicture(img);
docWriter.EndParagraph();
docWriter.EndDocument();
docWriter.Close();

Visual Basic の場合:

'  静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
' 新しいインスタンスを作成します
Dim docWriter As WordDocumentWriter = WordDocumentWriter.Create("C:\TestWordDoc.docx")
docWriter.StartDocument()
docWriter.StartParagraph()
docWriter.AddTextRun("A paragraph is a series of sentences that are organized and coherent, and are all related to a single topic. Almost every piece of writing you do that is longer than a few sentences should be organized into paragraphs.")
' 画像のアウトライン プロパティを定義します
Dim picOutlineProps As PictureOutlineProperties = docWriter.CreatePictureOutlineProperties()
picOutlineProps.Color = Color.Violet
picOutlineProps.Style = PictureOutlineStyle.[Single]
picOutlineProps.LineWidth =1
' 画像を取得します
Dim img As Image = Image.FromFile("..\..\Ballon_New_Year.jpg")
' アンカー固定した画像を作成します
Dim anchPic As AnchoredPicture = docWriter.CreateAnchoredPicture(img)
' アンカー固定した画像の画像アウトライン プロパティを指定します
anchPic.AlternateTextDescription = "Word Image"
anchPic.Outline.Color = picOutlineProps.Color
anchPic.Outline.Style = picOutlineProps.Style
anchPic.Outline.LineWidth = picOutlineProps.LineWidth
docWriter.AddAnchoredPicture(anchPic)
' インライン画像を追加します
docWriter.AddInlinePicture(img)
docWriter.EndParagraph()
docWriter.EndDocument()
docWriter.Close()