Rails以这种格式在文本文件中打印地址标签

时间:2013-07-05 16:34:35

标签: ruby-on-rails ruby

我有一个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打印很糟糕。

如何做到这一点?

更新:

我看到投票说不清楚。 我想单击一个按钮,该按钮将下载包含指定格式的所有地址的文本文件。我想以这种三列格式打印地址,具有精确的列宽和每行的行数。我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

如果可以保证列中每行的宽度不超过列的宽度,则可以使用sprintf创建填充字符串。每个列的宽度为37个字符,因此要打印三列,命令将为sprintf("%-37s%-37s%-37s", col1,col2,col3)。您必须为每个字段重复此操作。假设你已经为每一行提供了一个字符串。您需要从数据中生成每个字符串,例如将前缀与名称连接起来。