我在通过 fop 将 svg 中的 truetype 字体渲染为 pdf 时遇到问题。
在最终的 pdf 中,字体是 Times New Roman,而不是我所期望的 truetype 字体。
文档的主要字体系列使用 Type 1 字体,并且还使用了我生成的字体规格,并且这些字体显示正确。我认为字体的 truetype 版本只是为过去的图表添加的。
奇怪的是,这在一个阶段工作,似乎已经停止工作,我现在无法让它恢复工作,因为我不明白它最初是如何工作的。为了尝试让它恢复工作,我经历了 Java 6、Java 5 和 FOP 0.95 和 0.93 以及最新的 FOP 主干的不同组合,但都没有成功。即使在 fop 生成中启用了完整的跟踪,我也没有看到字体被 Times New Roman 取代,但我认为这是因为 Batik 对此渲染负责。
我已经运行了一些示例 Java 代码,并且 AWT 似乎正确地看到了 TrueType 字体,我相信这是 Batik 正在使用的。
我也尝试在 fop.xconf 文件中使用字体替换,但这似乎没有效果。在 fop.xconf 中,我只定义了 Type 1 字体和另一种在 pdf 中正确处理的 True Type Font Zapfdingbats。我是否还应该在此处添加其他 truetype 字体,但检查我们的版本历史,它似乎过去并不存在。
有什么我在这里遗漏的,因为我认为蜡染会采用 windows ttf 字体并渲染它,但这似乎不起作用。任何帮助将不胜感激。谢谢,撞坏了