- PR -

Applet Labelクラスにて縦書きの仕方

投稿者投稿内容
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-22 12:40
SVGにおいて、writing modeで書き出し方向を指定できるので、Apache Batikのコードを追いかけてみましたが、複雑すぎて断念しました。残念。切腹。

こうじえん
会議室デビュー日: 2004/04/29
投稿数: 4
投稿日時: 2004-06-23 03:15
こうじえんです。

引用:

かずくんさんの書き込み (2004-06-22 12:40) より:
SVGにおいて、writing modeで書き出し方向を指定できるので、Apache Batikのコードを追いかけてみましたが、複雑すぎて断念しました。残念。切腹。



これ、私も追いかけました
Batikでは、SVGFont(http://www.steadystate.com/)というライブラリが使われているようです。
ちょっと見たところ、このライブラリはPure JavaなTrueTypeフォントローダでして、フォントコレクションも扱えるみたいです。
ですので、例えば"@MS明朝"のような縦書きフォントも処理できるのではないでしょうか(試してませんが)。

[追記]
フォントローダって書きましたが、レンダリングもやってくれたような・・・
(未確認です

[ メッセージ編集済み 編集者: こうじえん 編集日時 2004-06-23 03:19 ]
こうじえん
会議室デビュー日: 2004/04/29
投稿数: 4
投稿日時: 2004-06-23 09:59
こうじえんです。

引用:

シュンさんの書き込み (2004-06-22 11:34) より:

なるほど、そういう問題があるのですか。気が付きませんでした。
OSが縦書きフォントを提供していても、JVMではそのまま使用できない、という
ことなら、グリフ毎に適切にアフィン変換してドロー、というベタな手段しか
ないでしょうか?




そうですね。文字によって回転させたり、位置を移動させたりと、それが一番現実的な対応ではないかと思います。
いっきゅうさんの示していただいた「縦やオラ!」もソースを覗いてみたところ文字毎に回転や位置移動を行っていました。

それか、前の投稿で書いたSVGFont(http://www.steadystate.com/)を使ってみるのも手かと思います。(かずくんさんの書き込みがあるまで、SVGFontのことをすっかり忘れてました
記憶があいまいですが、以前アプレットに組み込んだときはうまく使えてたはずです。私の場合アプレットでの実装でしたので、性能問題で組み込みは見送りましたが・・
(間違ってたらごめんなさい)


[ メッセージ編集済み 編集者: こうじえん 編集日時 2004-06-23 10:03 ]

スキルアップ/キャリアアップ(JOB@IT)