Textformatierung in Ruby (für Lieferscheine)
-
19-09-2019 - |
Frage
ich brauche für eine Ruby on Rails formatierten Text Lieferscheine zu generieren Projekt arbeite ich an. Ich erwäge Ruport verwenden oder einfach nur die Formatierung es selbst in einem String und es zu Text ausgeben. Die einzige Herausforderung rechtfertigt die gesamte Ausgabe entsprechend. Es muss etwas so aussehen, immer korrekt ausgerichtet. Alle Empfehlungen?
Company Name
(T) 1-800-123-1234
(E) info@company.com
BILL TO: CUSTOMER NAME SHIP TO: CUSTOMER NAME
123 Some Street 321 Some Street
Address etc. Address etc.
Date: 2010-03-12 16:30
Payment Number: 1234-123456
LN NAME SKU DESCRIPTION QTY PRICE TOTAL
----------------------------------------------------------------------------------
001 Product name GUDB 012 HGQ product description 2 52.99 105.98
- Color
Lösung
Wie FM bereits vorgeschlagen, können Sie sprintf
verwenden:
"%10s %-10s %10s" % ['abc', 'def', 'ghi'] # use negative numbers for left alignment
#=> " abc def ghi"
Und wenn Sie etwas anspruchsvollere benötigen, versuchen, einige Standard-Template-Engine verwenden, wie erb ...
Andere Tipps
Wenn Ihr Ausgabeformat HTML ist, verwenden Sie CSS ein Druck-Medien Sheet zu machen. Dieses Layout wäre relativ einfach sein, um diese Art und Weise zu machen.
Wenn Sie die Ausgabe Monospace Text, Verwendung Räume Format alles. Sie können verfolgen, wie viel Leerzeichen Sie verwendet haben. Dadurch wird sichergestellt, können Sie einfach die durch Anzahl der Räume auf den nächsten Block einfügen.
EDIT: Ich habe nicht den Kommentar sehen zu benötigen Textdateien bis zu erzeugen, nachdem ich dies schrieb. Ich werde es für ein bisschen verlassen, bevor sie zu löschen, falls sich herausstellt, nützlich zu sein.
Ruport sein Overkill kann. Garnelen ist eine PDF-Writer-Bibliothek vom selben Autor, die sehr leicht und einfach zu bedienen sind. (Viel einfacher als die alte PDF :: Writer Bibliothek dass Ruport Anwendungen. In der Tat schrieb Gregory Brown Garnelen mit dem spezifischen Ziel zu PDF :: Writer in Ruport zu ersetzen.)
Ich erinnere mich noch, dass jemand eine leichte Template-Engine für Garnelen schaffen, aber leider erinnere ich mich nicht, wer das war oder wie es heißt. Aber die Garnelen und Mailinglist IRC-Kanal ist sehr freundlich und hilfsbereit, sie wahrscheinlich wissen.
Da Sie Rails verwenden, können Sie auch in der Prawnto Rails Plugin interessiert sein, die Register Prawn als Ansicht Motor in Rails, und ermöglicht es Ihnen, Ihre PDF-Dateien genau die gleiche Art und Weise Sie machen Ihre HTML zu rendern. Es gibt auch eine Railscast, die deckt Garnelen und Prawnto und ein entsprechender ASCIIcast .