2

我有一个存储杂志订阅者地址的 Rails 应用程序。它应该允许下载地址作为文本文件中的标签,以便可以通过点阵打印机打印。

每个订阅者都有一个name, name_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 creator,但 PDF 打印在我们的点阵中很糟糕。

如何做到这一点?

更新:

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

4

1 回答 1

2

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

于 2013-07-05T20:48:35.337 回答