Apache FOP:在 PDF 中显示 UTF-8 字符(不嵌入?)
我正在尝试使用 FOP 导出包含 UTF-8 字符的 PDF,最好不需要嵌入字体。
以下代码:
<fo:block font="10pt Helvetica" text-align="justify" space-after="10pt" space-before="8pt" keep-with-previous="auto" keep-together.within-page="auto">
<fo:block font-weight="bold" color="gray">Summary</fo:block>
<fo:block text-indent="1em" keep-with-previous="always">
<fo:block text-indent="1em" space-before="4pt">
<fo:block text-indent="1em" space-before="4pt">私はガラスを食べられます。それは私を傷つけません
</fo:block>
</fo:block>
</fo:block>
</fo:block>
在 PDF 中生成 ####################。我知道这个问题: http://xmlgraphics.apache.org/fop /faq.html#pdf-characters
当我进入“文档属性”->“字体”时,Helvetica 字体会以“编码:ANSI”列出。有办法改变这个吗?
如果我要嵌入,在无法访问 Helvetica.ttf 的情况下执行此操作的最佳方法是什么?我尝试过使用 DejaVuSans,但最终我用方块代替了 # 符号。
请注意,这不是从命令行一次性使用(这将是一个开始),而是对现有应用程序的扩展。我正在尝试支持 UTF-8 字符而不需要太复杂。
I'm trying to use FOP to export a PDF with UTF-8 characters, preferably without needing to embed the font.
The following code:
<fo:block font="10pt Helvetica" text-align="justify" space-after="10pt" space-before="8pt" keep-with-previous="auto" keep-together.within-page="auto">
<fo:block font-weight="bold" color="gray">Summary</fo:block>
<fo:block text-indent="1em" keep-with-previous="always">
<fo:block text-indent="1em" space-before="4pt">
<fo:block text-indent="1em" space-before="4pt">私はガラスを食べられます。それは私を傷つけません
</fo:block>
</fo:block>
</fo:block>
</fo:block>
produces #################### in the PDF. I'm aware of the issue: http://xmlgraphics.apache.org/fop/faq.html#pdf-characters
When I go under Document Properties->Fonts, the Helvetica font is listed with 'Encoding: ANSI'. Is there a way to change this?
If I were embedding, what would be the best way to do so without having access to Helvetica.ttf? I've tried using DejaVuSans, but I end up with squares in place of the # signs.
Note that this is not a one-time use from the command line (that would be a start), but an extension to an existing app. I'm trying to support UTF-8 characters without too much complexity.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AFAICT,PDF 规范中包含的字体仅包含 ISO- 中的字符拉丁语-1。如果您想要的字符不属于附件 D:字符集和编码中定义的字符,那么您需要嵌入该字体。
AFAICT, the fonts included in the PDF specification only include characters from ISO-Latin-1. If you want a character that falls outside of those defined in Annex D: Character Sets and Encodings, then you are expected to embed the font.