こんにちは。PHPでjpgraphを使用している者です。
日本語フォントをSetするとエラーが出ます。
エラーは以下の通りです。
”Unknoen font font family specificaion”
です。
PHPがヴァージョン4なので,jpgraphは1,7を使用しています。
index.phpにて
define('TTF_DIR', '/font');
として、サーバのFONTフォルダにTTFファイルを置いていますが
エラーが出ます。
jpgraph.phpの設定では、デフォルトで日本語がありますが
サーバ側のOSに日本語フォントが無いので
サーバスペース上にFONTというディレクトリを作り
そこにTTFファイルを置いて読み込ませようとしています。
jpgraph.phpでは、設定として、DEFINE("FF_MSGOTHIC". 44);
とその範囲指定も最高44までと変更しています。
あと、2708行目に追加で
FF_MSGOTHIC => array(FS_NORMAL=>'msgothic.ttc', FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' )
ファイル名の定義もしています。
index.phpにて
define('TTF_DIR', '/font');
のTTF_DIRの設定に問題があるのでしょうか?
FONTフォルダを認識していないような気もしています。
本当に困っていますので、どなたか教えて下さいませ。
どうぞ宜しくお願い致します。
No.1
- 回答日時:
参考になるかどうかわかりませんが・・・・・
私もかなり手こずった経験があります。
php.iniにinclude_pathの編集をして、
/usr/share/fonts/ja/TrueType/にmsttcorefontsをインストール後リンクさせて、mkfontdirとmkfontscaleを行ってjpgraph.phpのフォントdirをそこに集中させてやることで解決しました。
>あと、2708行目に追加で
ファイル名の定義はしていませんが、十分動いてます。
ちなみにFC1、php-4.3.10、jpgraph1.7です。
なんか私の文章がおかしい気もしますが・・・わかりますか?
この回答への補足
お返事有難う御座います。
ちょうど諦めようと腹をすえていた所でした。
まったく的を得たお返事で、やっと原因がわかった気がしております。
ですが、こちらの記述不足により、もう少しだけご助言頂きたく申し上げます。
こちらの環境は、WINDOWS XP PRO SP2で
サーバはレンタルなので、PHP.iniファイルを変更することは難しいかと思われます。
自分のサーバスペースへどうにか、fonts.dirファイルをUPしてみましたが
やっぱり上手くいきませんでした。
これ以外で必要な事をもう少し詳しく教えて頂きたいです。
お手数をお掛けしますが、どうぞ宜しくお願い致します。
お返事をお待ちしております。
No.2ベストアンサー
- 回答日時:
そもそも、日本語表示以外でグラフは表示できるのですよね?
windows鯖でしたか・・・・
windows鯖は使ったことがないので何ともいえないのですが。
グラフが表示できるのならば、php.ini触らなくても、フォントdirをきちんと指定してやればうまくいくと思いますが?・・・・たぶん
すいません、私は鯖もデスクトップとしても普通にLINUX使っているものでwindowsがインストールされたマシンを全く持っていないのでフォントファイルがどこにあるのかわからないです。
グラフが表示できないのなら、.htaccess使って設定を変更してみてはどうでしょう?
apacheならそこでフォルダ単位でphpも設定変更できるのですが。
グラフは正常に機能しています。
Setフォントでエラーが出ている状況です。
PCとサーバが違うところにあるので、PCのフォントを使うことはできませんが、サーバ上にすべて置いているのに認識できないでいます。
本当に弱ってしまいました。
でも、お返事頂けて大変感謝しております。
有難う御座いました。
No.3
- 回答日時:
なんでJpGraph1.7という古いバージョンを使用しているんでしょうか?
現在、PHP4用のStable branchの最新版は1.17です。
以下、1.17(UNIX環境で確認)で確認するため行った手順です。
設定ファイルであるjpg-config.incの編集だけで済みます。
1.フォント格納ディレクトリの作成
例)
/home/user/public_html/jpgraph/fonts/
2.必要なフォントを1.で作成したディレクトリに転送する
例)
MSgothic.ttf
3.jpg-config.inc:フォントディレクトリの設定(MBTTF_DIR)
1.で作成したフォント格納ディレクトリに合わせて設定する
DEFINE("MBTTF_DIR","/home/user/public_html/jpgraph/fonts/");
4.jpg-config.inc:フォントの指定を変更する。
以下のような所があるのでこれを2.で転送したフォントに合わせて修正する。
-------8<-------8<-------8<-------8<-------8<-------8<-------
// Japanese TrueType font used with FF_MINCHO, FF_PMINCHO, FF_GOTHIC, FF_PGOTHIC
DEFINE('MINCHO_TTF_FONT','ipam.ttf');
DEFINE('PMINCHO_TTF_FONT','ipamp.ttf');
DEFINE('GOTHIC_TTF_FONT','ipag.ttf');
DEFINE('PGOTHIC_TTF_FONT','ipagp.ttf');
-------8<-------8<-------8<-------8<-------8<-------8<-------
本例の場合、MSゴシックのフォント(MSgothic.ttf)を転送したので以下のように修正。
DEFINE('GOTHIC_TTF_FONT','MSgothic.ttf');
以上の設定で、JpGraphでMSゴシックを表示出来ています(Examples/listfontsex1.phpを元にMSゴシックを表示するように修正し表示されるのを確認)
参考URL:http://www.aditus.nu/jpgraph/jpdownload.php
No.4
- 回答日時:
No.3の補足
Windows環境での場合(JpGraph1.17)
1.jpg-config.inc:フォントの指定を変更する。
以下のような所があるのでこれを使用するフォントに合わせて修正する。
-------8<-------8<-------8<-------8<-------8<-------8<-------
// Japanese TrueType font used with FF_MINCHO, FF_PMINCHO, FF_GOTHIC, FF_PGOTHIC
DEFINE('MINCHO_TTF_FONT','ipam.ttf');
DEFINE('PMINCHO_TTF_FONT','ipamp.ttf');
DEFINE('GOTHIC_TTF_FONT','ipag.ttf');
DEFINE('PGOTHIC_TTF_FONT','ipagp.ttf');
-------8<-------8<-------8<-------8<-------8<-------8<-------
MSゴシックのフォント(MSgothic.ttf)について確認したので以下のように修正。
DEFINE('GOTHIC_TTF_FONT','MSgothic.ttf');
2.jpgraph.phpを修正
2728行目付近に
-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------
if ($family >= FF_MINCHO && $family <= FF_PGOTHIC) {
$f = MBTTF_DIR.$f;
} else {
$f = TTF_DIR.$f;
}
-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------
というところがあるので、以下のように修正。
-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------
if ($family >= FF_MINCHO && $family <= FF_PGOTHIC) {
$f = TTF_DIR.$f;
} else {
$f = TTF_DIR.$f;
}
-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------
以上の設定でNo.3のときと同じく、JpGraphでMSゴシックを表示出来ています(Examples/listfontsex1.phpを元にMSゴシックを表示するように修正し表示されるのを確認)
No.5
- 回答日時:
No.4の補足。
質問内容読み返したら、サーバ側に日本語フォントがないんですね。
No.4は、Windowsのfontsフォルダに日本語フォントがある場合です。
ないのでしたら、No.3で書いたUNIX環境で確認した手順でいいと思います。
この回答への補足
どうもすみません! 致命的なミスを犯してしまい
大変お手数をかけてしまいました!
jpgraphのヴァージョンは、1.17です。
いつも書き間違えないようにしていたのですが、
こちらのミスでした。
v 1.17では、ソースを書き換えないでディレクトリだけDEFINEすることで表示できるように
jpgraphが更新されていますよね。
でも表示できません。
あと、環境説明に誤りがありました。
PCとサーバは別のところにあります。
ネットを通じて接続していますので、Localのフォントを読み込むことはありません。書き損じて申し訳御座いませんでした。
ですから、サーバ側にFONTディレクトリを作って、
そこにfonts.dirとTTFファイルをUPして置き、テストしていますが
動作しません。
MSGOTHIC以外にも、デフォルトでjpgraph.phpに記載されている日本語フォントでもテストしていますが動作しません。
サーバの管理を委託しているアメリカ在住のアメリカ人のプログラマに聞いた所
jpgraph.phpのソースに変更が必要との事でした。
でも、それを変更するにはかなりの金額を要求されてしまいました(苦笑)
あと、今気になったのですが、PCとサーバが別にある場合、サーバ側にfonts.dirファイルを必ず置かなくてはいけないとの事なのですが、その他に必要なものはあるのでしょうか?
あと、DEFINEのPHP文も心配になってきました(滝汗)
DEFINE('MBTTF_DIR', 'http://***/***/***/font/');
HTTPから始まるフルパスは有効でしょうか?
もう泣きたくなってきました(泣)
どうか見捨てずに宜しくお願い致しますm(__)m
No.6
- 回答日時:
>サーバ側にfonts.dirファイルを必ず置かなくてはいけないとの事
fonts.dirは必要ありません(UNIX環境/Windows環境共に)
>DEFINE('MBTTF_DIR', 'http://***/***/***/font/');
>
>HTTPから始まるフルパスは有効でしょうか?
試してみましたが、エラーになります。
-------8<-------8<-------8<-------8<-------8<-------
1. ダウンロードしたjpgraph-1.17.tar.gzを解凍して出来たjpgraph-1.17/src(配下のファイルを含め)をjpgraphとしてサーバ上のHTMLファイル等を置く場所に転送します。
2. jpgraphディレクトリ配下にフォント用のディレクトリfontsを作成します。
3. 作成したフォント用ディレクトリにフォントを転送します。
例)
MSgothic.ttf
4. 作成したフォント用ディレクトリに以下のPHPスクリプトを作成します。
○test.php
-------8<-------8<-------8<-------8<-------
<?php print getcwd(); ?>
-------8<-------8<-------8<-------8<-------
5. 4で作成したPHPスクリプトをブラウザより実行する。
すると、フォント用ディレクトリの絶対パスのパス名が表示されます。
表示例)
D:\Apache\Apache2\htdocs\jpgraph\fonts
6. jpg-config.inc:フォントディレクトリの設定(MBTTF_DIR)
5.のPHPスクリプトの実行結果に合わせて設定する(\は/に置き換える)
DEFINE("MBTTF_DIR","D:/Apache/Apache2/htdocs/jpgraph/fonts/");
7. jpg-config.inc:フォントの指定を変更する。
以下のような所があるのでこれを3.で転送したフォントに合わせて修正する。
-------8<-------8<-------8<-------8<-------8<-------8<-------
// Japanese TrueType font used with FF_MINCHO, FF_PMINCHO, FF_GOTHIC, FF_PGOTHIC
DEFINE('MINCHO_TTF_FONT','ipam.ttf');
DEFINE('PMINCHO_TTF_FONT','ipamp.ttf');
DEFINE('GOTHIC_TTF_FONT','ipag.ttf');
DEFINE('PGOTHIC_TTF_FONT','ipagp.ttf');
-------8<-------8<-------8<-------8<-------8<-------8<-------
本例の場合、MSゴシックのフォント(MSgothic.ttf)を転送したので以下のように修正。
DEFINE('GOTHIC_TTF_FONT','MSgothic.ttf');
これでちゃんと表示されませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS Web font 会社のホームページを作成についてですが、webフォントを使用することを検討しており 4 2022/11/04 10:36
- HTML・CSS HTMLソースの質問 3 2022/07/28 13:29
- PHP アンドロイドスマホでのphp echoの文字サイズ 1 2023/05/13 15:15
- HTML・CSS HTMLで特定の文字だけ色を変えたいのですが、指定した色と違う色が反映してしまいます。 下記、「前」 5 2023/06/27 12:08
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マイクロ(μ)の文字を半角で出...
-
outlook 文字を揃えたい。tab...
-
教えてください。
-
「MS Pゴシック」と同じ幅の...
-
エクセルVBAが中国のPCでは動か...
-
英語版OSでの遊明朝、游ゴシック
-
font-family の記載方法
-
縦書きテキストボックスの表示"...
-
ワードでゴシックの文字を太く...
-
cssで英語と日本のフォント...
-
コマンドプロンプト(cmd.exe)を...
-
printf("文字列\\n")が円マーク...
-
外国語版メイリオはある?
-
このフォントはなんというフォ...
-
VB6とVB.NETでは同じフォントで...
-
WORD全角入力しても半角に...
-
Outlookのメールを送信するマクロ
-
Visual C++ 6.0 行番号の表示
-
MACでホームページが見れないと...
-
作成済みのホームページのフォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
Excel:一部のフォントでセルの...
-
MsgBoxについて
-
似ているフォント(Win⇔Mac)
-
「MS Pゴシック」と同じ幅の...
-
font-family の記載方法
-
英語版OSでの遊明朝、游ゴシック
-
縦書きテキストボックスの表示"...
-
C# Font GdiCharSet
-
エクセルVBAが中国のPCでは動か...
-
printf("文字列\\n")が円マーク...
-
メールで、榊の文字を木辺に神...
-
ワードでゴシックの文字を太く...
-
ホームページをTeraPadで日本語...
-
フォントファイル(.ttf , .otf)...
-
WORD全角入力しても半角に...
-
TTFファイル(TTCやOTFでもよい...
-
Visual C++ 6.0 行番号の表示
おすすめ情報