[PHP-users 21385]PDF の Unicode 出力について
kk_msd_net @ yahoo.co.jp
kk_msd_net @ yahoo.co.jp
2004年 4月 20日 (火) 15:50:23 JST
はじめまして
本日、php-usersに入れてもらった者です。
Redhat7.2+apache-1.3.23+php-4.2.2+Pdflib-4.0.2+Postgres7.2の環境化で
PDFをUnicodeで出力しようとしているのですが、うまくいかず悩んでいます。
お知恵を拝借させてください。
データベースは以下のようにUNICODEで作成してます。
Name | Owner | Encoding
----------------+----------+----------
testdb | testuser | UNICODE
PHPコードはUTF-8で保存しています。
現状、PHPからのDBへの登録、登録したものをDBから読み込みPHPに表示はできます。
PDF出力時にUNICODEからSJISに変換した場合、正常に表示できます。
このことにより、UNICODEで取得できているのですが、そのままPDFにUNICODEで
出力すると文字化けするのは設定の問題でしょうか?それとも他に原因があるのでしょうか?
以下に、テスト時に使用しているモジュールを記述します。
$sv = "192.168.1.2";
$dbname = "testdb";
$user = "testuser";
$pass = "testuser";
$pdf = pdf_new();
$fname = "test.pdf";
pdf_open_file($pdf, '../pdf/' .$fname);
pdf_begin_page($pdf, 595, 842);
$fontj = pdf_findfont($pdf, "HeiseiMin-W3", "90ms-RKSJ-H", 1);
if($fontj){pdf_setfont($pdf,$fontj,7);}
$conn = pg_connect("host=$sv dbname=$dbname user=$user password=$pass") or die("接続エラー");
$sql = "SELECT COLUMN_A FROM TABLE_A where COLUMN_B = 'A';";
$res = pg_query($conn, $sql);
if(!$res){die("データ抽出エラー");}
print pg_fetch_result($res, 0, 0);
$strName = pg_fetch_result($res, 0, 0);
// 文字列を書き込む
pdf_show_xy($pdf, "TEST---".$strName , 0, 800);
pdf_show_xy($pdf, "TEST(SJIS←UTF-8 )---".mb_convert_encoding($strName, 'SJIS', 'UTF-8' ) , 0, 760);
pg_close($conn);
pdf_end_page($pdf);
pdf_close($pdf);
PHP-users メーリングリストの案内