【问题标题】:jsReport not rendering custom fontjsReport不呈现自定义字体
【发布时间】:2017-02-23 16:53:32
【问题描述】:

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

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

重现步骤:

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');
    }

【问题讨论】:

    标签: jsreport


    【解决方案1】:

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

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

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

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

    提示 2:您应该考虑使用 jsreport assets 功能嵌入字体而不是图像扩展。您可以通过描述here找到演示如何使用它。

    编辑 Assets 扩展是默认安装的一部分,从 1.3.0 版本开始可以认为是稳定的

    【讨论】:

    • 您好,1 月,1) 感谢您的快速回复。 2)很棒的产品老兄。我展示给它的每个人都喜欢丰富的功能集,同时保持轻量级的占用空间。 3)这是一个很棒的皮卡。作为一种解决方法,我对字体进行了硬编码,并且可以修复过程中的错字。 4) 我确实看到了 Assets 插件页面,但无法完全解决。请原谅我的新手问题,但我如何安装插件?如果它是默认安装的(我记得在某处读过),我在哪里可以找到上传按钮?我很确定我可以从那里解决。我会注意拼写错误:-) 再次感谢!
    • 嗯....试过了:npm install jsreport-assets,这可能是要走的路,但是工作室变得没有响应...稍后将尝试再次排除故障....
    • 好的,升级到最新,默认安装了Asset Extension....
    • 我添加了编辑,因为哪个版本包含资产扩展且稳定。
    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2015-03-28
    • 2022-08-08
    • 1970-01-01
    • 2012-04-02
    • 2016-05-30
    相关资源
    最近更新 更多