[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 メーリングリストの案内