PHP Australia Conference 2015

imagepsencodefont

(PHP 4, PHP 5)

imagepsencodefontフォントの文字エンコードベクトルを変更する

説明

bool imagepsencodefont ( resource $font_index , string $encodingfile )

ファイルから文字エンコードベクトルをロードし、変更します。 PostScript フォントのデフォルトベクトルは、127以上の位置には文字 がほとんどないので、英語以外の言語を使用する場合には 恐らくこの部分を変更したいと思うことでしょう。

この関数を頻繁に用いている場合には、ずっと優れた方法として 設定ファイル で ps.default_encoding が正しいエンコードファイルを指すようにして エンコード法を定義する方法があります。この場合、 自動的にロードされる全てのフォントは、正しいエンコードとなります。

パラメータ

font_index

imagepsloadfont() が返すフォントリソース。

encodingfile

このファイルの正しいフォーマットは、T1libs のドキュメントに記述されています。 T1libs には、すぐに使用できるファイルとして IsoLatin1.enc および IsoLatin2.enc が含まれています。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 imagepsencodefont() の例

<?php
// .pfb フォントファイルを読み込みます
$font imagepsloadfont('./px3l.pfb');

// T1lib に、ISO Latin 1 エンコーディングを使うよう指示します
imagepsencode($font'./IsoLatin1.enc');

// ここでフォントに対する操作をします

// フォントをメモリから開放します
imagepsfreefont($font);
?>

注意

注意: この関数は、PHP が --with-t1lib を指定してコンパイルされている場合のみ使用可能です。

add a note add a note

User Contributed Notes 2 notes

up
0
Scott Hanson
11 years ago
The t1lib-5.0.0 source includes 5 different encoding files under Fonts/enc/. For my text with German umlauts, using IsoLatin1.enc did not work, but PSLatin1.enc did the trick.
up
0
alex_marquarth at yahoo dot de
11 years ago
Because I have had problems with this function to find out that there is no result to store in a variable, a short example how to use:

$font = imagepsloadfont( "/home/www/font/Arial.pfb" );
imagepsencodefont( $font, "/home/www/font/IsoLatin1.enc" );

afterwards you can use the resource $font in each other ps function like imagepstext() or imagepsbbox().
To Top