【问题标题】:Change font in converting svg to pdf in java在java中将svg转换为pdf时更改字体
【发布时间】:2012-10-10 05:56:42
【问题描述】:

我有一个将 svg 转换为 pdf 的 java 程序。在那个 svg 文件中,我给了 Myriad Pro Light 作为样式,在转换为 pdf 之后,字体又出现了别的东西。谁能建议我如何以编程方式配置字体样式。

【问题讨论】:

  • 您能否向我们提供有关您用于转换的软件的更多详细信息?如果它允许嵌入字体,它应该公开映射工具(字体 -> 字体文件)。
  • 我没有使用任何特定的软件将svg转换为pdf,但我已经通过java程序转换了svgs。
  • 你一定是依赖图书馆什么的; java 没有任何内置的 pdf 或 svg 工具。请说明您是如何从 svg 转换为 pdf 的,以便有人可以帮助您。
  • 好的,我正在使用 apache batik 库和 lowagie 来完成这项任务。如有任何其他澄清或疑问,请联系我。

标签: java pdf fonts svg batik


【解决方案1】:

Batik 依赖 AWT 字体来呈现 SVG 文本。如果在系统上找不到该字体或未注册该字体,您最终会使用默认的“无衬线”字体。

您必须确保您的系统上安装了“Myriad pro light”字体,并且它与您的 SVG 文件中引用的字体具有完全相同的系列名称(查看 font-family 属性);如果需要,在 SVG 文件中更正它。

如果无法在系统范围内安装字体,您可以在创建 SVGDocument 实例之前在运行时注册它

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
InputStream is = new FileInputStream(new File("path_to_myriad.ttf"));
java.awt.Font font;
try {
    font = java.awt.Font.createFont(java.awt.Font.TRUETYPE_FONT, is);
    ge.registerFont(font);
} catch (FontFormatException e) {
    e.printStackTrace();
}

【讨论】:

  • 当然...但是你应该帮我做。我不知道如何在这里添加长 cmets。我什至尝试粘贴我用于参考的代码,但它没有占用长文本。怎么办?
  • 我认为最简单的方法是粘贴到新的粘贴箱中(pastebin.com
  • 我们被限制使用这个网站 pastebin.com。那么我能做什么呢?无论如何,你能告诉我你是如何在评论中粘贴代码的吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
  • 2011-05-06
  • 1970-01-01
  • 2021-04-24
  • 2013-03-07
相关资源
最近更新 更多