【问题标题】:reportlab ValueError: Invalid color value 'initial'reportlab ValueError:无效的颜色值“初始”
【发布时间】:2012-03-30 13:47:26
【问题描述】:

ReportLab/xhtml2pdf 在 HTML 中以这种样式位崩溃时一直运行良好:

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

除了修补它的原始代码之外,还有其他方法可以解决这个问题吗?

【问题讨论】:

  • 奇怪的是,我的 windows 盒子上的相同版本不会崩溃并生成 pdf。所以:Windows7x64 - 一切都好,fedora - 不走运。
  • 我修补了 reportLab 颜色的东西,如果默认值为 null,则返回黑色的默认值 - 这暂时解决了问题,但我正在寻找更好的选择。

标签: python reportlab xhtml2pdf


【解决方案1】:

border-style: initial 值不正确。请参阅 the code 作为支持的 border-style 值的参考:

  • 隐藏
  • 点缀
  • 虚线
  • 实心
  • 凹槽
  • 山脊
  • 插图
  • 开始

【讨论】:

  • 好吧,这不正确,但是,假设您在遇到这种风格时浏览器崩溃了,您不会期望以这种方式工作,对吧。我几乎在同一个地方 - 我不管理样式,但需要完成我的报告:)
  • 浏览器旨在处理低质量/不正确的页面。 Python 模块不是(因为它使错误更难处理)。
  • 看起来我可以在生成报告时设置默认颜色和样式。还不知道怎么做。
猜你喜欢
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多