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

在Grails的PDF渲染插件中嵌入字体

严瑞
2023-03-14

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

@font-face {
   font-family: 'Helvetica';
   src: url('${grailsApplication.config.grails.serverURL}/fonts/HelveticaNeueLTCom-BdCn.ttf');
   -fs-pdf-font-embed: embed;
   -fs-pdf-font-encoding: Identity-H;
}

但它不起作用。

共有3个答案

慕俊迈
2023-03-14
匿名用户

问题可能是您的url值被'包围,而不是

它们之间的区别在于,尽管在Groovy中,字符串文字可以同时使用这两种文字,但只有被“包围的文字才能创建GString,GString对${}

孟佑运
2023-03-14

@font-face{src:url(${grailsApplication.config.app.serverUrl}/arialuni.ttf)-fs pdf字体嵌入:嵌入-fs pdf字体编码:Identity-H;}

这对我很有效。

吴城
2023-03-14

字体嵌入需要遵循以下步骤。这对我很有效。试着告诉我你的反馈

>

  • 插件中存在的PdfRenderingService类应为此字体模拟进行编辑,如下所示。

        protected doRender(Map args, Document document, OutputStream outputStream)           
        {
          def renderer = new ITextRenderer()
    
       // add the real font path from the server to be deployed to. 
       //I have it in the assets folder of my project
            def path=servletContext.getRealPath("/")+"assets/HelveticaNeueLTCom-BdCn.ttf"
        ITextFontResolver fontResolver=renderer.getFontResolver();
    
        //add the encoding and embedded types to the font
        fontResolver.addFont(path,BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    
        configureRenderer(renderer)
        renderer.setDocument(document, args.base)
        renderer.layout()
        renderer.createPDF(outputStream)
        outputStream.close();
    }
    

    在您的模板文件中添加以下代码

     @font-face {
        font-family: "Helvetica";
        src:    url("${grailsApplication.config.grails.serverURL}/assets/HelveticaNeueLTCom-BdCn.ttf") format("truetype"),
                url("${grailsApplication.config.grails.serverURL}/assets/HelveticaNeueLTCom-BdCn.woff") format("woff"),
                url("${grailsApplication.config.grails.serverURL}/assets/HelveticaNeueLTCom-BdCn.svg#HelveticaNeueLTCom-BdCn") format("svg");
        -fs-pdf-font-embed: embed;
        -fs-pdf-font-encoding: Identity-H;
    }
    

  •  类似资料:
    • 我刚刚安装了grails渲染插件,并想使用它来生成PDF文件。我创建了简单的模板,但此插件不渲染检查输入元素。当我将输入写为以下内容时: 我收到以下错误消息: 当我添加结束标记时,如下所示: 我在PDF中没有任何检查元素。我不是说,我想要在交互模式下进行检查,但是,我想要一个看起来像复选框的图像

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

    • 我正在尝试使用渲染插件将一个简单的模板保存到pdf,但无论我怎么尝试都无法让它工作。我所需要的只是让它在服务器上的文件系统中保存一个文件并重定向到不同的页面。 此时,pdf模板不需要任何参数,因为它只打印hello world。一旦我开始工作,我会尝试添加一些数据。 我收到错误消息,说如果没有附加“/”,我需要指定控制器。但我试图添加这一点,但没有任何效果。另外,我不知道它需要哪个控制器,因为我已

    • 问题内容: 我刚刚安装了grails渲染插件,并希望将其用于生成PDF文件。我已经创建了简单的模板,但是没有任何CSS样式即可将其导出。如果仅从grails渲染模板,则页面将在Web浏览器中显示所有样式。 所以,我的问题是-在PDF生成过程中如何正确包含CSS文件? 我的模板: 而且我的webui.css中具有样式.odd,但是它不适用于该行。 任何帮助,将不胜感激。 Edit1:我发现以以下方式

    • 使用以下代码,我得到了这样的坏输出: %PDF-1.4%���� 4.0目标 而不是pdf。代码如下: 如何在浏览器中获取实际的pdf输出。

    • 我想将视图渲染为pdf,并尝试使用Grails渲染插件2.0.3 我尝试了最简单的gsp-file开始: 在控制器中: 最后是: 我错过了什么?或者它不应该与这个版本的grails(3.2.4)一起使用? 也许有更好的插件可以使用?