=begin
= Ruby/Panda
PDF Library Panda の ruby インタフェース

== Module/Class Hierarchy

  Panda -+
           |
           +- Panda::PDF
           |
           +- Panda::Page

= Module Panda

== 定数

=== テキスト drawing モード

--- Panda::NORMAL

--- Panda::OUTLINE

--- Panda::FILLEDOUTLINE

--- Panda::INVISIBLE

--- Panda::FILLEDCLIPPED

--- Panda::STROKEDCLIPPED

--- Panda::FILLEDSTROKEDCLIPPED

--- Panda::CLIPPED

=== line cap スタイル

--- Panda::LINECAP_BUTT

--- Panda::LINECAP_ROUND

--- Panda::LINECAP_PROJECTEDSQUARE

=== line join スタイル

--- Panda::LINEJOIN_MITER

--- Panda::LINEJOIN_ROUND

--- Panda::LINEJOIN_BEVEL

=== image タイプ

--- Panda::TIFF

--- Panda::JPEG

--- Panda::PNG

=== 用紙サイズ

--- Panda::A4

--- Panda::USLETTER

= Class Panda::PDF

== Class Methods

--- Panda::PDF.new(filename, mode)
      PDF クラスを生成して返す。

== Methods

=== ドキュメント属性

--- Panda::PDF#setauthor(author)
      ドキュメントの author フィールドを設定する。

--- Panda::PDF#setcreator(creator)
      ドキュメントの creator フィールドを設定する。

--- Panda::PDF#settitle(title)
      ドキュメントの title フィールドを設定する。

--- Panda::PDF#setsubject(subject)
      ドキュメントの subject フィールドを設定する。

--- Panda::PDF#setkeywords(keywords)
      ドキュメントの keywords フィールドを設定する。

=== イメージ関係

--- Panda::PDF#imagebox(page, top, left, bottom, right, filename, type)
      画像タイプ ((|type|)) の画像ファイル ((|filename|)) を Page ((|target|)) の
      (((|top|)), ((|left|))) (((|bottom|)), ((|right|))) に描画する。

--- Panda::PDF#imageboxrot(target, top, left, bottom, right, angle, filename, type)
      画像タイプ ((|type|)) の画像ファイル ((|filename|)) を Page ((|target|)) の
      (((|top|)), ((|left|))) (((|bottom|)), ((|right|))) に角度 ((|angle|)) で描画する。

=== フォント関係

--- Panda::PDF#setfont(fontname, type, encoding)
      フォントを設定する。

--- Panda::PDF#setfontsize(size)
      フォントサイズを設定する。

--- Panda::PDF#setfontmode(mode)
      フォントモードを設定する。((|mode|)) として指定できるのは
      Panda::NORMAL, Panda::OUTLINE, Panda::FILLEDOUTLINE, Panda::INVISIBLE, Panda::FILLEDCLIPPED,
      Panda::STROKEDCLIPPED, Panda::FILLEDSTROKEDCLIPPED, Panda::CLIPPED のいずれか。

--- Panda::PDF#setcharacterspacing(amount)
      文字どうしの間隔を ((|amount|)) ポイントに設定する。

--- Panda::PDF#setwordspacing(amount)
      文字列どうしの間隔を ((|amount|)) ポイントに設定する。

--- Panda::PDF#sethorizontalscaling(scaling)
      テキストの縦の間隔を ((|scaling|)) %に設定する。

--- Panda::PDF#setleading(leading)
      テキストどうしの間隔を ((|leading|)) ポイントに設定する。

=== テキスト関係

--- Panda::PDF#textbox(thisPage, top, left, bottom, right, text)
      Page ((|thisPage|)) の (((|top|)), ((|left|))) (((|bottom|)), ((|right|))) に
      文字列 ((|text|)) を描画する。

--- Panda::PDF#textboxrot(thisPage, top, left, bottom, right, angle, text)
      Page ((|thisPage|)) の (((|top|)), ((|left|))) (((|bottom|)), ((|right|))) に
      文字列 ((|text|)) を角度 ((|angle|)) で描画する。

=== テンプレート

--- Panda::PDF#newtemplate(pageSize)
      大きさ ((|pageSize|)) の ((|template|)) を生成する。
      Page クラスを生成して返す。

--- Panda::PDF#applytemplate(target, template)
      Page ((|target|)) に ((|template|)) を適応する。

= Class Panda::Page

== Class Methods

--- Panda::Page.new(PDF, pageSize)
      Page クラスを生成して返す。

== Methods

=== グラフィック/描画関係

--- Panda::Page#setlinestart(x, y)
      最初の描画ポイントを (((|x|)), ((|y|))) に設定する。

--- Panda::Page#addlinesegment(x, y)
      カレントポイントから (((|x|)), ((|y|))) まで線を引く。

--- Panda::Page#addcubiccurvesegment(x, y, cx1, cy1, cx2, cy2)
      カレントポイントから (((|x|)), ((|y|))) まで曲線を引く。

--- Panda::Page#addquadraticcurvesegmentone(x, y, cx1, cy1)
      カレントポイントから (((|x|)), ((|y|))) まで曲線を引く。

--- Panda::Page#addquadraticcurvesegmenttwo(x, y, cx1, cy1)
      カレントポイントから (((|x|)), ((|y|))) まで曲線を引く。

--- Panda::Page#rectangle(top, left, bottom, right)
      (((|top|)), ((|left|))) (((|bottom|)), ((|right|))) の四角を描画する。

=== グラフィック/path 関係

--- Panda::Page#closeline()
      カレントパスを閉じる。

--- Panda::Page#endline()
      カレントパスを終る。

--- Panda::Page#strokeline()
      現在のパスをを描く。

--- Panda::Page#fillline()
      現在のパスで閉じられた平面を塗りつぶす。

=== グラフィック/設定関係

--- Panda::Page#setlinewidth(width)
      線の幅を ((|width|)) に設定する。

--- Panda::Page#setlinecap(cap)
      線の端の描画方法を ((|cap|)) に設定する。((|cap|)) として指定できるのは
      Panda::LINECAP_BUTT, Panda::LINECAP_ROUND, Panda::LINECAP_PROJECTEDSQUARE のいずれか。

--- Panda::Page#setlinejoin(join)
      折れ線の角の描画方法を ((|join|)) に設定する。((|join|)) として
      指定できるのは Panda::LINEJOIN_MITER, Panda::LINEJOIN_ROUND, Panda::LINEJOIN_BEVEL のいずれか。

--- Panda::Page#setlinedash(on, off, phase)
      破線のパタンを設定する。

=== グラフィック/色関係

--- Panda::Page#setfillcolor(red, green, blue)
      fill color を設定する。

--- Panda::Page#setlinecolor(red, green, blue)
      line color を設定する。

=end