ただの画像を作成するには、ImageMagickというツールがありますが、
	印刷に関係する図形や文字を作成するには、適していません。
	ページ記述言語であるPostScriptを利用することが出来れば、印刷にも利用できます。
	なお、PostScriptで作成したものをImageMagickに変換するには、
	GhostScriptというツールがありますが、日本語等の2バイト文字への扱いが不完全です。
	使用したPostScript::Simpleモジュールのバージョンは0.07でした。
	CPANには登録されていませんが、Windowsであれば、ppmからインストールできます。
はじめに
	PostScriptは、ページ記述言語です。
	これを利用することで、様々な図形などを記述することが出来ます。
	座標や単位についての解説は、また後述しますが、
	基本的に左下を0,0とし、右上に向かうほど大きくなります。
	なお、PostScripの画像は、ImageMagickを利用して以下のコマンドでpng画像に変換してあります。
	また、画像はトリミングしてありますので、ご注意ください。
	一部オプションは文章の説明のみとさせていただいております。
convert sample.ps -trim sample.png
	平行移動や回転、拡大縮小の使い勝手はあまりよくないといういか、
	まだ未実装のようです。(バージョン0.07現在)
	ただ、EPSファイルの埋め込みが出来ますので、その機能が必要で使用しました。
	なお、モジュールで使用している変数に直接追加することで、補うことが出来ます。
	末尾の改行を忘れると、PostScriptとして記述エラーになることがありますので、
	必ず記述しておくようにしましょう。
$ps -> {'pspages'} .= "1.2 1 scale\n";
空のファイルを作成する
何も表示されない空のファイルを作成します。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> output( 'sample.ps' ); # ファイル保存
直線を描く
	線を引くには、始点と終点を指定します。
	太さと色は、指定しなくても可能です。
	引数は左から「始点のx座標」「始点のy座標」「終点のx座標」「終点のy座標」です。
	また、色を直接指定することもできますが、継承されるので注意が必要です。
	引数は先のものに、「r色の10進表記」「g色の10進表記」「b色の10進表記」を加えます。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> setlinewidth( 0.01 );   # 線の太さを指定
$ps -> setcolour( 255, 0, 0 ); # 線の色を指定
$ps -> line( 1, 1,  3, 3 );             # 直線を描く
$ps -> line( 2, 1,  1, 2,  0, 0, 255 ); # 色を指定して直線を描く
$ps -> output( 'sample.ps' ); # ファイル保存
このようになります。

png画像、146×146ピクセル
折れ線を描く
折れ線を描くには、2通りの方法が用意されています。
一本ずつ個別に指定する
	直線を引いた後に次の座標を指定します。
	lineメソッドを利用しないままlinextendメソッドを呼び出すと、警告が表示されます。
	太さと色は、指定しなくても可能です。
	引数は継続して線を描く、「次のx座標」「次のy座標」です。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> setlinewidth( 0.01 );   # 線の太さを指定
$ps -> setcolour( 255, 0, 0 ); # 線の色を指定
$ps -> line( 1, 1,  3, 3 ); # 直線を描く
# 続きの線を描く
$ps -> linextend( 2, 3 );
$ps -> linextend( 3, 2 );
$ps -> output( 'sample.ps' ); # ファイル保存
このようになります。

png画像、146×146ピクセル
一度に指定する
	折れ線を描くには、直線を引いた後に次の座標を指定します。
	lineメソッドを利用しないままlinextendメソッドを呼び出すと、警告が表示されます。
	太さと色は、指定しなくても可能です。
	引数は、「始点のx座標」「始点のy座標」「終点のx座標」「終点のy座標」です。
	平行移動させるには、「offset => [ (x座標), (y座標) ]」オプション、
	塗り潰すには「filled => 1」オプション、
	回転させるには、「rotate => (角度)」オプションもあります。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> setlinewidth( 0.01 );   # 線の太さを指定
$ps -> setcolour( 255, 0, 0 ); # 線の色を指定
$ps -> polygon( 1, 1,  2, 3,  3, 2, 2, 1, 1, 3 ); # 折れ線を描く
$ps -> output( 'sample.ps' ); # ファイル保存
このようになります。

png画像、146×146ピクセル
四角形を描く
	線を描くのと同じように、四角形を構成する始点と終点を指定します。
	太さと色は、指定しなくても可能です。
	引数は、「始点のx座標」「始点のy座標」「終点のx座標」「終点のy座標」です。
	塗り潰すには「filled => 1」オプションがあります。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> setlinewidth( 0.01 );   # 線の太さを指定
$ps -> setcolour( 255, 0, 0 ); # 線の色を指定
$ps -> box( 1, 1,  3, 3 );     # 四角形を描く
$ps -> output( 'sample.ps' ); # ファイル保存
このようになります。

png画像、146×146ピクセル
円を描く
	円を描くには、中心と半径を指定します。
	太さと色は、指定しなくても可能です。
	引数は、「中心のx座標」「中心のy座標」「半径の長さ」です。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> setlinewidth( 0.01 );   # 線の太さを指定
$ps -> setcolour( 255, 0, 0 ); # 線の色を指定
$ps -> circle( 2, 2,  1 );     # 円を描く
$ps -> output( 'sample.ps' ); # ファイル保存
このようになります。

png画像、146×146ピクセル
孤を描く
	孤を描くには、中心と半径、そして開始角と終了角を指定します。
	太さと色は、指定しなくても可能です。
	引数は、「中心のx座標」「中心のy座標」「半径の長さ」「開始角度」「終了角度」です。
	角度は右が始点、つまり座標では「(中心のx座標) + (半径の長さ), 中心のy座標」になります。
	塗り潰すには「filled => 1」というオプションがありますが、
	あらかじめ孤を描いておかないと利用できないなど、使い勝手がよろしくありません。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> setlinewidth( 0.01 );     # 線の太さを指定
$ps -> setcolour( 255, 0, 0 );   # 線の色を指定
$ps -> arc( 2, 2, 1,  0,  270 ); # 孤を描く
$ps -> output( 'sample.ps' ); # ファイル保存
このようになります。

png画像、146×146ピクセル
文字を描く
	文字を書くには、フォントの指定が必要になります。
	日本語を扱う場合には、特にフォントに関する知識が必要となります。
	画像に変換する場合には、GhostScriptの設定が必要です。
	インストールしたままの状態では、フォントが見つからないという警告が表示され、
	画像に変換できませんので、注意してください。
	設定の方法については、別に機会にいたします。
	フォントの太さを指定するメソッドが別にありますので、線の太さを指定するメソッドは必要ありません。
	配置を指定する「align => (left/center/right)」オプションと、
	回転を指定する「rotate => (角度)」オプションがあります。
use PostScript::Simple;
$ps = new PostScript::Simple(papersize => "A4",
                            colour => 1,
                            eps => 0,
                            units => "in");
$ps -> newpage; # ページ宣言
$ps -> setcolour( 255, 0, 0 );   # 線の色を指定
$ps -> setfont( 'MS-Mincho-90ms-RKSJ-H', 36 ); # フォントをエンコード方法なども含めて指定
$ps -> text( 1, 1, 'ぺんラボ' );               # 文字はShift_JISで指定
$ps -> output( 'sample.ps' ); # ファイル保存
このようになります。

png画像、140×32ピクセル
解説していないメソッドについて
	以下のメソッドについては、
	モジュールの使い方というよりもPostScriptの解説になりますので、
	このページではただいま解説は行っておりません。
	詳しくは、PostScriptの解説を行っているサイトや、PostScript::Simpleモジュールをご覧下さい。
- newpage
- putput
- get
- geteps
- circletext
- curve
- curveextend
- newpath
- moveto
- importepsfile
- importeps
更新履歴
- 2008-06-22
- 一部のメソッドについて解説を追加
- 2008-06-15
- 公開
