PHP Conference Nagoya 2025

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page新しいページを開始する

説明

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

新しいページを開始します。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_findfont()ps_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 を返します。

参考

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top