Django pdf-Dokument mit jpg image, Diagrammen und multi language

Django, Flask, Bottle, WSGI, CGI…
Antworten
christofj
User
Beiträge: 13
Registriert: Montag 10. Dezember 2018, 11:04

Hallo zusammen,

wie kann man ein PDF-Dokument erstellen indem man ein Bild und Diagramme hat und es außerdem mehrsprachig sein soll?
Ich habe einen PDF-Report mit weasyprint erstellt. Dabei konnte ich die Diagramme auf dem PDF ausgeben. Ein Bild auf dem PDF anzuzeigen ist mir nicht gelungen. Ebenso konnte ich die Mehrsprachigkeit nicht im PDF abbilden. Um die Mehrsprachigkeit zu realisieren frage ich jetzt die Spracheinstellung ab und rufe dann das passende html auf um den Report zu generieren. Leider dauert das jetzt mit unter ewig.
Außerdem scheint es mir recht umständlich zu sein wie ich das aufgebaut habe. Habt ihr für mich einen besseren Lösungsansatz?

Danke für eure Hilfe
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

@christofj: wie sollen wir beurteilen können, ob es umständlich ist, wenn wir den Code nicht sehen?
Mehrsprachigkeit geht am einfachsten, wenn man für jede Sprache ein eigenes Template hat. Warum das nur wegen verschiedener Templates ewig dauern soll, ist mir schleierhaft.
Bilder kann man darstellen. Aber ohne zu wissen, was Du gemacht hast, kann man auch schlecht sagen, was Du falsch gemacht hast.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

DAS Modul zum Generieren von PDF aus Python heraus ist ReportLab. Da hast du auch die volle Kontrolle, wie das PDF gebaut wird.

Das kann alles, was du willst. Diagramme kann ReportLab selber, oder man bindet sie als Bild ein.
Mehrsprachigkeit hängt doch nur davon ab, was du in das PDF als Text schiebst?
Ein Beispiel für die Verwendung von ReportLab + Django ist in der Django-Doku AFAIR.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Weasyprint macht aber auch einen interessanten Eindruck. Nicht so mächtig wie ReportLab, dafür hat man aber den Vorteil, dass derjenige der die Vorlage bastelt nicht programmieren muss sondern das in HTML und CSS machen kann.

Diagramme kann man bei weasyprint als SVG einbinden, dann hat man im PDF am Ende auch Vektorgrafik die verlustfrei skaliert.

@christofj: In der Dokumentation von weasyprint stehen doch einige Gründe warum das lange dauern kann. Eine Sache die man leicht prüfen können sollte ist das die Ressourcen wenn möglich direkt vom Dateisystem kommen sollten statt über Server und natürlich das man auch sicherstellen sollte, das alles ohne timeout geladen werden kann wenn es über's Netz kommt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten