2017-04-11 69 views
0

我得到了一些Django HTML模板以及一些經過編碼的CSS部分。XML2PDF在URL開始時拋出異常/

@font-face { 
    font-family:"Arial"; 
    src: url(/static/fonts/Arial.ttf); 
} 
@font-face { 
    font-family:"Arial_Black"; 
    src: url(/static/fonts/Arial_Black.ttf); 
} 

當我寫的URL與 '/' xml2pdf引發此錯誤如下前綴CSS:

異常類型:AttributeError的

異常值: 'NoneType' 對象有沒有屬性' startswith」

在行

/home/www/env/lib/python2.7/site-packages/xhtml2pdf-0.1b3-py2.7.egg/xhtml2pdf/util.py在初始化

line: 621. if self.mimetype.startswith('text'): ... 

如果我刪除了「 /',那麼xml2pdf開始工作,但模板無法加載字體文件。 我該如何做這項工作?

回答

1

真正的問題最終在我深入挖掘時最終將其展示爲mime類型問題。

我在檢查所有步驟時發現問題。在步驟,xml2pdf試圖找到該文件的MIME類型,它看起來像Python 2.7.6具有.TTF文件

>>> from mimetypes import MimeTypes 
>>> import urllib 
>>> url = urllib.pathname2url('static/fonts/Arial.ttf') 
>>> mime = MimeTypes() 
>>> mime_type = mime.guess_type(url) 
>>> print mime_type 
(None, None) 
>>> url = urllib.pathname2url('wsgi.py') 
>>> mime_type = mime.guess_type(url) 
>>> print mime_type 
('text/x-python', None) 

我下面的線沒有附加MIME類型描述的功能來糾正問題:

import mimetypes 
mimetypes.add_type('application/font-ttf', '.ttf')