2013-01-23 36 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%确定的。