我有一个用于将svg转换为pdf的java程序。在那个svg文件中,我已经将Myriad Pro Light作为样式,在转换为pdf后,字体将会出现其他内容。任何人都可以建议我如何以编程方式配置字体样式。
答案 0 :(得分:0)
Batik依靠AWT字体来渲染SVG文本。如果在系统上找不到字体或者没有注册,你最终会得到一个默认的“sans serif”字体。
您必须确保系统上安装了“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();
}