से पीडीएफ आउटपुट में पेज ब्रेक पर तालिका कॉलम शीर्षलेखों को दोहराने के लिए कैसे करें मैं पीडीएफ दस्तावेजों में टेबल लिखने के लिए रिपोर्टलैब का उपयोग कर रहा हूं और परिणामों से बहुत खुश हूं (अभी तक प्रवाहों पर कुल समझ नहीं होने के बावजूद)।रिपोर्ट लेबल
हालांकि, मैं यह समझने में सक्षम नहीं हूं कि एक पृष्ठ ब्रेक कैसे फैलाता है, इसके कॉलम शीर्षलेखों को दोहराया जाता है।
नीचे दिया गया कोड सी: \ Temp में test.pdf बनाता है जिसमें डेटा की 99 पंक्तियों के बाद एक शीर्ष पंक्ति होती है।
शीर्षक पृष्ठ पहले पृष्ठ पर बहुत अच्छा लग रहा है लेकिन मैं इसे दूसरे और तीसरे पृष्ठों के शीर्ष पर दोहराना चाहता हूं।
मैं SimpleDocTemplate का उपयोग करके इसे पूरा करने के लिए उपयोग किए जाने वाले किसी भी दृष्टिकोण को सुनने के लिए उत्सुक हूं।
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Frame, Spacer
from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.lib.pagesizes import A3, A4, landscape, portrait
from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet
from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
from reportlab.pdfgen import canvas
pdfReportPages = "C:\\Temp\\test.pdf"
doc = SimpleDocTemplate(pdfReportPages, pagesize=A4)
# container for the "Flowable" objects
elements = []
styles=getSampleStyleSheet()
styleN = styles["Normal"]
# Make heading for each column
column1Heading = Paragraph("<para align=center>COLUMN ONE HEADING</para>",styles['Normal'])
column2Heading = Paragraph("<para align=center>COLUMN TWO HEADING</para>",styles['Normal'])
row_array = [column1Heading,column2Heading]
tableHeading = [row_array]
tH = Table(tableHeading, [6 * cm, 6 * cm]) # These are the column widths for the headings on the table
tH.hAlign = 'LEFT'
tblStyle = TableStyle([('TEXTCOLOR',(0,0),(-1,-1),colors.black),
('VALIGN',(0,0),(-1,-1),'TOP'),
('BOX',(0,0),(-1,-1),1,colors.black),
('BOX',(0,0),(0,-1),1,colors.black)])
tblStyle.add('BACKGROUND',(0,0),(-1,-1),colors.lightblue)
tH.setStyle(tblStyle)
elements.append(tH)
# Assemble rows of data for each column
for i in range(1,100):
column1Data = Paragraph("<para align=center> " + "Row " + str(i) + " Column 1 Data" + "</font> </para>",styles['Normal'])
column2Data = Paragraph("<para align=center> " + "Row " + str(i) + " Column 2 Data" + "</font> </para>",styles['Normal'])
row_array = [column1Data,column2Data]
tableRow = [row_array]
tR=Table(tableRow, [6 * cm, 6 * cm])
tR.hAlign = 'LEFT'
tR.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),colors.white),
('TEXTCOLOR',(0,0),(-1,-1),colors.black),
('VALIGN',(0,0),(-1,-1),'TOP'),
('BOX',(0,0),(-1,-1),1,colors.black),
('BOX',(0,0),(0,-1),1,colors.black)]))
elements.append(tR)
del tR
elements.append(Spacer(1, 0.3 * cm))
doc.build(elements)
धन्यवाद गॉर्डन - मुझे मार्गदर्शन पर वापस ओर इशारा करते हुए ने मुझे एक बहुत ही सरल और कामकाजी कोड उदाहरण विकसित करने में सक्षम होने का नेतृत्व किया है जिसे मैं नीचे दिए गए उत्तर के रूप में जोड़ूंगा। – PolyGeo