2013-01-23 68 views
0

我試圖使用自定義字體在我嘗試從HTML呈現PDF。@ font-face自定義字體與xhtml2pdf爲django無法正確呈現

我已經在HTML中試過了,字體顯示出來,所以字體的路徑必須正確,並且可能正確使用了。字體的類型是.ttf,根據http://xhtml2pdf-base.googlecode.com/hg/doc/xhtml2pdf-en.html上的文檔,它應該呈現,但不是。

這裏就是我有我的風格標籤:

@font-face { 
    font-family: "Swiss"; 
    src: url("/static/font/swiss.ttf"); 
} 
body { 
    font-family: "Swiss"; 
    font-size: 12px; 
} 

和HTML:

<body> 
    asdf 
</body> 

我試過很多東西,剝離報價關閉字體鏈接和字體的家庭,我的body包裝在HTML標籤內,所以html格式正確。在網頁中渲染時,一切都呈現良好,但在轉換爲PDF時不能正確渲染。任何人都可以幫助我發現錯誤?

回答

2

最好的方法是使用回調來使用文件系統路徑獲取字體。更準確,你也可以wan't擊中Web服務器爲每個資源(資源的意義,字體,圖像等)

pisa.CreatePDF(html.encode("UTF-8"), file_object , encoding='UTF-8', 
       link_callback=fetch_resources) 

def fetch_resources(uri, rel): 
    find_file_in_path_using_uri 
    return path 

順便說一句,我覺得你的問題是你有沒有做過收集靜態的,所以字體不是真的在/static/font/swiss.ttf。我的意思是他們不在django之外,xhtml2pdf在django之外。我不是100%確定的。