【发布时间】:2011-11-23 10:26:03
【问题描述】:
我在将波兰字体嵌入从 HTML 转换的 PDF 时遇到问题。
我的 HTML 代码在正文中有样式:
<BODY style="font-family: Tahoma, Arial, sans-serif;font-size : 8pt;">
我尝试了两种将此类 HTML 转换为 PDF 的方法:
- 带有 htmlcleaner 的 FOP
- 带有飞碟的 iText
对于 FOP,我可以将所有使用的字体添加到其配置文件中,然后创建的 PDF 嵌入这些字体(如果字体在 HTML 中使用)。在生成的 PDF 中,我使用 Identity-H 编码的 Tahoma 字体。看起来不错 - 所有波兰字母都按预期显示。
然后我尝试使用 iText 进行这种转换:似乎更简单,因为我不需要为每个 HTML 创建转换。不幸的是,我不知道如何将使用过的字体嵌入到生成的 PDF 中。我发现的大多数示例都是从头开始创建 PDF,但我不知道如何将这些方法应用于飞碟 ITextRenderer 或转换中使用的其他对象。
我当前的代码尝试通过获取ITextFontResolver 并添加字体fs.addFont(path, true); 来在PDFCreationListener.preOpen() 中添加字体。但是我创建的所有 .pdf 都没有我想要的字体。
第二个问题是结果 PDF 没有波兰字母。飞碟或 iText 有问题吗? Acrobat 显示创建的 PDF 文档使用带有 Ansi 编码和 ArialMT 作为字体的 Helvetica。我觉得这个 Ansi 编码不好。如何设置波兰语编码(Identity-H)?
【问题讨论】:
标签: html pdf itext apache-fop flying-saucer