使用Reportlab生成pdf,一切都很顺利。遇到一个引发以下错误的问题...
raise ValueError('paraparser: syntax error: %s' % message)
ValueError: (u"paraparser: syntax error: invalid attribute name alt attrMap=['height', 'src', 'valign', 'width']", '\nparagraph text u\'<para><p><strong>
这似乎是由 ReportLab 不喜欢的字符引起的,因为我可以使用“转义”来绕过它,但这会导致段落忽略格式,例如
<P>
和 <strong>
有没有快速识别相关角色的方法?或者也许有另一种方法来解决这个问题?
def getDescription(eventid):
res = tq.get("api/events/%s/" % eventid)
ed = res['data']['description']
if not ed:
logger.debug("No description exists for event %s. Skipping this section." % eventid)
return()
else:
formattedDesc = ed.replace('\n', '<br/>')
logger.debug("Description of event is \n %s" % formattedDesc)
#Story.append(Paragraph(escape(formattedDesc), styles["TQ-Description"]))
#Changed to the following to prevent an error thrown by XX reports. Need to figure out why.
Story.append(Paragraph(escape(formattedDesc), styles["TQ-Description"]))
我可能迟到了(2017),但解决方法可能是通过将“alt”添加到reportlab/platypus/paraparser.py来扩大可能的属性名称的字典。
增加属性的字典是_imgAttrMAp:
_imgAttrMap = {
'src': ('src', None),
**'alt': ('alt', None),**
'width': ('width',_numpct),
'height':('height',_numpct),
'valign':('valign',_valignpc),
}
希望这有帮助。