11

HTML/CSS/JS/PHP を使用してすべてのフォント ファイルの文字を表示する方法があるかどうか疑問に思っています。

考えられるすべての「Arial」文字を表示したいとしましょう。またはカスタム @font-face フォントの文字。

4

4 に答える 4

5

フォントは、0 から 0x10FFFF までのコードを使用して、幅広い Unicode 文字をマップできます。したがって、すべてをランダムなフォントで本当に見たい場合は、他の回答で提案されているようにループで実行すると、実際に問題が発生します。Arial の「単純な」例であっても、マップされた最下位の文字は U+0020 であり、最上位は U+FB02 です。ただし、その範囲内のすべてがマップされるわけではないため、ループでそれを行うと、多くの空が発生します。言うまでもなく、それはかなり遅いでしょう。

必要なことを効果的に行うには、フォント ファイルをクラックして開き、cmap テーブルを調べ、マップされた文字のリスト (範囲ではない) を取得する必要があります。あなたのセットアップが何であるかはわかりませんが、おそらくFreeTypeなどのようなものでこのサーバー側を行うことができます.

于 2012-09-28T15:06:52.690 に答える
1

GD ライブラリの imagettftext()関数を試してみることをお勧めします。マニュアルの例:

// Set the content-type
header('Content-Type: image/png');

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The string with character sets
for($i=0; $i<256; $i++){ 
     $text.= chr($i); 
} 

// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
于 2012-09-28T13:25:15.770 に答える
0

for ループで chr 関数を使用するだけです。存在しない文字がいくつかありますが、すばやく簡単です。必要に応じて、開始と終了の ascii 値をより具体的に指定できます。

for($x=1;$x<=255;$x++) {
    echo chr($x) . "&nbsp;"; 
}

次に、jquery を使用して、フォント フェイスを動的に変更することができます。

于 2012-09-28T13:00:17.663 に答える
0

同様の状況があり、.svg ファイルを解析して解決しました。したがって、ファイルが SVG にない場合は、ttf を SVG に変換して解析し、使用可能な文字の Unicode を取得できます。

于 2014-06-12T15:09:17.940 に答える