2013-07-05 42 views
2

打印地址標籤的文本文件,我有一個存儲雜誌的訂戶的地址的Rails應用程序。它應該允許將地址作爲標籤下載到文本文件中,以便通過點陣打印機進行打印。Rails的這種格式

每個訂戶具有namename_prefix( 「先生」, 「小姐」,等),addressareazipcode

輸出應該具有以下格式:

g51/b18468 Postgg On 30/05/2013  N51/b39897 Postgg On 30/05/2013  LR51/b23428 Postgg On 30/05/2013 
Rgv. XXXXX       Mr. bBnMbNNbN.M      Bro. bBRbgbM .S, 
KbgbNg bSSgMBLY Og gOg,    LOT 92, KbMPUNg      gRbgg gOMMUNnTY ggNTRg, 
52, gLN. TnMUR,      BbTU 4, 43950      4, LORONg SS 23/6g, 
POST BOX 20, 43007 KbgbNg   SUNgbn PgLnK       47400 PgTbLnNg gbYb, 
MbLbYSnb        SgLbNgUR        SgLbNgOR, W.MbLbYSnb 
            MbLbYSnb        MbLbYSnb 


ML51/b13179 Postgg On 30/05/2013  W51/b41363 Postgg On 30/05/2013  Lg51/b29053 Postgg On 30/05/2013 
Bro. bBRbgbM .V      Bro. bLbPPbN       Pbstor. bLgRgg PRbgbSbM 
NO:18,PgRSnbRbN      NO.60, LORONg SgRbn PgRMbn 9,  1-2-2, MggbN nNTbN bPbRTMgNT, 
RnSgbg .7       TbMbN SgRbn PgRMbn,     gbLbN 1/21g Ogg gbLbN gOMBbK 
TbMbN RnSgbg       34300, BbTbN SgRbn,     53000 KUbLb LUMPUR 
30100 nPOg, PgRbK     PgRbK        MbLbYSnb 
MbLbYSnb        MbLbYSnb 


LR510b13172 Postgg On 30/05/2013  ML51/b9877 Postgg On 30/05/2013  LR51/b9905 Postgg On 30/05/2013 
Sns. bLLbMbg (b) NgSbM    Bro. bLVnN bNbNg .b     Mrs. bNnTgb VngTOR 
NO:44,gbLbN gbMbn     NO:3,gbLbN TgRbTbn 3     7,gbLbN PbRn 
TbMbN TbPbg gbYb      TbMbN SbRn,TgRbTbn     PbRn gbRggNS 
35000 TbPbg       44000 KUbLb KUBU BgbRU    nPOg,30100 
PgRbK,        SgLbNgOR        PgRbK 
MbLbYSnb        MbLbYSnb        MbLbYSnb 


ML51/b13180 Postgg On 30/05/2013  ML51/b13203 Postgg On 30/05/2013  g51/b9942 Postgg On 30/05/2013 
Bro. bNTONY       Bro. bNTONYSWbMY      Pbstor. bROKnbNbTgbN 
NO:399,LORONg KgNbVn 3/2b   LbgbNg gUSUN gURnbM     NO:M4 g/7 
TbMbN KgNbRn       42700 BbNTnNg      gbLbN PbNgbN nNgbg 4/1b 
09000 KULnM       SgLbNgOR g.g       PbNgbN nNgbg 
Kggbg        MbLbYSnb        55100,KUbLb LUMPUR 
MbLbYSnb                 MbLbYSnb 

我有亂碼的名字和地址。

所以基本上每個標籤將是這樣的:

<MemberCode> Posted on <Date> 
Mr. Steve Robinson 
No: 35, Buther Street, 
Kamaraj Nagar, Avadi 
Chennai - 600071 

只有列的寬度是上述標籤的格式在標籤片的打印機打印。

如何從Rails打印這種文本文件?

我試過Prawn/Labels PDF的創造者,但PDF打印爛在我們的點陣。

這是怎麼回事?

UPDATE:

我看到了一個投票稱其不清楚。 我想單擊一個按鈕,它將下載包含指定格式所有地址的文本文件。我希望以這種三列格式打印地址,併爲每行準確的列寬和行數。我不知道該怎麼做。

回答

2

如果你能保證在一列中各線的寬度不超過列的寬度,你可以使用sprintf創建填充字符串。每個列的寬度爲37個字符,因此要打印三列,該命令將爲sprintf("%-37s%-37s%-37s", col1,col2,col3)。你將不得不重複每個字段。這是假設你已經有一個字符串的每一行。您需要從數據中生成每個字符串,例如將前綴與名稱連接起來。

+0

注意,如果有的話你插入的字符串比37長,'sprintf'不會自動截斷它,它會甩開在該行的所有列。 ' 「%-37.37s」'將截斷在37個字符。 '「%-37.30s」'會截斷在30個字符等 – aelfric5578

+0

好了,所以...我有用戶陣列與他們的記錄。現在我做each_slice來生成一個3列的二維數組。然後我做每個循環,並在每次迭代中爲每行生成字符串並打印它們。我會盡力讓你知道! :) 謝謝.. –