縦書きフォントがないのはつらいんですよ

たとえばWindowsでは、縦書き表示するための専用のフォント(@から始まるやつ)を指定すればおしまいです。あとは表示位置を調整すればいいだけ。んで、今回のターゲットはケータイJava。

ケータイJavaのベースであるJ2ME/CLDC+MIDPでは、Graphics#drawStringというメソッドがありますが、これはもう横書きしか想定してへんのとちゃうんと言わんばかりのAPI仕様となってます。で、ことケータイに限ってはフォントの種類自体がありません。書体は実質1種類です。当然縦書き専用フォントなんて期待もできません。

つーことで、ちまちま縦向けに修正する必要があるわけです。はじめは半角文字だけ回転させればいいかなぁと思ってたんですが(com.j_phone.util.GraphicsUtil#drawRegionで回転可能)、実はそうでもないらしく、たとえば"「"は回転する必要がある、"ぁ"は表示位置をずらす必要がある、"。"も表示位置をずらす必要がある、などを考えないといけなかったわけです。ああめんどい。

テキストビューアを書籍を読むためのものとして使うためには、さらに追い出し・追い込み・ぶら下げの各種禁則処理もいるわけですが、ここまでくると読み込み時の処理にまで手をつけないといけなくなるため、ここは見送り。回転・表示位置ずらしの必要のある文字一覧は「縦やオラ! for Java」のソースを参考にさせてもらいました。ありがとうございます。。

このブログ記事について

このページは、らるるが2004年9月27日 06:39に書いたブログ記事です。

ひとつ前のブログ記事は「WinXPで窓を閉じた直後数秒フリーズする場合」です。

次のブログ記事は「Mobile Hotmailer」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0