Blocksatz in Rechnungen entfernen

Die Artikelbezeichnung in den Rechnungen ist in den PDF-Templates im Blocksatz formatiert (zumindest in crabe). Das finde ich unpassend und es sieht manchmal sehr seltsam aus, wenn die Wortzwischenräume in zwei aufeinanderfolgenden Zeilen um ein vielfaches unterschiedlich sind. Blocksatz ist meiner Meinung nach nur für längere Texte und bei Verwendung der gesamten Seitenbreite sinnvoll.

Die Artikeltexte hätte ich gerne linksbündig mit gleichbleibenden Wortzwischenräumen. Bisher habe ich nicht gefunden, wie man das ändern könnte. Es ist nicht besonders wichtig, aber falls es jemand weiß oder zufällig darüber stolpert, wäre ich dankbar für einen Hinweis.

Soweit ich sehen kann, muss ein Parameter in der Datei pdf.lib.php geändert werden:
In der function pdf_writelinedesc erfolgt in der drittletzten Zeile der Aufruf

	$pdf->writeHTMLCell($w, $h, $posx, $posy, $outputlangs->convToOutputCharset($labelproductservice), 0, 1, false, true, 'J', true);

Setzt man hier den vorletzten Parameter von J (justified) auf L (left align), müsste der Text linksbündig ausgegeben werden. (Disclaimer: habe gerade nur schnell in die Sourcen geschaut, aber nichts getestet).

Langfristig am elegantesten und dauerhaftesten lässt sich die Änderung vermutlich über einen Hook lösen, der für das Event ‚pdf_writelinedesc‘ die Parameter entsprechend setzt.

1 „Gefällt mir“

Danke, das war es. Scheint zu funktionieren. Das ist zwar jetzt nicht auf Rechnungen begrenzt, aber eigentlich will ich eh nirgendwo Blocksatz. Jetzt weiß ich auch, warum grep -ir justif * nichts gefunden hatte.

Das müsste man auch in der ./htdocs/core/modules/facture/doc/pdf_crabe.modules.php
ändern können. Die würde ich dann auch sofort umbenennen, damit beim nächsten Update der Spuk nicht von vorne los geht. Ich meine Zeile 44 (class pdf_crabe extends ModelePDFFactures) den Namen „pdf_crabe in pdf_irgendetwas“ umbenennen und die Datei pdf_crabe.modules.php mit dem selben Namen, also pdf_irgendetwas.modules.php umbenennen.
Damit das keinen crash mit dem Dokumentnamen in der Datenbank gibt, noch die Zeile, ich meine 148 ($this->name = „crabe“; ) umbenennen. Da wir dann nur „crabe“ gegen „irgendwas“ ausgetauscht. Diese Name wird dann auch bei der Auswahl der Rechnungsvorlage angezeigt.