用Java渲染Sinhala unicode字体

时间:2011-07-12 11:25:34

标签: java windows-7 unicode fonts

我正在制作一个unicode僧伽罗语 - 英语翻译。当我打印一个字体大小<1的Sinhala unicode字母时100,字母未正确呈现。但是当我使用字体大小&gt; 100,所有字母都顺利呈现。我找不到为什么会这样。另一方面,所有Sinhala unicode字体都做同样的事情。这不是我使用的字体的错误。 An Example is shown here

请帮帮我。

1 个答案:

答案 0 :(得分:0)

我不知道Java在Windows 7上使用自己的字体呈现。所以它应该是一个Windows错误但是如果是这样的话,你会在所有Windows应用程序中看到问题 - 但你只能看到它Java的。

您可能想尝试Java 2D API。例如,使用140px渲染字体并将Graphics2D缩放0.5以获得70px字体。

[旧答案]

你不是说哪个操作系统,但我的猜测是这是在Linux上。如果是这种情况,则可能是因为FreeType中的“字体提示”。

基本上,如果字体变得“太小”而无法呈现,则真实类型文件可以包含“渲染提示”。在您的示例中,您可以看到大字体具有平滑边缘,但小示例更加方形边缘。你可以看到像素;消除锯齿应该可以防止这种情况。

所以我的猜测是你是Font Hinting专利的受害者。该专利已于去年到期。尝试为您的系统找到更新版本的“freetype”。