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:

Ende der 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/