jsReport不呈现自定义字体

时间:2017-02-21 05:27:57

标签: jsreport

我一直在我的开发机器上成功渲染jsreport PDF。但是,当在测试服务器上运行jsreport时,PhantomJS会回退使用默认字体。知道如何解决或排除故障吗?

我正在使用Handlebars和PhantomJS。开发机器规范:64位Win10上的节点v4.4.5上的jsReport 1.0.7。测试服务器规范:64位Win2012 R2服务器上的节点vx.x.x上的jsReport 1.0.7

重现的步骤:

1)将字体上传到jsReport

fonts uploaded to jsreport

选择后,jsReport建议使用如下: {#image MavenPro-Black @ encoding = base64}

2)将“快捷方式”添加到数据文件

{
    "assets": {
   "MavenPro-Black": "{#image MavenPro-Black}",
   "MavenPro-Bold": "{#image MavenPro-Bold}",
   "MavenPro-Medium": "{#image MavenPro-Medium}",
   "MavenPro-Regular": "{#image MavenPro-Regular}",
   "jquery": "{#image jquery}"
 },
  ……
}

3)在报告中使用资产

<head>
   <script src="{{assets.jquery}}"></script>
   <style>
       /* Common Classes */        
       @font-face {
        font-family: 'Maven Pro';
        src: url({{assets.MavenPro_Regular}}) format('truetype');
    }

1 个答案:

答案 0 :(得分:0)

它在您的本地工作的原因是因为您可能已安装此字体。它无法在服务器上运行的原因是因为您的代码中存在拼写错误:

您的数据包含属性MavenPro-Regular,但在模板中,您可以使用{{assets.MavenPro_Regular}}访问它。您只需将数据中的-更改为_即可。

工作示例
https://playground.jsreport.net/studio/workspace/SklZyycYg/9

提示1 :使用text配方并打印原始输出以解决此类问题。您会立即看到字体的url未填充。

提示2 :您应该考虑使用jsreport assets功能嵌入字体而不是图片扩展名。您可以在说明here找到演示如何使用它。

修改 资产扩展是默认安装的一部分,从版本1.3.0开始可以被认为是稳定的