2016-06-08 12 views
1

Ich mag würde zwei Text in der gleichen Reihe auszurichten, auf der linken und auf der rechten Seite:Python Reportlab zwei Elemente in der gleichen Reihe auf einem Absatz

TEXT1 TEXT2

und in der gleichen Zeile linken ein Bild ausrichten und einen Text zentrieren:

BILDTEXT

Wie ist es möglich?

, dass mein Code ist:

Story=[] 

styles=getSampleStyleSheet() 
styles.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY)) 
styles.add(ParagraphStyle(name='Center', alignment=TA_CENTER)) 
styles.add(ParagraphStyle(name='Left', alignment=TA_LEFT)) 
styles.add(ParagraphStyle(name='Right', alignment=TA_RIGHT)) 


ptext = '<font size=15><b>{0}</b></font>'.format("TITLE") 
Story.append(Paragraph(ptext, styles["Center"])) 

Story.append(Spacer(10, 20)) 

ptext = '<font size=10>TEXT1 </font>' 
Story.append(Paragraph(ptext, styles["Normal"])) 
Story.append(Spacer(1, 12)) 

ptext = '<font size=10>CODICE OPERATORE</font>' 
Story.append(Paragraph(ptext, styles["Normal"])) 

Story.append(Spacer(1, 12)) 
Story.append(Spacer(1, 12)) 



signature = os.path.join(settings.MEDIA_ROOT, user.attr.get("signature")) 
im = Image(signature, 80, 80) 
im.hAlign ='RIGHT' 

ptext = '<font size=10>Firma</font>' 

Story.append(Spacer(1, 12)) 
Story.append(Spacer(1, 12)) 

Story.append(Paragraph(ptext, styles["Right"])) 
Story.append(Spacer(1, 12)) 
Story.append(im) 

Story.append(PageBreak()) 

doc.build(Story) 

Danke

+0

Verwenden Sie ein 'Table'. Die Tabelle kann ihren eigenen Stil haben und die Elemente (Absatz, Bild, ...) können auch ihren eigenen Stil haben, so dass Sie innerhalb der Tabellenzellen unterschiedlich ausgerichtete Objekte haben können. –

Antwort

2

ein Table verwenden. Die Tabelle kann seinen eigenen Stil und die Elemente haben (Paragraph, Image, ...) können auch ihre eigene Art, auf diese Weise haben Sie anders Elemente innerhalb der Tabellenzellen

ausgerichtet haben
from reportlab.lib.pagesizes import A4 
from reportlab.platypus import SimpleDocTemplate, Paragraph, Table 
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle 
from reportlab.lib.enums import TA_RIGHT 

styles = getSampleStyleSheet() 
style_right = ParagraphStyle(name='right', parent=styles['Normal'], alignment=TA_RIGHT) 
doc = SimpleDocTemplate("my_doc.pdf", pagesize=A4) 
Story=[] 
# here you add your rows and columns, these can be platypus objects 
tbl_data = [ 
    [Paragraph("Hello", styles["Normal"]), Paragraph("World (right)", style_right)], 
    [Paragraph("Another", styles["Normal"]), Paragraph("Row (normal)", styles["Normal"])] 
] 
tbl = Table(tbl_data) 
Story.append(tbl) 
doc.build(Story)