XML2PDF URL 以 / 开头时引发异常



我得到了一个Django HTML模板,其中包含一些编码的CSS部分。

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

当我用 CSS 编写 URL 时,前面加上"/"xml2pdf 在下面抛出此错误:

异常类型:属性错误

异常值:"NoneType"对象没有属性"startswith">

在行

/home/www/env/lib/python2.7/site-packages/xhtml2pdf-0.1b3-py2.7.egg/xhtml2pdf/util.py ininit

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

如果我删除"/",则 xml2pdf 开始工作,但模板无法加载字体文件。 我怎样才能做到这一点?

当我深入研究它时,真正的问题终于揭示了它本身是哑剧类型的问题。

我在检查所有步骤时发现了问题。在一个步骤中,xml2pdf尝试查找文件的MIME类型,看起来Python 2.7.6没有.ttf文件的MIME类型描述

>>> 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)

我附加以下行以纠正问题:

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

相关内容

最新更新