2012-03-30 26 views
2

ReportLab的/ xhtml2pdf已经完美地工作到现在为止它崩溃时在HTML这种风格位:ReportLab的ValueError异常:无效的颜色值 '初始'

<p style="border-style: initial; border-color: initial; border-image: initial; 
font-family: Ubuntu-R; font-size: small; border-width: 0px; padding: 0px; 
margin: 0px;">Done:</p> 

与此错误:

File "/usr/local/lib/python2.7/dist-packages/reportlab/lib/colors.py", 
line 850, in __call__ 
    raise ValueError('Invalid color value %r' % arg) 
ValueError: Invalid color value 'initial' 

我用它通常是这样的:

 pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('UTF-8')), 
result, encoding='UTF-8', link_callback=fetch_resources) 

有没有办法克服这一点,而不是修补它的原代码?

+0

奇怪的是,我的windows系统上的相同版本不会崩溃并生成pdf。所以:Windows7x64 - 一切顺利,fedora - 没有运气。 – abolotnov 2012-03-30 20:43:01

+0

我修补reportLab颜色的东西,如果默认值为null只是返回黑色的默认值 - 这临时解决了这个问题,但我正在寻找更好的选择。 – abolotnov 2012-04-08 13:05:43

回答

2

border-style: initial值不正确。见the code作为参考用于支持border-style值:

  • 隐藏
  • 点缀
  • 虚线
  • 固体
  • 插入
  • 开头
+0

确定这是不正确的,但是,如果你遇到这种风格的浏览器崩溃,你不会希望这样工作,你会。我几乎在这个地方 - 我不管理造型,但需要我的报告:) – abolotnov 2012-03-30 13:59:08

+1

浏览器被设计来处理低质量/不正确的页面。 Python模块没有(因为它使得bug更难处理)。 – 2012-03-30 14:03:42

+0

它看起来像我可以设置默认颜色和样式,同时生成报告。现在还不能确定。 – abolotnov 2012-03-30 14:04:36

相关问题