【问题标题】:Py ReportLab append platypusPy ReportLab 追加鸭嘴兽
【发布时间】:2013-10-28 15:16:44
【问题描述】:

我尝试在 Reportlab 中构建目录(但失败了......并且没有坚持太多,而且似乎比我需要的更多......也许我将来会尝试新的尝试..)。

现在我很高兴有一些简单的文本作为文档的指南(该文档主要由一些 Pandas 生成的编号网格组成。我只是希望有一个带有网格标题的文本Reportlab 生成的 .pdf 的开头)。

我的目标看起来非常简单,就是添加两个鸭嘴兽,一个带有标题,一个带有网格,但没有成功。因此,我转向了一个更简单的目标,并尝试附加两个鸭嘴兽纯文本..但这并没有再次起作用... :-(

我的代码如下:

# settings
from reportlab.pdfgen import canvas
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import *
styles = getSampleStyleSheet()
PATH_OUT = "C:\\"
titolo = 'Test.pdf'
doc = SimpleDocTemplate( PATH_OUT + titolo )
elements0 = []
elements1 = []
elements2 = []

# 1-st platypus
elements0.append(Paragraph("The Platypus0", styles['Heading1']))
elements0.append(Paragraph("Very <i>Special</i>!", styles['Normal']))

# 2-nd platypus
elements1.append(Paragraph("The Platypus1", styles['Heading1']))
elements1.append(Paragraph("Very <i>Special</i>!", styles['Normal']))

# append them
elements2 = elements0.append(elements1)

# Write the document
doc.build(elements2)

我遇到的问题是,这显然是由于没有 len() 结果对象而严重崩溃。

您有什么建议可能对此有所帮助吗?如果我使用elements0 或elements1,一个与另一个分开,它们工作得非常顺利,但是当我尝试将一个与另一个附加时它不会。有什么建议吗?

非常感谢 :-) 法比奥。

【问题讨论】:

    标签: python append reportlab tableofcontents platypus


    【解决方案1】:

    append on list 将项目附加在适当的位置,并且不返回新列表。带有以下内容:

    elements2 = elements0.append(elements1)
    

    elements2 被赋值为 Noneelements0 现在包含一个新项目,即 elements1

    elements0[0] -> Paragraph("The Platypus0", styles['Heading1'])
    elements0[1] -> Paragraph("Very <i>Special</i>!", styles['Normal'])
    elements0[2] -> [Paragraph("The Platypus1", styles['Heading1']), Paragraph("Very <i>Special</i>!", styles['Normal'])
    

    如果要将两个文本放在一起,请使用连接

    elements2 = elements0 + elements1
    

    【讨论】:

    • :-) 太好了 .. 除了我感觉很蹩脚 :-( .. 我迷失在 Reportlab 的详细信息中... 非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多