2017-04-11 154 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')