如何在 ruby​​ 中设置 Prawn 的边距?

Posted

技术标签:

【中文标题】如何在 ruby​​ 中设置 Prawn 的边距?【英文标题】:how do I set margins in Prawn in ruby? 【发布时间】:2011-06-03 18:19:48 【问题描述】:

这是我目前所拥有的,但我需要设置边距:

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

【问题讨论】:

值得注意的是,您正在寻找专门设置页边距。 【参考方案1】:

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

【讨论】:

谢谢,我无法按照说明进行操作,您说得更清楚了 你是怎么想出来的,我检查了文档,但我仍然不知道该怎么做...我应该设置 :margin => [0.5,0.5,0.5,0.5] if周围是0.5英寸?我需要使用英寸吗? [0.5 英寸]? [0.5 inch] 是给定属性的默认设置。因此,如果您没有明确设置:margin 的值,它将默认为所有 4 个边上的半英寸。如果您想覆盖任何默认值,您应该提供一个与您想要的点数相对应的数字。每英寸有 72 个点。这有点令人困惑,因为默认值以英寸为单位提供,而您以磅为单位设置值。如果您将默认值视为[36 points],则可能更有意义 为了清楚起见,上面的语法在没有尾随冒号的情况下有效。例如,:margin 而不是 :margin:。此外,此链接将带人直接使用该语法:rdoc.info/github/sandal/prawn/master/Prawn/Document:initialize【参考方案2】:

只是在这里添加知识的万神殿,但如果您来这里是为了使用虾标签 gem 来执行此操作,则不能以这种方式设置文档边距。你必须做一个工作。这是一个快速灵活的 sn-p 方法,用于创建一个带有统一填充的边界框,该填充位于文档边界框内。

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。

【讨论】:

以上是关于如何在 ruby​​ 中设置 Prawn 的边距?的主要内容,如果未能解决你的问题,请参考以下文章

在css中设置主要内容相对于响应侧边栏宽度的边距[重复]

以编程方式在 RealtiveLayout 中设置 LinearLayout 的边距 - 不起作用

在代码中设置 textview 的边距和重力不起作用

如何在word中设置图片边距

打印html页面时的边距

试图了解 ScrollView 内 LinearLayout 的边距