[PHP-users 10117] pdfで日本語表示
Yuuji Yamashita
php-users@php.gr.jp
Sat, 14 Sep 2002 22:05:34 +0900
山下と申します。
現在以下のようなスクリプトで、pdfを出力するテストを行っています。
「ABCDE テスト」という出力をさせたいのですが、
「ABCDE e X g」と化けて表示してしまいます。
<?php
$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author", "TEST");
pdf_begin_page($pdf, 612, 792); //A4
$font = pdf_findfont($pdf, "HeiseiKakuGo-W5", "EUC-H", 0);
pdf_setfont($pdf, $font, 16);
pdf_set_text_pos($pdf, 72, 720);
pdf_show($pdf, "ABCDE テスト");
pdf_end_page($pdf);
pdf_close($pdf);
$document = pdf_get_buffer($pdf);
$length = strlen($document);
$filename = "myfirstpdf.pdf";
header("Content-Type: application/pdf");
header("Content-Length: " . $length);
header("Content-Disposition: inline; filename=" . $filename);
echo($document);
unset($document);
pdf_delete($pdf);
?>
そこで、スクリプトそのものをEUCで書き、php.iniの設定で
mbstring.internal_encoding = SJIS
↓ ~~~~
mbstring.internal_encoding = EUC-JP
~~~~~~
と設定を変更すると「ABCDE テスト」と期待した出力が得られました。
しかし今度は、db2と連携させているphpファイルが
動かなくなってしまいました。
db2と連携させているphpファイルも動作し、
しかも、pdfも文字化け無しに出力できるようにするには
どのようにすればよいでしょうか?
各文字コードです。
(a)db2デフォルト文字コード(?) :SJIS
(b)db2と連携phpファイル :SJIS
(c)db2と連携後phpで出力されるテキスト:SJIS
(d)pdf出力phpファイル :SJIS
(c)は最終的にflashに渡すため、SJISでないといけません。
--[環境]--
RedHat Linux 7.1
php4.2.2
apache1.3.26
pdflib-4.0.3
ibmdb2
--[php.ini]--
[mbstring]
mbstring.internal_encoding = SJIS
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.script_encoding =auto
output_buffering = On
output_handler = mb_output_handler
以上よろしくお願いします。
Yamashita
cah36920@pop07.odn.ne.jp