Javaでは作るのが困難なものを挙げるスレ

このエントリーをはてなブックマークに追加
563デフォルトの名無しさん
印刷のバグ \uFF00の方は原因わかったから昨日バグ報告しといたっす。
報告んとき、>>447 のコードを一部変更して使われてもらったっす。

オレが見つけた原因ってのは
sun.print.PathGraphics#getGlyphToCharMapForFont(Font2D) の
字形データ番号とコードポイントのテーブル作るループの終了条件が
上位サロゲートの始点(\uD800)になってる事っす。
これだと \uD800 以降のコードポイントを持つ文字は字形に結びつけられなくなるっす。
PathGraphics は drawString で描画する文字列の中に字形に結び付けられてない文字が
1文字でも現れると Outline 使って描画するようになってるっす。

ループの終了条件を \uFFFF に、サロゲートエリアは if文ではじくように修正して
rt.jar に仕込んだら >>447 使って PrimoPDF に出力してもちゃんと選択できるようになったっす。