【发布时间】:2011-12-20 10:34:55
【问题描述】:
我一直在尝试插入 Unicode 字符 ∇ 或 ▽,因此它会显示在 Apache FOP 生成的 PDF 中。
这是我到目前为止所做的:
-
1234563运营商。代码是
找到正确的代码后,我必须选择一种包含必要字形的字体,并且 Adobe PostScript 和 PDF 规范指定了每个 PostScript 解释器和 PDF 阅读器必须可用的 Base-14 Font Character Mapping,所以我在列表中搜索并且字体Symbol包含∇
&#x2207,(没有字体包含▽▽丢弃)-
在搜索之后,我认为我应该在 xsl:fo 中使用的结果代码是:
<fo:block font-family="Symbol"> ∇ </fo:block> 问题是当它生成 PDF 时,结果不是我预期的“∇”,而是显示“?”,我读到当它不能显示字符时,通常显示“#”,但我的代码显示“?”。
我使用的是 Apache fop 0.95,我怀疑是那个版本导致了问题,我应该更新到 1.0,但目前是生产中使用的版本,团队负责人说很难正在升级它。
&#x2207;∇NABLA,我也可以使用&#x25BD;▽一个向下的三角形。
所以这就是问题所在,除了版本之外还有其他问题吗?可能是我忘了做的傻事吗? 如何使用 Apache fop 显示 Unicode 字符?
【问题讨论】:
-
我在 FOP 1.0 和 FOP .95 中都尝试了您的
fo:block代码。它在两个版本中都运行良好。您可以访问 stderr 吗?如果存在字体或字形问题,您应该会收到警告。 -
@DevNull 实际上,我还没有在 FOP 1.0 中测试过,只是 FOP .95,我开始学习这个,你能告诉我如何访问 stderr 以查看它是否是字体或字形问题?
-
您可能在 Eclipse 等 IDE 中进行开发。每当您运行代码时,输出都会发送到控制台;默认情况下(至少在 Eclipse 中)会在该控制台中将 stderr 显示为红线。
-
可能您的 FOP 配置不包含适合替代 Symbol 字体的字体,或者您的 PDF 阅读器的 Symbol 字体存在问题。
-
@gioele 我同意你的第一个说法,也许 FOP 配置不包括合适的字体,我刚刚结束使用 svg 来绘制它,我做了所有这些研究以避免使用 svg,但在最后我无法解决它,顺便说一句,我不再使用 xsl:fo。
标签: xml xsl-fo apache-fop