【问题标题】:Fonts displaying incorrectly under Java 6Java 6 下字体显示不正确
【发布时间】:2013-01-01 07:57:46
【问题描述】:

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

在 Java 7 下看起来还可以。

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

【问题讨论】:

  • 生成这两个 PDF 的 IcePDF 代码是否在同一台计算机上运行(安装了 Java6 和 Java7)?
  • 是的,我在开发 PC 上的 JBoss 下运行应用程序,我只从 JRE 6 切换到 JRE 7。
  • 根据幻灯片 38 和 39:donaldojdk.files.wordpress.com/2011/11/55j7.pdf 支持一些新的字体类型。也许正在工作的字体是 OpenType/CFF 字体,而在 Java6 中它正在回退到默认字体
  • 第一张幻灯片使用了错误的字体 glyphs,但是正确的字体度量 - 即每个字符的位置与 Java 7 完全相同。这表明要么PDF 本身定位每个字符,或者字体在 Java 6 中已部分但未完全加载。抱歉,不是答案,但可能有助于调试。
  • 您能否提供用于插图的 PDF 的链接?

标签: java pdf fonts icepdf


【解决方案1】:

您可以随时将字体导入到您的库中..

你可以试试这个:

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

接下来,

GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(font);

还有,

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

【讨论】:

    【解决方案2】:

    ICEpdf Pro 支持 OpenType/CFF 字体。如果您在开源版本中遇到字体替换问题,请尝试在您的服务器实例上安装以下字体。 http://www.icesoft.org/wiki/display/PDF/Optimized+Font+Substitution

    【讨论】:

      【解决方案3】:

      以下步骤可能会对您有所帮助。我希望您在 RedHat 操作系统中获得此功能。

      1. 将所需的字体文件复制到以下构建版本的 \Java\jre6\lib\fonts\ 目录。
      2. 将 Java 和 JRE 设置为此构建并对其进行测试。

        java 版本“1.6.0_15”Java(TM) SE 运行时环境(内部版本 1.6.0_15-b03)Java HotSpot(TM) 服务器 VM(内部版本 14.1-b02,混合模式)

      我预计你的问题会解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-12
        • 1970-01-01
        • 2020-08-31
        • 1970-01-01
        • 1970-01-01
        • 2020-12-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多