ps_begin_page
(PECL ps >= 1.1.0)
ps_begin_page — 新しいページを開始する
説明
新しいページを開始します。width
や
height
というパラメータを見ると
いかにもページ単位でサイズを変えられるように思えますが、PostScript
ではこれは不可能です。最初に ps_begin_page()
を呼んだ際に指定されたサイズが、ドキュメント全体に適用されます。
2 回目以降に呼ばれた場合はこのパラメータは意味を持たず、
単に新しいページが作られるだけです。しかし、もしあなたが PostScript ドキュメントを
PDF に変換しようと考えているのなら話は別です。
この関数はドキュメントの各ページごとに pdfmark を設定するので、
PDF に変換した後はページごとにサイズを変えることができます。
PostScript はさまざまなページサイズを知らないので、pslib ではドキュメントの各ページに対してバウンディングボックスを設定します。 このサイズは PostScript ビューアによって評価され、 ドキュメントヘッダの BoundingBox より優先されます。 左下角が (0, 0) ではない BoundingBox を設定すると、 予期せぬ結果を引き起こすことがあります。なぜなら、 ページ単位のバウンディングボックスは常に左下角が (0, 0) であり、 これが全体の設定より優先されるからです。
個々のページの情報はカプセル化して保存されています。どういうことかというと、 あるページで設定した情報のほとんどは次のページに引き継がれないということです。
最初の ps_begin_page() 呼び出しまでに一度も
ps_findfont() が呼び出されていなかった場合は、
PostScript ドキュメントのヘッダが出力され、
バウンディングボックスが最初のページのサイズに設定されます。
バウンディングボックスの左下角は (0, 0) に設定されます。もしすでに
ps_findfont() が呼ばれていた場合は既にヘッダが出力されてしまっており、
ドキュメントに適切なバウンディングボックスが設定されていないことになります。
このようなことを避けるために、ps_findfont() や
ps_begin_page() を実行する前にはいつも
ps_set_info() を実行し、
BoundingBox
や Orientation
の値を設定しておくべきです。
注意:
pslib のバージョン 0.2.6 まででは、 ps_set_info() によって事前に設定されていたり ps_findfont() が事前にコールされていない限り、 この関数は常に BoundingBox および Orientation を上書きします。
パラメータ
psdoc
-
ps_new() が返す、postscript ファイルのリソース ID。
width
-
ピクセル単位のページの幅 (例: A4 の場合は 596)。
height
-
ピクセル単位のページの高さ (例: A4 の場合は 842)。