如何在红宝石中设置Prawn的边距?

时间:2011-01-05 01:45:39

标签: ruby-on-rails pdf-generation prawn

这是我到目前为止所做的,但我需要设置边距:

def send_fax 
    contact = Contact.find_by_id(self.contact_id)

    pdf = Prawn::Document.new
    pdf.font "Times-Roman"
    pdf.move_down(20)
    pdf.text "ATTN: #{contact.first_name} #{contact.last_name}", :size => , :style => :bold
    pdf.text "RE: #{self.subject}"
    pdf.move_down(20)

    pdf.text "#{self.body}"

    OutboundMailer.deliver_fax_email(contact, self, pdf)

  end

2 个答案:

答案 0 :(得分:23)

Prawn::Document.new( :margin => [0,0,0,0] )

:margin:    Sets the margin on all sides in points [0.5 inch]
:left_margin:   Sets the left margin in points [0.5 inch]
:right_margin:  Sets the right margin in points [0.5 inch]
:top_margin:    Sets the top margin in points [0.5 inch]
:bottom_margin: Sets the bottom margin in points [0.5 inch]

http://rdoc.info/github/sandal/prawn/master/Prawn/Document

答案 1 :(得分:4)

在这里添加知识的万神殿,但是如果你来到这里使用Prawn Label gem来做这个,你就不能用这种方式设置文档边距。你必须做一个解决方案。这是一个快速灵活的代码段,用于创建一个带有统一垫的边界框,该垫位于文档边界框内。

pad = 5

pdf.bounding_box([pad, pdf.bounds.height - pad], :width => pdf.bounds.width - (pad * 2), :height => pdf.bounds.height - (pad * 2)) do
    #Draw all your content in this block and it will be padded uniformly by 5
end

如果您使用的是隐式版Prawn,请从.bounding_box和.bounds中删除pdf。