2016-12-15 2 views
0

Ich verwende die weasyprint-Bibliothek in Python zum Rendern von PDF-Prospekten für verschiedene Immobilienanzeigen. Einige der Texte in den gerenderten Dateien enthalten jedoch Teile ganzer Sätze.weasyprint rendert PDF-Dateien mit unvollständigen Texten

Die Texte sind in tschechischer Sprache. Zum Beispiel Eingabetext: "Zrekonstruovaný a jižně orientovaný byt ve 3. nadzem ním podlaží bytového domu s výtahem."

gerenderten Text in PDF: "Zrekonstruovaný, Jižněvýtahem.". Also, es fehlt die Mitte des Satzes.

Nach dem Entfernen der Sonderzeichen (ěščřžýáíé) ist dieser bestimmte Satz in Ordnung, aber das ist keine universelle Regel, da anderer Text auch mit diesen Zeichen in Ordnung gebracht werden kann.

Ich konnte keine Regel finden, mit der dies geschieht. Dies geschieht auch nur auf unserem Produktionsserver, der unter Debian läuft. Rendering auf meinem lokalen Kubuntu läuft gut.

Getestet mit weasyprint v 0.31 und 0.33, die in einer virtuellen Umgebung ausgeführt werden, in der nur weasyprint und seine Abhängigkeiten installiert sind.

Ich würde mich für irgendwelche Tipps freuen, danke.

+0

Seine wahrscheinlich Unterschiede in den C-Bibliothek Versionen zwischen Kubuntu und Debian ist der Schuldige. Speziell pango, cairo und die verschiedenen Font- und X-Bibliotheken, die es benutzt. – Cfreak

Antwort

0

Eine mögliche Problemumgehung wäre die Installation von LibreOffice auf Ihrem Server, es kann ohne GUI laufen und es ist sehr gut beim Konvertieren von Dokumenten in PDF. Sie könnten die minimale Version installieren und sehen, ob sie funktioniert - wenn sie nicht mit der Minimalinstallation funktioniert, könnten Sie einige zusätzliche empfohlene Pakete oder sogar die Vollversion installieren. Der folgende Befehl würde die Minimalversion installieren:

apt-get --no-install-recommends install libreoffice 

Wenn Sie Libreoffice installiert haben, dann könnten Sie die PDF-Datei mit diesem Befehl erstellen:

libreoffice --invisible --convert-to pdf /folder/document.docx --outdir /destination/folder/ 

Ich hoffe, das hilft!

Verwandte Themen