Gibt es eine Möglichkeit zum generieren von pdf-Dateien mit nicht-ascii Symbole mit pisa von django-template?
Ich versuche, zu erzeugen, ein pdf-template mit diesem snippet:
def write_pdf(template_src, context_dict):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result)
if not pdf.err:
return http.HttpResponse(result.getvalue(), mimetype='application/pdf')
except Exception('PDF error')
Alle nicht-lateinische Symbole werden nicht korrekt angezeigt, der Vorlage und der Ansicht sind, gespeichert unter Verwendung der utf-8-Codierung.
Habe ich versucht, speichern von anzeigen als ANSI und dann auf Benutzer unicode(html,"UTF-8"), aber es wirft TypeError.
Außerdem dachte ich, dass vielleicht es ist, weil die default fonts irgendwie nicht unterstützen utf-8
also laut pisa Unterlagen, die ich versuchte, zu fontface im template-body in der style-Sektion.
Dass noch gab es keine Ergebnisse.
Hat jemand einige Ideen, wie man dieses Problem lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese funktioniert für mich:
Versuchen, anstelle
mit
Oder Kasse diese Antwort zu html-zu pdf-Datei für eine Django-site?
encoding='UTF-8'
mein problem gelöst mit Codierung polnischen ZeichenMüssen Sie zum ändern der django-template. Fügen Sie eine neue schriftart im stylesheet verknüpft werden, um eine font-Datei mit dem im Dokument verwendeten Zeichen. Und, dass schriftart-Datei, die zugänglich sein müssen, der auf Ihrem server (unter Ubuntu finden Sie Dateien mit den fonts in /usr/share/fonts/truetype/Verzeichnis). Zum Beispiel:
Dann, wenn Sie neben HTML-code:
können Sie anzeigen, dass der text in DejaMono schriftart mit der CSS-Regel:
Dies funktioniert für mich, wenn ich PDF-Dokumente erstellen mit kyrillischen Zeichen.
Ich Stand vor dem gleichen problem mit den kyrillischen Zeichen.
Die Lösung Bestand aus zwei Schritten:
1. Punkt aus die font-Datei in Ihre HTML-Datei
2. Geben Sie "pisa" - root-Pfad (so dass Sie der font-Datei, indem Sie den relativen Pfad)
in meinem Fall war es so etwas wie dieses
weil Schriftarten platziert wurden, PATH_TO_DJANGO_PROJECT/files/arial.ttf
Wenn Sie anrufen createPDF statt der pisaDocument Methode, die Sie verwenden können,