[reportlab-users] Table split Overlap Page Header
MOHAMED BLACK
bl3a3ck at gmail.com
Fri Jan 26 11:58:35 EST 2018
Hi,
I'm new to reportlab world so may be this is easy question but i couldn't
find any useful information after digging the mailing list and Google
so my problem is when a table split automatically it overlap my page header
i managed this overlap in first page by adding Spacer
but i have no clue how to do it for the auto splited table pages
here is a demo of what i mean it appear in page No:2
Test.py
=======
from io import BytesIO
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate,Table,TableStyle,Spacer
from reportlab.lib.pagesizes import A4,landscape
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
pdfmetrics.registerFont(TTFont("arial",'arial.ttf'))
PageWidth,PageHight=landscape(A4)
buffer=BytesIO()
PdfDoc=SimpleDocTemplate(buffer,pagesize=(PageWidth,PageHight),showBoundary=0,
rightMargin=18,leftMargin=18,topMargin=18,bottomMargin=32)
PageHeader1="PageHeader1"
PageHeader2="PageHeader2"
(PageHeader1FontName,PageHeader1FontSize)=('arial',14)
(PageHeader2FontName,PageHeader2FontSize)=('arial',14)
TableHeaderColsName =["1","2","3","4","5","6","7","8","9"]
TableHeaderColsWidth=[40,40,40,40,40,40,40,25,40]
AllRows = []
for i in range(1,50):
AllRows.append(["A","B","C","D","E","F","G","H","I"])
AllTableData=[TableHeaderColsName,]+AllRows
def myFirstPage(canvas,doc):
canvas.saveState()
canvas.setFont(PageHeader1FontName,PageHeader1FontSize)
canvas.drawCentredString(PageWidth/2,PageHight-27,PageHeader1)
canvas.setFont(PageHeader2FontName,PageHeader2FontSize)
canvas.drawCentredString(PageWidth/2,PageHight-55,PageHeader2)
#Some More Stuff
canvas.restoreState()
def myLaterPages(canvas,doc):
canvas.saveState()
canvas.setFont(PageHeader1FontName,PageHeader1FontSize)
canvas.drawCentredString(PageWidth/2,PageHight-27,PageHeader1)
canvas.setFont(PageHeader2FontName,PageHeader2FontSize)
canvas.drawCentredString(PageWidth/2,PageHight-55,PageHeader2)
#Some Diffrent Stuff
canvas.restoreState()
tblStyle=TableStyle([('TEXTCOLOR',(0,0),(-1,-1),colors.black),
('VALIGN',(0,0),(-1,-1),'MIDDLE'),
('ALIGNMENT',(0,0),(-1,-1),'CENTER'),
('LINEBELOW',(0,0),(-1,-1),1,colors.black),
('BOX',(0,0),(-1,-1),1,colors.black),
('INNERGRID',(0,0),(-1,-1),.5,colors.black),
('FONT',(0,0),(-1,-1),'arial',10),
('FONT',(0,0),(-1,0),'arial',10)
])
tblStyle.add('BACKGROUND',(0,0),(-1,0),colors.lightblue)
MyTable=Table(AllTableData,colWidths=TableHeaderColsWidth,
rowHeights=[30,]+([15]*(len(AllTableData)-1)),
repeatRows=1)
MyTable.hAlign = 'CENTER'
MyTable.setStyle(tblStyle)
Elements=[]
Elements.append(Spacer(0,54))
Elements.append(MyTable)
PdfDoc.build(Elements,onFirstPage=myFirstPage,onLaterPages=myLaterPages)
x=buffer.getvalue()
with open("doc0.pdf",'wb') as f:
f.write(x)
print("End")
thanks in advance
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/reportlab-users/attachments/20180126/e48d14fc/attachment.html>
More information about the reportlab-users
mailing list