报告实验室 - raise ValueError('paraparser: 语法错误: %s' % message) ValueError: (u"paraparser: 语法错误: 无效的属性名称 alt attrMap

问题描述 投票:0回答:1

使用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"]))
python reportlab
1个回答
0
投票

我可能迟到了(2017),但解决方法可能是通过将“alt”添加到reportlab/platypus/paraparser.py来扩大可能的属性名称的字典。

增加属性的字典是_imgAttrMAp:

_imgAttrMap = {
                'src': ('src', None),
                **'alt': ('alt', None),**
                'width': ('width',_numpct),
                'height':('height',_numpct),
                'valign':('valign',_valignpc),
                }

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.