フォントを読み込む

# ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — フォントを読み込む

### 説明

ps_findfont ( resource `$psdoc` , string `$fontname` , string `$encoding` [, bool `$embed` = false ] ) : int

あとで使用するために、フォントを読み込みます。読み込んだフォントを実際に利用するためには、 ps_setfont() で設定しなければなりません。 文字の間隔を計算するため、この関数は adobe フォントメトリックファイルを必要とします。 ページの内部で読み込まれたフォントは、 そのページ内でのみ有効となります。ドキュメント全体で使われるフォントは、 最初の ps_begin_page() の実行より前に読み込まれなければなりません。 ページとページの間で ps_findfont() が呼ばれた場合は、それ以降のページでフォントが有効になります。

afm ファイルの名前は、 `fontname`.afm でなければなりません。 フォントを埋め込む場合は、フォントのアウトラインを含む `fontname`.pfb が存在しなければなりません。

最初のページを処理する前に ps_findfont() をコール際、 postscript ヘッダが出力されます。ここには、ドキュメント全体に適用される BoundingBox が含まれます。 通常は、BoundingBox を設定するのは最初に ps_begin_page() がコールされたときで、これは ps_findfont() をコールした後になります。 したがって、ps_findfont() のコール時にはまだ BoundingBox が設定されておらず、警告が発生してしまいます。 こうなることを避けるため、ps_findfont() をコールする前に ps_set_parameter() をコールし、BoundingBox を設定しておくべきです。

### パラメータ

`psdoc`

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

`fontname`

  フォントの名前。

`encoding`

  ps_findfont() は、`encoding` で渡されたファイルを読み込もうと試みます。 エンコーディングファイルは、 dvips(1) で使われるものと同形式です。 そこにはフォントエンコーディングベクタ（現在は利用されていませんが、 存在する必要があります）が含まれており、また afm ファイルから 生成されたリゲチャのリストを拡張するための拡張リゲチャが含まれています。

  `encoding` は `NULL` または空文字列とすることも可能で、 その場合はデフォルトエンコーディング（TeXBase1）が用いられます。

  encoding が builtin と指定された場合は、 エンコード処理は行われずにフォント固有のエンコーディングがそのまま用いられます。 これは、記号フォントを扱う場合に便利です。

`embed`

  0 より大きい値を設定すると、フォントがドキュメントに埋め込まれます。 これを使用するには、フォントのアウトライン (.pfb ファイル) が必要です。

### 返り値

成功した場合にフォントの ID を、失敗した場合にゼロを返します。 ID は正の数値です。

### 参考

- ps_begin_page() - 新しいページを開始する
- ps_setfont() - 以降の出力で用いるフォントを設定する