我是一个Python爱好者和reportlab新手。
我知道如何使用drawString将文本放置在页面上的特定位置,例如:
c.drawString(10,100,"欢迎来到Reportlab!")
但我不知道如何放置一个表格(只有几行长),以便该表格从与 c.drawString(10,100,"Welcome to Reportlab!") 相同的位置开始,我将如果我学会如何把桌子放在那里的话,可以放在其他地方。
我也无法弄清楚如何在同一脚本中使用drawString,因为使用画布是我知道如何使用drawString功能的唯一方法。我的 4 行画布代码(本段之后)将关闭画布/文件并创建 PDF。表代码(下文)还关闭文件并构建 PDF,并且我不知道如何使用“doc.build(elements)”行来关闭用于 drawString 操作的画布。
c = canvas.Canvas(r"e:\hellonu.pdf", pagesize=letter)
c.setFont("Courier", 9) #choose your font type and font size
c.drawString(10,60,"Welcome to Reportlab!")
c.save()
如果您能给我任何指导,我将不胜感激:(1) 如何放置表格,使其从 10,100 开始,以及 (2) 如何在同一脚本中使用 drawString。如果我的某些代码没有任何用处,请不要认为我是故意把它放在那里的;我尝试从示例中复制足够的内容,以便我的表格具有自动换行功能。
这是我一直在玩的代码:
# http://zewaren.net/site/node/139
from reportlab.lib import colors
from reportlab.lib.pagesizes import LETTER, inch, portrait
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph
from reportlab.lib.styles import getSampleStyleSheet
doc = SimpleDocTemplate(r"e:\test_report_lab.pdf", pagesize=LETTER, rightMargin=30,leftMargin=30, topMargin=30,bottomMargin=18)
doc.pagesize = portrait(LETTER)
elements = []
data = [
["Directory"],
["AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA "],
]
style = TableStyle([('ALIGN',(1,1),(-2,-2),'RIGHT'),
('TEXTCOLOR',(1,1),(-2,-2),colors.red),
('VALIGN',(0,0),(0,-1),'TOP'),
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
])
#Configure style and word wrap
s = getSampleStyleSheet()
s = s["BodyText"]
s.wordWrap = 'CJK'
data2 = [[Paragraph(cell, s) for cell in row] for row in data]
t=Table(data2)
t.setStyle(style)
#Send the data and build the file
elements.append(t)
doc.build(elements)