既存の PDF にブックマークを挿入していますが、アクセント付きの "c" に問題があります。例があります(例で使用されている文字セットはUTF-8です):
$name = "Ruční nářadí";
$name = chr(254).chr(255).iconv('UTF-8', 'UTF-16BE', str_replace(array('(',')','/'),array('\\(','\\)','\\/'),$name));
$fh = fopen('pdfmark.txt', 'w');
fputs($fh, "[/Title ({$name}) /Page 1 /OUT pdfmark\n");
fclose($fh);
$command = "gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf final.pdf pdfmark.txt; mv out.pdf final.pdf";
exec($command);
問題は、アクセント付きč
が最終的な PDF のブックマークにĊ
(アクセントの異なる大文字) として表示されることです。私は自分の言語 (チェコ語) で使用されている他のアクセント付き文字を試しましたが、これ以外はすべて問題ありません。
この問題を解決する手がかりをありがとう。
編集 (2013-02-01):
使用した GhostScript のバージョンは 9.06 (2012-08-08) です。結果の PDF ファイルを表示するために Adobe Reader 11.0.1 を使用しています。
まだ考え中です...何かPDFで指定されたエンコーディングである必要はありますか?ソース PDF は私の手に負えず、私はそれについて何も知らないからです。その場合、GS または pdfmark を使用してそうする方法はありますか? ブックマークのエンコーディングが Unicode であれば問題ないと思いましたが、間違っているかもしれません。
編集 (2013-02-05):
GS の pdfwrite または Acrobat にバグがあるようです。詳細については、GS のバグ追跡を参照してください。解決後、ここに解決情報を書きます。