[PHP-users 11449] Re: bookmarkの日本語表示

Urata Masaru php-users@php.gr.jp
Wed, 13 Nov 2002 11:34:59 +0900


ごめんなさい、本文が送信できていなかったようです。

本当は[PHP-users 11445]の返信ですが、さっき入会したばかりなので
つなげられません。

PDFのしおりですが、アドビのリファレンスを見ると、
"FEFF"の後に、ユニコードの文字列を16進数でつなげるように、
とあります。("A"なら"FEFF0041")
そこで、過去ログのリンク先のPearlのコードを参考にして
以下のコードで試して見ました。

1行目で全角スペースを追加してますが、これがないと
どうも不安定(たまに文字化けする)のです。

数値に変換したりpackしたり、冗長な感じですが
一応動作しました。
改善法をご指摘いただければ幸いです。



$str = $title." ";

$str = mb_convert_encoding($str, "UTF-16");

$hexstr = "";
for ($i=0; $i < strlen($str); $i++) {
  $hexstr .= sprintf("%02X", ord(substr($str, $i, 1)));
}

$data = "FEFF". $hexstr;
$pack = pack("H*", $data);
$bookmark = pdf_add_bookmark ($pdf, $pack);

--
Urata Masaru