Allgemeines zu Tabellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DMD
User
Beiträge: 123
Registriert: Sonntag 17. Mai 2015, 03:34

hi

bastel grad an meiner tabelle und frage mich, warum
Name, Geburtsdatum und Wohnort immer zentriert angezeigt werden?
Hier ein kleiner ausschnitt (hoffe das reicht):

Code: Alles auswählen

            styleN = styles["Normal"]
            styleN.alignment = TA_LEFT <------------------------------------------- wieso nimmt er das hier net? auch styleN.alignment = "TA_LEFT" funktioniert nicht
            styleN.fontSize = 10
            vorNachname = Paragraph('''<b>Name:</b>''', styleN)
            geBurt = Paragraph('''<b>Geburtsdatum:</b>''', styleN)
            wohnung = Paragraph('''<b>Wohnort:</b>''', styleN)
            data_1= [[vorNachname, 'Max Mustermann'],
                   [geBurt, '08.08.1990'],
                   [wohnung, 'LA'],]
            d = Table(data_1, colWidths=[4 * cm, 4 * cm])
            d.hAlign = 'LEFT'
            d.spaceBefore =  40
            d.setStyle(TableStyle([
                       ('BACKGROUND',(0,0),(-1,-1), "#f5f5f5"),
                       ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
                       ('BOX', (0,0), (-1,-1), 0.25, colors.black),
                       ('ALIGN',(0,0),(-1,-1),'CENTER'),
                       ]))
und ich würde gern >istSum< fett ausgegeben haben.

Code: Alles auswählen

styleK = styles["Normal"]
styleK.alignment = TA_CENTER
styleK.fontSize = 10

istSum = [1,2,3,4,5]
istSumme = Paragraph('<b>' istSum' </b>', styleK)
das hier funktioniert aber net :(
bitte hilfe
BlackJack

@DMD: Erkläre mal was Zeile 17 im ersten gezeigten Quelltext bedeutet.

Zum zweiten Problem müsstest Du vielleicht noch mal die Grundlagen bezüglich Zeichenketten und Operationen und Methoden auf Zeichenketten durcharbeiten.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

zum Alignment-Problem für Paragraphen: linksbündig ist Default, dass musst du nicht explizit setzen.

Ansonsten geht das so:

Code: Alles auswählen

from reportlab.platypus import Paragraph, SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT, TA_JUSTIFY
from reportlab.lib.pagesizes import A4

text = '''Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.'''
text_short = 'Lorem ipsum dolor sit amet'

styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name='RightAlign', parent=ParagraphStyle('Normal'), alignment=TA_RIGHT))
styles.add(ParagraphStyle(name='CenterAlign', parent=ParagraphStyle('Normal'), alignment=TA_CENTER))
styles.add(ParagraphStyle(name='JustifyAlign', parent=ParagraphStyle('Normal'), alignment=TA_JUSTIFY))
doc = SimpleDocTemplate('align_test.pdf', pagesize=A4)
story = []
story.append(Paragraph(text_short, styles['Normal']))
story.append(Paragraph(text_short, styles['RightAlign']))
story.append(Paragraph(text_short, styles['CenterAlign']))
story.append(Paragraph(text, styles['JustifyAlign']))
doc.build(story)
Gruß, noisefloor
DMD
User
Beiträge: 123
Registriert: Sonntag 17. Mai 2015, 03:34

danke, ich hab auch selbst kurz danach hinbekommen.
aber wo du recht hast, hast du recht.
das mit zeile 17 meine ich.
...ich weiss nur, dass bei ('ALIGN',(0,0),(-1,-1),'CENTER'),
die erste null für die nullte zeile steht. die zweite für die nullte spalte.
habs aber auch durch ausprobieren richtig hinbekommen.
ist ein langer weg ein profi wie du/ihr zu werden.
hoffe in deinem code steht net, dass ich ganz heftig dämlich bin.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

in der Zeile

Code: Alles auswählen

('ALIGN',(0,0),(-1,-1),'CENTER')
sehe ich gerade auch keinen Fehler... Damit werden alle Zellen der Tabelle horizontal zentriert ausgerichtet.

Das Thema "Ausrichten von Paragraphen" ist jetzt auch bei mir im Blog zu finden.

Gruß, noisefloor
Antworten