LinuxプラットフォームのJAVAなWebアプリケーションで中国語のPDF生成とか
色々調べたけど分かり難いね。
問題は幾つかあるんだけどどうしようもない前提に縛られているような気がする。
その前提とは
- アプリケーションサーバはLinux上で動く
- クライアントは当然WindowsのI.Eで中国語。しかも入力データは繁体字簡体字混在もあるかも。
まずはこんな感じの第一条件がある。
そして付随する条件として
更にiTextは、というかPDF生成は
- フォントを埋め込む方法
- フォントを埋め込まない方法
の2つの方法で生成するのだがこれが曲者というか、フォントを埋め込まず指定するだけでもそのライブラリだけはサーバ側に必要との事だ。
画にしてみると以下のような感じ。
+------------+ Unicode +---------------+ Unicode +------------+ | I.E |-------------->|APServer |------------->| DBServer | | |<-----+ | +-------+ | +--------- | | +------------+ PDF +--------|<--| iText |<--|<--+ Unicode +------------+ [Windows] +---+-------+---+ [Linux] [Linux]
こんな構成で今問題になっているのがiTextでのPDF生成部分である。Windowsで中国語を表示できてなおかつLinux上にライブラリがあり、なおかつUnicodeな中国語フォント・・・・。これが無い。唯一の巧妙というか頼みの綱はArial Unicode MSとっていうフォントの存在なのだが勿論これはWindowsのネイティブフォントでライセンス上Linuxで使えるか不明なのである。もう少し調べなければなるまい。他の手段としては繁体字、簡体字のそれどれのフォントを用意して(これらはiTextのサブセットにある)入力データごとに判別して、、と途方も無い事になるのでなんとかそうならないように解決したい。
しかし文字コードって嵌るね(涙