2017-02-21 88 views
0

我一直在我的开发机器上成功呈现jsreport PDFs。但是,在测试服务器上运行jsreport时,PhantomJS正在使用默认字体。任何想法如何解决或排除故障?jsReport不呈现自定义字体

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

重现步骤:

1)上传字体来jsReport

fonts uploaded to jsreport

选中时,jsReport建议使用它如下: {#image MavenPro黑@编码= 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'); 
    } 

回答

0

,它适用于本地的原因是因为你已经安装了大概这种字体。之所以无法在服务器上工作,是因为您的代码中存在拼写错误:

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

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

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

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

编辑 资产扩展是默认安装的一部分,因为1.3.0版本

+0

嗨月,1)感谢您的快速反应,可以认为是稳定的。 2)真棒产品伙计。我展示的每个人都喜欢丰富的功能集,同时保持轻量级的占用空间。 3)这是一个很好的选择。作为解决方法,我已经对Font进行了硬编码,并且在处理过程中解决了错字。 4)我确实看到了资产插件页面,但无法完成。原谅我的新手问题,但我该如何安装插件?如果它是默认安装的(我记得在某处读过),我在哪里可以找到上传按钮?我很确定我可以从那里解决问题。我会寻找错别字:-)再次感谢! –

+0

嗯....试过:npm安装jsreport资产,这可能是要走的路,但工作室已变得没有反应...将尝试以后再次排除故障.... –

+0

好吧,升级到最新,它已资产扩展默认安装.... –