0

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

我正在使用 Handlebars 和 PhantomJS。开发机器规格:64 位 Win10 上 Node v4.4.5 上的 jsReport 1.0.7。测试服务器规范: jsReport 1.0.7 on Node vx.xx on 64 bit Win2012 R2 Server

重现步骤:

1)上传字体到jsReport

上传到 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');
    }
4

1 回答 1

0

它在您的本地工作的原因是因为您可能已经安装了这种字体。它无法在服务器上运行的原因是因为您的代码中有错字:

您的数据包括属性MavenPro-Regular,但在模板中您使用它访问它{{assets.MavenPro_Regular}}。您只需要更改数据-即可_,它应该可以工作。

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

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

提示 2:您应该考虑使用jsreport 资产功能来嵌入字体而不是图像扩展。你可以在这里找到演示如何使用它的描述。

Edit Assets 扩展是默认安装的一部分,自版本 1.3.0 起可以被认为是稳定的

于 2017-02-21T15:57:28.217 回答