Java 6下字体显示不正确

13
我正在使用IcePDF库在Web应用程序中显示PDF文件。在Java 6 (jdk1.6.0_37 32位)下,字体显示不正确(被一些默认字体替换)。

Java 6

而在Java 7下则正常。

Java 7

我需要在我的应用程序中使用Java 6,您知道这种行为的原因吗?

1
生成这两个PDF的IcePDF代码是否在同一台计算机上运行(已安装Java6和Java7)? - Jason Sperske
1
是的,我正在我的开发电脑上在JBoss下运行该应用程序,并且我只是从JRE 6切换到了JRE 7。 - Odarpi
1
根据这个链接的幻灯片38和39:http://donaldojdk.files.wordpress.com/2011/11/55j7.pdf,有一些新的字体类型得到支持。也许正在工作的字体是OpenType/CFF字体,在Java6中它会回退到默认字体。 - Jason Sperske
2
第一张幻灯片使用了错误的字体字形,但是正确的字体度量 - 即每个字符的位置与Java 7完全相同。这表明PDF本身定位了每个字符,或者字体在Java 6中部分加载,但不完全。很抱歉这不是一个答案,但可能有助于调试。 - Andrew Alcock
1
你可以提供用于插图的PDF链接吗? - Kurt Pfeifle
你可以在这里找到它:http://www.fsa.gov.uk/static/pubs/cp/cp12-37.pdf - Odarpi
3个回答

3

你可以随时将字体导入到你的库中。

你可以尝试使用以下方法:

Font font = Font.createFont(Font.TRUETYPE_FONT, fontStream);

下一步,
GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(font);

同时,

new Font("nameOfFont", Font.BOLD, 13)

2

1
以下步骤可能会对您有所帮助。我希望您正在使用RedHat操作系统。
  1. 将所需的字体文件复制到下面版本的\Java\jre6\lib\fonts\目录中。
  2. 将Java和JRE设置为此版本并进行测试。

    java版本“1.6.0_15” Java(TM) SE Runtime Environment (build 1.6.0_15-b03) Java HotSpot(TM) Server VM (build 14.1-b02,mixed mode)

我预计您的问题将得到解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接