Report PDF lassen sich nicht drucken (Index Fehler)
Dieser Beitrag behandelt ein Problem bei dem nicht alle, sondern nur gezielt einige wenige Reports (z.B. Angebote) nicht gedruckt werden können, mit folgender Fehlernachricht:
Bei Fehlermeldungen ist in den meisten Fällen das Ende der Fehlermeldung die aussagekräftigste Information.
Die eigentliche Fehlermeldung hierzu ist wesentlich länger mit mehr Code, deshalb nachfolgend nur das letzte Stück der langen Fehlermeldung:
Traceback (most recent call last): File "/opt/odoo/odoo-server/addons/report/controllers/main.py", line 96, in report_download response = self.report_routes(reportname, docids=docids, converter='pdf') File "/opt/odoo/odoo-server/odoo/http.py", line 507, in response_wrap response = f(*args, **kw) File "/opt/odoo/odoo-server/addons/report/controllers/main.py", line 45, in report_routes pdf = report_obj.with_context(context).get_pdf(docids, reportname, data=data) File "/opt/odoo/odoo-server/addons/report/models/report.py", line 268, in get_pdf context.get('set_viewport_size'), File "/opt/odoo/odoo-server/addons/report/models/report.py", line 430, in _run_wkhtmltopdf head_file.write(headers[index]) IndexError: list index out of range
Wenn Sie diesen Fehler beim Drucken einer PDF erhalten, dann ist nachfolgender Lösungsansatz vielleicht der richtige Workaround für Sie.
Das Problem
Durch Copy&Paste aus Textbearbeitungsprogrammen wie Word (und ähnlichen Programmen) wird immer auch Textformatierung dieser Programme mitkopiert, dies kann z.B. die Definition der Schriftart aber auch anderen sehr spezifischen Code beinhalten.
Da der (nicht sichtbare) Code je Programm abweicht, kann Odoo nicht alle diese Code-Teile sauber entfernen.
Mit dem folgenden Button können Sie zwar Formatierungen zurücksetzen für den markierten Text
Dies funktioniert allerdings nur auf Formatierungen welche dem Programm bekannt sind, also normale HTML-Formatierungen zum Beispiel.
Microsoft Word & Co haben ganz eigene Textbausteine für die Formatierung (kein HTML), welche hier zu Problemen durch falsche Interpretation führen können.
Problem beheben
Je nach Code reicht es nicht den kompletten Text zu entfernen, weil die Textbausteine von Word & Co garnicht richtig markiert und gelöscht werden können, wenn diese einmal in den Kopf- oder Fußtext kopiert und gespeichert wurden.
Sie müssen es dann wie folgt versuchen:
- Den kompletten Kopftext (oder Fußtext) markieren und kopieren
- In eine Textsoftware ohne Formatierung einfügen (mehr dazu weiter unten)
- den selben Text in dieser Software wieder markieren und kopieren
- innerhalb Odoo in das Textfeld vom Kopftext klicken, mit einem Rechtsklick das Kontextmenü öffnen und "Alles auswählen"
- Erneut Rechtsklick und "Einfügen"
Nur so erhalten Sie wirklich formatierungsfreien Text welchen Sie dann problemlos mit den zur Verfügung stehenden Mitteln für die Reports bearbeiten können.
Formatierungsfreier Text
In Windows erhalten Sie formatierungsfreien Text mit dem Windowsprogramm Notepad
Wenn Sie Windows auf deutsch installiert haben, dann heißt dieses Programm evtl. Editor
In MacOS können Sie hierzu den TextEdit verwenden
Allerdings müssen Sie hier das Programm über "Format" noch auf "In reinen Text umwandeln" umstellen.
Mit diesem Vorgehen können Sie falschen Formatierungscode in Kopf- & Fußtexten entfernen und somit das Problem beheben.
Wenn Ihre Angebote bereits diesen Fehler aufweisen, hilft auch kein einfaches löschen und neu schreiben der Texte.
Sie müssen dann den kompletten Text mit reinem Text ersetzen wie oben beschrieben.
Alle Equitania Module finden Sie unter: https://gitlab.ownerp.io/v10-myodoo-public/v10-addons/