0

iTextは、個々のグリフに基づく自動フォント選択をサポートしているようです。これは、に含まれているフォントライブラリで特定のグリフを検索FontSelectorし、リストの上位に定義されているフォントライブラリに存在しない場合は、別のフォントライブラリから文字を選択することで機能します。

非常に包括的な文字セットを備えた「ArialUnicodeMS」などの大規模なUnicodeフォントライブラリを選択することで、アジアおよびラテン文字セットをサポートするようにJasperでフォント拡張を構成できました。しかし、そのような見栄えの良い図書館は高価なライセンスの対象となります!! 当然のことながら、関連する作業量を考慮すると...中国語とラテン語の両方をサポートする単一のフリーフォントライブラリは、一般に、効果的な漢字レンダリングに対応するために作成され、その結果、ラテン文字の美しさが損なわれます;)

最後の質問です。jasperでiTextの自動フォント選択機能を利用するためのメカニズムはありますか?

4

1 に答える 1

-1

私が理解していることから; アプリケーションに「Arial Unicode MS」を提供する代わりに、ユーザー独自のフォントを使用したい場合。

public class FontList extends ArrayList<String>
{
    public FontList()
    {
        for (final String fontName : GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames())
        {
            final Font f = new Font(fontName, Font.PLAIN, 10);
            //first character in CJK area
            if (f.canDisplay('\u4E00'))
            {
                add(fontName);
            }
        }
    }
}

新しい FontList は、中国語、日本語、韓国語で使用可能なすべてのフォントのリストを提供します。

「最適な」フォントを「自動的に」選択するには、さらにロジックが必要です。その名前に「Arial」を探して、優先度を高くすることができます。「梅」と「WenQuanYi」そして最後に「Dialog」へ

どちらを使用するかをユーザーに選択させるのが最善かもしれません。利用できるフォントがない場合は、フォントのインストール方法についてアドバイスをください

于 2012-06-28T20:13:04.287 に答える