DioDocs for PDF
グラフィック
機能 > グラフィック
このトピックの内容:

グラフィックは、さまざまな図形、線、曲線、画像などの形でドキュメント内に表示できるビジュアル要素です。一般に、理論や概念をわかりやすく説明するためにテキストを補完するものとして使用されます。

DioDocs for PDF では、GcGraphics クラスにある DrawRectangleDrawEllipse などのメソッドを使用して、ドキュメントにグラフィックを描画できます。これらのメソッドは、GcPdfGraphics クラスのオブジェクトを使用して、ページ内にグラフィックを描画します。DioDocs for PDF でサポートされているグラフィック要素を次に示します。

グラフィック要素

図形の追加

PDF ドキュメントに図形を追加するには

  1. GcPdfDocument クラスのオブジェクトを作成します。
  2. GcPdfDocument オブジェクトを使用して、ドキュメントに空白ページを追加します。
  3. GcGraphics クラスで提供される DrawEllipse メソッドを使用して、楕円を描画します。

次のコードスニペットは、PDF ドキュメントで図形を追加する方法を示します。

C#
コードのコピー
public void CreatePDF(Stream stream)
{
    // 新しいPDFドキュメントを作成します
    var doc = new GcPdfDocument();
    var page = doc.NewPage();
    var g = page.Graphics;

    // 図形を描画するのに使用されるペン
    var pen = new Pen(Color.Orange, 2);
    
    // 図形を描画します
    g.DrawEllipse(new RectangleF(0.0F, 0.0F, 200.0F, 100.0F), pen);

    // ドキュメントを保存します
    doc.Save(stream);
}
先頭に戻る

図形の塗りつぶし

図形を塗りつぶすには

  1. GcPdfDocument クラスのオブジェクトを作成します。
  2. GcPdfDocument オブジェクトを使用して、ドキュメントに空白ページを追加します。
  3. GcGraphics クラスで提供される DrawEllipse メソッドを使用して、楕円を描画します。
  4. FillEllipse メソッドを使用して図形を塗りつぶします。
C#
コードのコピー
public void CreatePDF(Stream stream)
{
    // 新しいPDFドキュメントを作成します
    var doc = new GcPdfDocument();
    var page = doc.NewPage();
    var g = page.Graphics;
    // 図形を描画するのに使用されるペン
    var pen = new Pen(Color.Orange, 2);
    // 図形を描画します
    g.DrawEllipse(new RectangleF(0.0F, 0.0F, 200.0F, 100.0F), pen);
    // 図形を塗りつぶします
    g.FillEllipse(new RectangleF(0.0F, 0.0F, 200.0F, 100.0F), Color.Orange);
    // ドキュメントを保存します
    doc.Save(stream);
}
先頭に戻る

グラデーションの追加

PDF ドキュメントでグラデーションを使用するには

  1. ページに追加する図形に対応するクラス(たとえば、DrawRectangle クラス)のインスタンスを作成して、図形を描画します。
  2. LinearGradientBrush クラスを初期化して直線グラデーションブラシを作成し、グラデーションの開始色と終了色を指定します。
  3. 該当する塗りつぶしメソッド(たとえば、FillRectangle)に LinearGradientBrush オブジェクトを渡して、図形を塗りつぶします。
C#
コードのコピー
public void CreatePDF(Stream stream)
{
    // 新しいPDFドキュメントを作成します
    var doc = new GcPdfDocument();
    var page = doc.NewPage();
    var g = page.Graphics;
    // 図形を描画するのに使用されるペン
    var pen = new Pen(Color.Orange, 2);
    // 図形を描画します
    g.DrawRectangle(new RectangleF(0.0F, 0.0F, 200.0F, 100.0F), pen);
    // 直線グラデーションブラシを作成します
    LinearGradientBrush linearGradBrush = new LinearGradientBrush(Color.Red, Color.Blue);
    // 図形を塗りつぶします
    g.FillRectangle(new RectangleF(0.0F, 0.0F, 200.0F, 100.0F), linearGradBrush);
    // ドキュメントを保存します
    doc.Save(stream);
}

同様に、RadialGradientBrush クラスは放射状グラデーションブラシを、HatchBrush クラスはハッチパターンを図形の塗りつぶし用に提供します。

先頭に戻る

変換の追加

DioDocs for PDF を使用して変換を行うには、GcGraphics クラスで提供される Transform プロパティを設定します。次の例では、四角形のボックスを変換して、0.7 倍に縮小し、(3', 5')の距離分移動させ、反時計回りに 70 度回転させています。 変換のための値は、Matrix3x2 クラスで提供されているさまざまなメソッドを使用して計算されます。

C#
コードのコピー
public void CreatePDF(Stream stream)
{
    // 新しいPDFドキュメントを作成します
    var doc = new GcPdfDocument();
    var page = doc.NewPage();
    var g = page.Graphics;

    // 変換値
    var translate0 = Matrix3x2.CreateTranslation(72 * 3, 72 * 5);
    var scale0 = Matrix3x2.CreateScale(0.7F);
    var rotate0 = Matrix3x2.CreateRotation((float)(-70 * Math.PI) / 180F);

    // 四角形を描き、変換を適用します
    var box = new RectangleF(0, 0, 72 * 4, 72 * 2);
    g.Transform = rotate0 * translate0 * scale0;
    g.FillRectangle(box, Color.FromArgb(100, Color.DarkSeaGreen));
    g.DrawRectangle(box, Color.DarkOrange, 1);
    g.DrawString("サンプルボックス:4\"x2\"のボックスで(0,0)で描かれ" +
    "、0.7 倍に縮小し、(3\",5\")の距離分移動させ、 " +
      "また反時計回りに70度回転されたテキスト。",
    new TextFormat() { Font = StandardFonts.Times, FontSize = 14, }, box);
    // ドキュメントを保存します
    doc.Save(stream);
}
先頭に戻る

DioDocs for PDF を使用したグラフィックの実装の詳細については、DioDocs for PDF サンプルブラウザを参照してください。