我有一个用于将 svg 转换为 pdf 的 java 程序。在那个 svg 文件中,我给了 Myriad Pro Light 作为样式,在转换为 pdf 之后,字体又出现了别的东西。谁能建议我如何以编程方式配置字体样式。
问问题
883 次
1 回答
0
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();
}
于 2012-10-22T08:30:20.130 回答