ps_begin_page

新しいページを開始する

説明

bool ps_begin_page(resource $psdoc, float $width, float $height)

新しいページを開始します。widthheight というパラメータを見ると いかにもページ単位でサイズを変えられるように思えますが、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_findfontps_begin_page を実行する前にはいつも ps_set_info を実行し、 BoundingBoxOrientation の値を設定しておくべきです。

注意:

pslib のバージョン 0.2.6 まででは、 ps_set_info によって事前に設定されていたり ps_findfont が事前にコールされていない限り、 この関数は常に BoundingBox および Orientation を上書きします。

パラメータ

psdoc

ps_new が返す、postscript ファイルのリソース ID。

width

ピクセル単位のページの幅 (例: A4 の場合は 596)。

height

ピクセル単位のページの高さ (例: A4 の場合は 842)。

戻り値

成功した場合に true を、失敗した場合に false を返します。

参考

  • ps_end_page
  • ps_findfont
  • ps_set_info