Hallo,
ich habe eine kleine Frage zu reportlab, und zwar:
Ist es möglich, Ränder zu erstellen, die mehr sind als nur ein einfacher strich (sprich, ein wenig schnörkelig, ein dickerer Strich umgeben von zei dünneren würde auch schon reichen) und um die ganze Seite gehen?
Ein kleines Beispiel:
http://s1.bild.me/bilder/030611/9281582margin.png
(der innere Rand muss nicht sein)
Lg hh
reportlab schnörkelige Ränder
Vielleicht verstehe ich dein Problem nicht richtig, aber du kannst doch so viele Rechtecke auf dem Canvas malen, wie du willst? Erst ein äusseres mit einer dünnen Stärke, dann ein inneres mit einer dickeren Stärke, und dann wiederum eins mit einer dünneren Stärke. So kannst du doch problemlos dein Grafikbeispiel nachzeichnen?!
Code: Alles auswählen
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image
doc = SimpleDocTemplate("Urkunde.pdf",pagesize=A4,
rightMargin=1.5*cm,leftMargin=1.5*cm,
topMargin=0.5*cm,bottomMargin=1.5*cm)
content = []
styles=getSampleStyleSheet()
logo = 'logo.png'
im = Image(logo, 3*cm, 3*cm)
content.append(im)
content.append(Spacer(1, 12))
ptext = "Test Test Einszwei Einszwei"
content.append(Paragraph(ptext, styles["Normal"]))
content.append(Spacer(1, 12))
Bild = '1.jpg'
bi = Image(Bild, 12*1.5*cm, 12*cm)
content.append(bi)
doc.build(content)
Lg HH
P.S.: Ja, ich weiß, die Variablennamen sind blöd aber das ist bloß mein kleines Testscript um ein meinen Vorstellungen entsprechendes PDF-Dokument zu bauen.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
du kannst Platypus und Canvas Operation mischen. Wenn du also Rechtecke auf die komplette Seiten malen willst, dann definierst du dafür eine kleine Funktion:
Dann erweiterst du
noch um
.
Jetzt sollte es funktionieren.
Gruß, noisefloor
du kannst Platypus und Canvas Operation mischen. Wenn du also Rechtecke auf die komplette Seiten malen willst, dann definierst du dafür eine kleine Funktion:
Code: Alles auswählen
def mein_canvas_rechteck(canvas,doc):
canvas.saveState()
#Code für die Rechtecke hier
...
canvas.restoreState()
Code: Alles auswählen
doc = SimpleTemplate(...)
Code: Alles auswählen
..., onPage = mein_canvas_rechteck
Jetzt sollte es funktionieren.
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
das findet man übrigens auch in der offiziellen Doku. Dort wird auf diese Art und Weise eine Kopf- / Fusszeile pro Seite generiert. Dort findet man auch noch weiter Möglichkeiten wie onFirstPage, onLastPage (oder so ähnlich) etc.
Gruß, noisefloor
das findet man übrigens auch in der offiziellen Doku. Dort wird auf diese Art und Weise eine Kopf- / Fusszeile pro Seite generiert. Dort findet man auch noch weiter Möglichkeiten wie onFirstPage, onLastPage (oder so ähnlich) etc.
Gruß, noisefloor