我认为我有类似的问题,或者至少有一个紧密的解决方案。
**详细说明:
**
基本上我正在关注这篇文章,以便根据模板获取pdf文件:http://www.icodeya.com/2012/09/grails-how-do-i-render-gsp-files-in-pdf.html。一切都很顺利,直到有一些不同于拉丁语的人物 - 例如西里尔语或葡萄牙语。我能够绕过这个问题:
...
def renderer = new ITextRenderer()
FontResolver resolver = renderer.getFontResolver()
**.getFontResolver.addFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED_SUBSET);**
...
但pdf文件中的文字格式错误 - 原始文字:
快狐
,在pdf文件中是:
qu i ck fo x
。文本中会出现一些额外的空格。
我找到的所有设置都更改为使用UTF-8:gsp,text,html文件。 预先感谢, IVO!
答案 0 :(得分:1)
根据插件文档:
解决方案是注册要与特定字体一起使用的字体 编码。因为我们正在使用XHTMLRenderer,所以我们可以在其中指定 CSS而不是以编程方式注册。
所以放在你的gsp页面中,以下是
<style>
@font-face {
src: url(path/to/arial.ttf);
-fs-pdf-font-embed: embed;
-fs-pdf-font-encoding: cp1250;
}
body {
font-family: "Arial Unicode MS", Arial, sans-serif;
} </style>
如果还不够,请加入:grails-app \ services \ grails \ plugin \ rendering \ pdf \ PdfRenderingService.groovy
...
def renderer = new ITextRenderer()
FontResolver resolver = renderer.getFontResolver()
**.getFontResolver.addFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED_SUBSET);**
...