Word for WinForms
グラフィックの描画
Word for WinForms の操作 > 基礎レベルの操作 > グラフィックの描画

グラフィックを追加することで、ドキュメントの見栄えがよくなり、視覚に訴えることができます。ドキュメントに、円弧、ベジェ、楕円、直線、円、多角形、折れ線、四角形などのさまざまなタイプの図形を追加できます。直線、四角形、ベジェなどのグラフィックを追加するには、次のコードを使用します。

' ドキュメントを作成します。
Dim c1Word As New C1WordDocument()
c1Word.Info.Title = "グラフィックスプリミティブ"

Dim sf As New StringFormat()
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Center
Dim rc = New RectangleF(250, 100, 150, 20)
Dim font As New Font("Arial", 14, FontStyle.Italic)
c1Word.DrawString(c1Word.Info.Title, font, Color.DeepPink, rc, sf)

c1Word.DrawLine(Pens.Green, 200, 190, 400, 190)

rc = New RectangleF(150, 150, 190, 80)
Using pen As New Pen(Brushes.Blue, 5F)
        c1Word.DrawRectangle(pen, rc)
End Using
c1Word.FillRectangle(Color.Gold, rc)
c1Word.ShapeFillOpacity(50)
c1Word.ShapeRotation(25)

rc = New RectangleF(300, 150, 80, 80)
c1Word.DrawEllipse(Pens.Red, rc)
c1Word.FillEllipse(Color.Pink, rc)
c1Word.ShapeFillOpacity(70)

Dim pts As PointF() = New PointF(3) {}
pts(0) = New PointF(200, 200)
pts(1) = New PointF(250, 300)
pts(2) = New PointF(330, 250)
pts(3) = New PointF(340, 140)
c1Word.DrawPolyline(Pens.BlueViolet, pts)

sf = New StringFormat()
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Far
sf.FormatFlags = sf.FormatFlags Or StringFormatFlags.DirectionVertical
rc = New RectangleF(450, 150, 25, 75)
font = New Font("Verdana", 12, FontStyle.Bold)
c1Word.DrawString("垂直", font, Color.Black, rc, sf)

pts = New PointF(3) {}
pts(0) = New PointF(372, 174)
pts(1) = New PointF(325, 174)
pts(2) = New PointF(325, 281)
pts(3) = New PointF(269, 281)
c1Word.DrawBeziers(Pens.HotPink, pts)

Dim Sdlg As New SaveFileDialog()
Sdlg.FileName = "document"
Sdlg.Filter = "RTF files (*.rtf)|*.rtf|DOCX (*.docx)|*.docx"
Sdlg.ShowDialog()

c1Word.Save(Sdlg.FileName)
MessageBox.Show("Wordドキュメントは正常に保存されました。")
// ドキュメントを作成します。
C1WordDocument c1Word = new C1WordDocument();
c1Word.Info.Title = "グラフィックスプリミティブ";

StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
var rc = new RectangleF(250, 100, 150, 20);
Font font = new Font("Arial", 14, FontStyle.Italic);
c1Word.DrawString(c1Word.Info.Title, font, Color.DeepPink, rc, sf);

c1Word.DrawLine(Pens.Green, 200, 190, 400, 190);

rc = new RectangleF(150, 150, 190, 80);
using(Pen pen = new Pen(Brushes.Blue, 5.0 f)) {
  c1Word.DrawRectangle(pen, rc);
}
c1Word.FillRectangle(Color.Gold, rc);
c1Word.ShapeFillOpacity(50);
c1Word.ShapeRotation(25);

rc = new RectangleF(300, 150, 80, 80);
c1Word.DrawEllipse(Pens.Red, rc);
c1Word.FillEllipse(Color.Pink, rc);
c1Word.ShapeFillOpacity(70);

PointF[] pts = new PointF[4];
pts[0] = new PointF(200, 200);
pts[1] = new PointF(250, 300);
pts[2] = new PointF(330, 250);
pts[3] = new PointF(340, 140);
c1Word.DrawPolyline(Pens.BlueViolet, pts);

sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Far;
sf.FormatFlags |= StringFormatFlags.DirectionVertical;
rc = new RectangleF(450, 150, 25, 75);
font = new Font("Verdana", 12, FontStyle.Bold);
c1Word.DrawString("垂直", font, Color.Black, rc, sf);

pts = new PointF[4];
pts[0] = new PointF(372, 174);
pts[1] = new PointF(325, 174);
pts[2] = new PointF(325, 281);
pts[3] = new PointF(269, 281);
c1Word.DrawBeziers(Pens.HotPink, pts);

SaveFileDialog Sdlg = new SaveFileDialog();
Sdlg.FileName = "document";
Sdlg.Filter = "RTF files (*.rtf)|*.rtf|DOCX (*.docx)|*.docx";
Sdlg.ShowDialog();

c1Word.Save(Sdlg.FileName);
MessageBox.Show("Wordドキュメントが正常に保存されました。");

上記のコードは、DrawLineDrawRectangleDrawEllipseDrawPolyline、および DrawBeziers メソッドを使用して、直線、四角形、ベジェ、楕円などのさまざまなタイプのグラフィックを描画します。

ドキュメントは、次の図のように表示されます。