Ein Kollege hat sich in unserem Redmine eine benutzerdefinierte Abfrage für Abrechnungen gebastelt. Als er aus der Anzeige heraus dann ein PDF genieren wollte, bekam er nur die Error Page von Redmine zu sehen. Als Fehler bekam ich im Log folgendes:
ArgumentError (invalid byte sequence in UTF-8): lib/plugins/rfpdf/lib/tcpdf.rb:3037:in `gsub' lib/plugins/rfpdf/lib/tcpdf.rb:3037:in `escape' lib/plugins/rfpdf/lib/tcpdf.rb:3028:in `escapetext' lib/plugins/rfpdf/lib/tcpdf.rb:1748:in `Cell' lib/plugins/rfpdf/lib/tcpdf.rb:1968:in `Write' lib/plugins/rfpdf/lib/tcpdf.rb:3530:in `block in writeHTML' lib/plugins/rfpdf/lib/tcpdf.rb:3501:in `each' lib/plugins/rfpdf/lib/tcpdf.rb:3501:in `writeHTML' lib/plugins/rfpdf/lib/tcpdf.rb:3612:in `writeHTMLCell' lib/redmine/export/pdf.rb:141:in `RDMwriteHTMLCell' lib/redmine/export/pdf.rb:483:in `block in issues_to_pdf' app/helpers/issues_helper.rb:29:in `block in issue_list' app/helpers/issues_helper.rb:25:in `each' app/helpers/issues_helper.rb:25:in `issue_list' lib/redmine/export/pdf.rb:444:in `issues_to_pdf' app/controllers/issues_controller.rb:93:in `block (2 levels) in index' app/controllers/issues_controller.rb:86:in `index'
Es stimmte also etwas mit der Codierung nicht. Nun sah ich das in manchen Beschreibungen U+FFFD Charaktere (Unicode Replacement Charaktere) enthalten waren. Als ich dann mal nach dem Problem suchte in Bezug auf das PDF Plugin von redmine, fand ich dann auch einen entsprechenden Forumpost. Also hab ich kurzer Hand, wie beschrieben mal die Datei gepatcht:
patch /usr/share/redmine/lib/plugins/rfpdf/lib/tcpdf.rb < /tmp/tcpdf.diff
Anschließend funktionierte das PDF erstellen wieder ohne Probleme. In neuere Redmine Versionen ist dies natürlich schon behoben, die PPA Version hat aber nie ein Update erfahren, weswegen ich diese auch demnächst ersetzen werde.