我一直在我的开发机器上成功渲染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
选择后,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');
}
答案 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开始可以被认为是稳定的