【问题标题】:How do I get the CSS fonts to work with this Grails PDF rendering plug-in?如何让 CSS 字体与这个 Grails PDF 渲染插件一起使用?
【发布时间】:2013-05-27 09:14:43
【问题描述】:

我正在使用 Grails 渲染插件来生成 PDF。

我想在我的 PDF 中包含 CSS 以很好地呈现它。我在rendering plugin website上找到了一个例子

我将下面的 CSS 放在打印媒体中,以便它适用于 PDF,但这不适用于我。我也不知道如何将字体从 Arial 更改为另一种字体。谁能给我解释一下?

插件使用带有此 CSS 的 Arial 字体:

@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;
}

【问题讨论】:

    标签: css grails pdf-generation rendering gsp


    【解决方案1】:

    您需要 arialuni.ttf 而不仅仅是 arial.ttf 在这里下载:http://www.findthatfonts.com/search-2683324-hTTF/fonts-download-search-engine-ARIALUNI.ttf.htm

    然后

    你必须给你的@font-face 一个这样的字体家族名称:

    @font-face {
    font-family: "Font-Name";
      src: url(path/to/font.ttf); // you have to add your font.ttf file to the server in a folder like assets/css/fonts or something.
      -fs-pdf-font-embed: embed;
      -fs-pdf-font-encoding: cp1250;
    }
    
    body {
      font-family: "Font-Name", Arial, sans-serif; // you called your font Font-Name in the @font-face so now you can use it as Font-Name everywhere else in you css.
    }
    

    否则,您的 arialuni.ttf 没有名称,因此您无法在 css 的其他 div 中使用它。

    【讨论】:

    • 感谢您的回复。您只是在谈论一种特定的 arial 字体,我需要一些通用的解决方案,可以应用于 css 中的任何导入字体。
    • 没关系,你可以改变字体名。 url 必须与服务器上的字体具有完全相同的名称。字体系列名称可以不同。
    • 我之前尝试过同样的事情。当我在浏览器上打开我的模板时它工作正常,但当我将我的 gsp 模板下载为 pdf 时它不起作用。
    • 否,如果您将模板下载为 pdf,则字体不再工作,因为它在您的服务器上。下载后字体不再可用,因为那时您在本地工作。
    • 那么我可以将自己的字体放入 pdf 中吗?
    【解决方案2】:

    下一个对我有用:

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

    -fs-pdf-font-encoding 应该设置在Identity-H 中。 在它之后你可以添加类似的东西

     body {
        font-family: 'Calibri';
     }
    

    【讨论】:

    • 你用渲染插件吗。
    【解决方案3】:

    你给字体取什么名字并不重要,只要你为你在@font-face括号之间提供的src选择一个名字,比如font-family: "SomeName";。 现在,您可以使用 font-family: "SomeName" 在任何地方使用该字体。

    【讨论】:

    • 感谢您的回复。我以前尝试过同样的事情。当我在浏览器上打开我的模板时它工作正常,但当我尝试将我的模板下载为 pdf 时它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    相关资源
    最近更新 更多