저는 python 애호가이자 reportlab newbie입니다. ("에 오신 것을 환영합니다 Reportlab을!"10,100)위치 10,100에 python Reportlab 테이블을 배치하고 drawString을 사용하는 방법
을 c.drawString 그러나 나는를 배치하는 방법을 알아낼 수 없습니다 :
나는 페이지, 예를 들면에 특정 장소에서 텍스트를 넣어하면서 drawString을 사용하는 방법을 알고 테이블을 c.drawString (10,100, "Welcome to Reportlab!")과 같은 위치에서 시작하도록 테이블 (길이가 몇 줄 밖에되지 않을 것입니다.)을 사용합니다. 여기에 테이블을 두는 방법을 배우면 다른 곳에 배치 할 것입니다 대신.
동일한 스크립트에서 drawString을 사용하는 방법을 알아낼 수 없습니다. 왜냐하면 캔버스를 사용하는 것이 drawString 기능을 사용하는 방법을 알고있는 유일한 방법이기 때문입니다. 내 4 줄의 캔버스 코드 (이 단락을 따라)는 캔버스/파일을 닫고 PDF를 작성합니다. 테이블 코드 (아래)는 파일을 닫고 PDF를 작성하고 drawString 조작에 사용하는 캔버스를 닫으려면 "doc.build (elements)"행을 사용하는 방법을 보지 못합니다.
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)