=begin RD

= PDF class
PDF ファイル生成クラス

== Super Class
* Data

== Included Module
* PDF::Constants

== Class Method
--- new([filename])
      ファイル ((|filename|)) を開き、PDF クラスを生成して返す。
      ((|filename|)) が空文字列か nil の場合、もしくは
      引数無しで呼ばれた場合は、生成された PDF の中身は
      バッファにたくわえられて出力されない。
      その場合は ((<get_buffer>)) メソッドでそのバッファの中身を
      参照することが出来る。
--- open([filename])
--- open([filename]) { ... }
      ((<new>)) と同じですが、ブロック付きで呼び出すことが出来ます。
      その場合、開いた PDF ファイルを引数にしてブロックを評価した後、
      自動的にファイルを閉じます。

== Method
=== 一般
--- close
      ファイルを閉じる。
--- set_info(key, value)
      document information を書き込む。
      ((|key|)) は INFO_CREATOR, INFO_AUTHOR, INFO_TITLE, INFO_SUBJECT
      のいずれか。
--- set_parameter(key, value)
      文字列パラメータを設定する。
--- get_parameter(key, value)
      文字列パラメータを返す。
--- set_value(key, value)
      数値パラメータを設定する。
--- get_value(key, mod)
      数値パラメータの値を返す。
--- begin_page(width, height)
      幅 ((|width|))、高さ ((|height|)) の新しいページを始める。
--- end_page
      ページを終わる。
--- get_buffer
      内部バッファの中身を返す。
      コンストラクタで出力ファイルが指定してある場合は例外が発生する。

=== フォント関係
--- findfont(fontname, encoding, embed)
      フォント ((|fontname|)) を探し、そのフォントの ID を返す。
      ((|encoding|)) には ENCODING_BUILTIN, ENCODING_MACROMAN,
      ENCODING_WINANSI, ENCODING_HOST のいずれか、
      あるいはユーザー定義の encoding 名を指定する。
      ((|embed|)) には (({true}))/(({false})) を指定するが、
      今はまだ使われない。
--- setfont(font, size)
      使用フォントを ID ((|font|))、サイズ ((|size|)) のフォントに設定する。
--- get_font
      現在設定されているフォントの ID を返す。
--- get_fontname
      現在設定されているフォントの名前を返す。
--- get_fontsize
      現在設定されているフォントのサイズを返す。

=== テキスト関係
--- show(text, [x, y])
      文字列 ((|text|)) を書き込む。座標 (((|x|)), ((|y|))) が指定された時は、
      そこへ移動してから文字列を書き込む。
--- continue_text(text)
      現在の行に改行を加えて、次の行に文字列 ((|text|)) を書き込む。
--- set_text_pos(x, y)
      テキストを書き込む位置を座標 (((|x|)), ((|y|))) に設定する。
--- stringwidth(text, font, size)
      ID ((|font|))、サイズ ((|size|)) のフォントを使った場合の
      文字列 ((|text|)) の幅を返す。
--- set_leading(leading)
      テキストのベースライン間隔を ((|leading|)) に設定する。
--- set_text_rise(rise)
      テキストのベースラインと描画位置との間の距離を ((|rise|)) に設定する。
--- set_horiz_scaling(scale)
      水平方向の縮尺を ((|scale|)) % に設定する。
--- set_text_rendering(mode, clipping)
      テキストのレンダリングモードを ((|mode|)) に設定する。((|mode|)) として
      指定できるのは FILL_TEXT, STROKE_TEXT, FILL_AND_STROKE_TEXT,
      INVISIBLE_TEXT のいずれか。((|clipping|)) に (({true})) を指定すると
      クリッピングを行う。
--- set_text_matrix(a, b, c, d, e, f)
      テキストの変換行列を
      (((|a|)), ((|b|)), ((|c|)), ((|d|)), ((|e|)), ((|f|))) に設定する。
--- set_char_spacing(space)
      文字間隔を ((|space|)) に設定する。
--- set_word_spacing(space)
      単語間の間隔を ((|space|)) に設定する。
--- show_boxed(text, x, y, width, height, mode, reserved)

=== グラフィック/設定関係
--- setdash(black, white)
      破線の長さと間隔をそれぞれ ((|black|))、((|white|)) に設定する。
--- setpolydash(dash)
      破線のパターンを配列 ((|dash|)) で設定する。((|dash|)) が長さ 0 の
      配列である場合は実線になる。
--- setflat(flat)
      flatness parameter を ((|flat|)) に設定する。
--- setlinejoin(join)
      折れ線の角の描画方法を ((|join|)) に設定する。((|join|)) として
      指定できるのは JOIN_MITER, JOIN_ROUND, JOIN_BEVEL のいずれか。
--- setlinecap(cap)
      線の端の描画方法を ((|cap|)) に設定する。((|cap|)) として指定できるのは
      CAP_BUTT, CAP_ROUND, CAP_SQUARE のいずれか。
--- setmiterlimit(limit)
      miter limit を ((|limit|)) に設定する。
--- setlinewidth(width)
      線の幅を ((|width|)) に設定する。
--- set_fillrule(rule)
      塗りつぶしの方法を ((|rule|)) に設定する。((|rule|)) として指定できるのは
      FILL_WINDING, FILL_EVENODD のいずれか。
--- save
      現在のグラフィック関係の設定を保存する。
--- restore
      グラフィック関係の設定を、一番最近保存したものに戻す。
--- initgraphics
      グラフィック関係の設定を、初期設定に戻す。
--- translate(x, y)
      座標原点を (((|x|)), ((|y|))) に設定する。
--- scale(x, y)
      座標系を水平方向、垂直方向にそれぞれ ((|x|)), ((|y|)) だけ拡大／縮小する
--- rotate(phi)
      座標系を角度 ((|phi|)) 度だけ回転する。
--- skew(alpha, beta)
--- concat(a, b, c, d, e, f)
--- setmatrix(a, b, c, d, e, f)

=== グラフィック/path 関係
--- moveto(x, y)
      ポイントを (((|x|)), ((|y|))) に移動する。
--- lineto(x, y)
      現在のポイント位置から (((|x|)), ((|y|))) まで線を引く。
--- curveto(x1, y1, x2, y2, x3, y3)
      現在のポイント位置から (((|x3|)), ((|y3|))) までベジエ曲線を引く。
      (((|x1|)), ((|y1|)))、(((|x2|)), ((|y2|))) にはベジエ曲線の
      controll points を指定する。
--- circle(x, y, r)
      中心座標 (((|x|)), ((|y|)))、半径 ((|r|)) の円を描く。
--- arc(x, y, r, alpha1, alpha2)
      中心座標 (((|x|)), ((|y|)))、半径 ((|r|)) で角度 ((|alpha1|)) 度から
      ((|alpha2|)) 度までの円弧を反時計回りに描く。
--- arcn(x, y, r, alpha1, alpha2)
      中心座標 (((|x|)), ((|y|)))、半径 ((|r|)) で角度 ((|alpha1|)) 度から
      ((|alpha2|)) 度までの円弧を時計回りに描く。
--- rect(x, y, width, height)
      左下角の座標が (((|x|)), ((|y|))) で幅 ((|width|))、高さ ((|height|))
      の長方形を描く。
--- closepath
      現在のポイント位置から path の開始点まで線を引いて path を閉じる。
--- stroke
      現在の path を（実際に）描く。
--- closepath_stroke
      現在の path を閉じてから描く。
--- fill
      現在の path で閉じられた平面を塗りつぶす。
--- fill_stroke
      現在の path で閉じられた平面を塗りつぶし、線も描く。
--- closepath_fill_stroke
      現在の path を閉じて、その閉じられた平面を塗りつぶし、線も描く。
--- endpath
      現在の path を（閉じずに）終わらせる。
--- clip
      現在の path を clipping path として用いる。

=== グラフィック/色関係
--- setgray_fill(gray)
      fill color を値 ((|gray|)) のグレースケールに設定する。
--- setgray_stroke(gray)
      stroke color を値 ((|gray|)) のグレースケールに設定する。
--- setgray(gray)
      fill color、stroke color 両方を値 ((|gray|)) のグレースケールに設定する。
--- setrgbcolor_fill(red, green, blue)
      fill color を (((|red|)), ((|green|)), ((|blue|))) の RGB 値に設定する。
--- setrgbcolor_stroke(red, green, blue)
      stroke color を (((|red|)), ((|green|)), ((|blue|))) の RGB 値に
      設定する。
--- setrgbcolor(red, green, blue)
      fill color、stroke color 両方を (((|red|)), ((|green|)), ((|blue|))) の
      RGB 値に設定する。
--- setcolor(type, color, c1[, c2, c3, c4])
      ((|color|)) に (({"gray"})) を指定すると値 ((|c1|)) のグレースケールに、
      (({"rgb"})) を指定すると (((|c1|)), ((|c2|)), ((|c3|))) の RGB 値に、
      (({"cmyk"})) を指定すると (((|c1|)), ((|c2|)), ((|c3|)), ((|c4|))) の
      CMYK 値に、
      (({"spot"})) を指定すると ID ((|c1|))、tint ((|c2|)) のスポットカラーに、
      (({"pattern"})) を指定すると ID ((|c1|)) のパターンに設定する。
      ((|type|)) には色設定の対象として、
      (({"fill"}))、(({"stroke"})) あるいは (({"both"})) を指定する。
--- makespotcolor(name, len)
--- begin_pattern(width, height, xstep, ystep, type)
--- end_pattern
--- begin_template(width, height)
--- end_template

=== イメージ関係
--- open_image_file(type, filename, [str_par, int_par])
      画像ファイル ((|filename|)) を開いてその画像の ID を返す。
      ((|type|)) には画像フォーマットを文字列で指定する。
--- close_image(image)
      ID ((|image|)) の画像を close する。
--- place_image(image, x, y, scale)
      ID ((|image|)) の画像を座標 (((|x|)), ((|y|))) に縮尺率 ((|scale|)) で
      描画する。
--- add_thumbnail(image)
      ID ((|image|)) の画像をサムネイルに追加する。
--- open_CCITT(filename, width, height, reverse, k, black)
      CCITT ファイル ((|filename|)) を開いてその画像の ID を返す。
--- get_image_width(image)
      ID ((|image|)) の画像の幅を返す。
--- get_image_height(image)
      ID ((|image|)) の画像の高さを返す。

=== ハイパーテキスト・リンク関係
--- add_bookmark(text, parent, open)
      現在のページを、((|text|)) をタイトルとして bookmark に登録し、
      その ID を返す。((|parent|)) に既存の bookmark の ID を指定すると、
      ネストした bookmark になり、0 を指定するとトップレベルに登録される。
--- set_transition(type)
      現在のページの transition の種類を ((|type|)) に設定する。((|type|)) は
      TRANSIT_NONE, TRANSIT_SPLIT, TRANSIT_BLINDS, TRANSIT_BOX,
      TRANSIT_WIPE, TRANSIT_DISSOLVE, TRANSIT_GLITTER, TRANSIT_REPLACE
      のいずれか。
--- set_duration(duration)
      transition の duration を ((|duration|)) に設定する。
--- attach_file(llx, lly, urx, ury, fname, description, author, mimetype, icon)
      file attachment を (((|llx|)), ((|lly|)))、(((|urx|)), ((|ury|))) の
      2点を対角とする領域に張り付ける。((|icon|)) は
      ICON_GRAPH, ICON_PAPERCLIP, ICON_PUSHPIN, ICON_TAG のいずれか。
--- add_note(llx, lly, urx, ury, contents, title, icon, open)
      タイトル ((|title|))、内容 ((|contents|)) の注釈を
      (((|llx|)), ((|lly|)))、(((|urx|)), ((|ury|)))
      の2点を対角とする領域に張り付ける。((|icon|)) は
      ICON_COMMENT, ICON_INSERT, ICON_NOTE, ICON_PARAGRAPH,
      ICON_NEWPARAGRAPH, ICON_KEY, ICON_HELP のうちのいずれか。
      ((|open|)) として (({false})) を指定すると最初がアイコン化された
      状態になる。
--- add_pdflink(llx, lly, urx, ury, fname, page, dest)
      別の PDF ファイル ((|fname|)) の ((|page|)) ページへのリンクを張る。
--- add_launchlink(llx, lly, urx, ury, fname)
      別の任意の種類のファイル ((|fname|)) へのリンクを張る。
--- add_locallink(llx, lly, urx, ury, page, dest)
      同じ PDF ドキュメントの ((|page|)) ページへのリンクを張る。
--- add_weblink(llx, lly, urx, ury, url)
      URL ((|url|)) の Web page へのリンクを張る。
--- set_border_style(style, width)
      全ての注釈の border style を ((|style|)) に設定する。
      ((|style|)) は BORDER_SOLID, BORDER_DASHED のいずれか。
--- set_border_color(red, green, blue)
      border color を (((|red|)), ((|green|)), ((|blue|))) の RGB 値に
      設定する。
--- set_border_dash(black, white)
      border line の dash style を設定する。引数は (({((<setdash>))})) と同じ。


= PDF::Constants module
PDF クラスに関する定数が定義してある。

--- MAJORVERSION
      PDFlib の major version 番号。
--- MINORVERSION
      PDFlib の minor version 番号。
--- VERSIONSTRING
      PDFlib の version を表す文字列。
--- A0_WIDTH
--- A0_HEIGHT
--- A1_WIDTH
--- A1_HEIGHT
--- A2_WIDTH
--- A2_HEIGHT
--- A3_WIDTH
--- A3_HEIGHT
--- A4_WIDTH
--- A4_HEIGHT
--- A5_WIDTH
--- A5_HEIGHT
--- A6_WIDTH
--- A6_HEIGHT
--- B5_WIDTH
--- B5_HEIGHT
--- LETTER_WIDTH
--- LETTER_HEIGHT
--- LEGAL_WIDTH
--- LEGAL_HEIGHT
--- LEDGER_WIDTH
--- LEDGER_HEIGHT
--- P11X17_WIDTH
--- P11X17_HEIGHT
      それぞれの紙の横、縦の長さ

=end
