2017-02-21 89 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

好吧,升級到最新,它已資產擴展默認安裝.... –