当前位置: 首页 > 知识库问答 >
问题:

Grails 2.4插件渲染跳过非拉丁字符并返回空白pdf文件

丌官晔
2023-03-14

我认为我也有类似的问题,或者至少有接近的解决方案。

**详细信息:

  1. 操作系统-windows 7(也用同样的结果尝试了一款mint 17)

**

基本上,我遵循这篇文章是为了获得基于模板的pdf文件:http://www.icodeya.com/2012/09/grails-how-do-i-render-gsp-files-in-pdf.html。一切都很好,直到有一些不同于latin1的字符——例如西里尔文或葡萄牙文。我可以绕过这个问题:

...  
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文件。提前感谢,伊沃!

共有1个答案

贺桐
2023-03-14

根据插件留档:

解决方案是注册要与特定编码一起使用的字体。因为我们使用的是XHTMLRenler,所以我们可以在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);**
... 
 类似资料:
  • 我刚刚安装了grails渲染插件,并想使用它来生成PDF文件。我创建了简单的模板,但此插件不渲染检查输入元素。当我将输入写为以下内容时: 我收到以下错误消息: 当我添加结束标记时,如下所示: 我在PDF中没有任何检查元素。我不是说,我想要在交互模式下进行检查,但是,我想要一个看起来像复选框的图像

  • 我想在PDF文档中嵌入HelveticaNeueLTCom-BdCn.ttf。我正在使用Grails渲染0.4.4插件生成PDF文件。我尝试遵循, 但它不起作用。

  • 我使用库创建一个带有文本可填充字段的PDF文档。包含多语言文本。创建PDF文档后,我在Adobe Acrobat Reader中打开它,非拉丁符号从文本字段中消失,我只看到拉丁符号,但如果我单击该字段,整个文本将可见,包括非拉丁符号。[!打开文档后的PDF文本字段] 1.[!点击后的PDF文本字段到字段] 2.对于创建PDF文档,我使用如下代码: 我试图解决这个问题,我甚至在它的博客上找到了这篇文

  • 问题是Mac OSX上的Chrome似乎在基本拉丁块中渲染类型。我确实有一个使用font-face的IE条件样式表,但是我没有将font-face用于IE以外的任何东西。我猜这可能是内部系统字体问题(错误不在我自己的系统上),但我想确定一下。 这是我此文本的CSS: 以下是 IE 的条件样式表中的 CSS: 文本如下所示:

  • 在我的主要活动中: 编辑:我在主线程上运行了网络代码,它引发了一个异常。现在为下载创建一个新的线程,它将获得示例PDF(http://www.pdf995.com/samples/PDF.PDF),并将其内容放入文件中。感谢@GreenApps!

  • 我正在尝试使用渲染插件将html文件渲染为pdf,我的控制器方法是, 和我的下载。gsp文件为, 我在BuildConfig中添加了以下依赖项。groovy文件 我收到以下堆栈跟踪, 注意:相同的代码库适用于grails 2.2.4版本,这个问题只在grails 2.5.0版本中出现