Prawn Rails:如何使bounding_box四舍五入?

时间:2014-03-14 08:26:19

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 prawn

我希望将一些边界框四舍五入。有没有办法轻松做到这一点?

据我所知,可以单独绘制一个圆形框并使其与文本框重叠,但它太麻烦了。这是因为我使用网格生成所有的boudning框,而圆形框函数接受相对于整个文档的参数。

1 个答案:

答案 0 :(得分:2)

您可以创建一个bounding_box,然后在其周围绘制一个rounded_rectangle,使用初始和当前光标位置来确定矩形的边界。这是我的代码中的一个硬编码示例:

  PADDING = 10
  @current_cursor = cursor

  bounding_box([0, @current_cursor], width: WIDTH) do
    image1 = "#{Rails.root}/app/assets/images/app-icon.png"
    image2 = "#{Rails.root}/app/assets/images/gui-logo.png"

    clinic_data = [[' '],
                   ['<font size="13"><b>Los Angeles Test Medical Center</b></font>'],
                   ['<font size="9">56 Berent Ave. New York, NY 07002</font>'],
                   ['<font size="9">Tel: 212-541-1900 Fax: 212-541-1199</font>']
    ]
    clinic_table = make_table clinic_data, column_widths: [275], cell_style: {borders: {}, inline_format: true, padding: 1, align: :center}

    data = [[{image: image1, image_width: 50, image_height: 50, position: :center, vposition: :center},
             '<font size="11">Structured Ultrasound Reporting<font>',
             clinic_table,
             {image: image2, image_width: 75, vposition: :center, position: :right}]]

    table(data, column_widths: [75, 80, 275], cell_style: {borders: {}, inline_format: true, valign: :center})
  end

  stroke do
    rounded_rectangle [0, @current_cursor + 5], WIDTH + 5, @current_cursor - cursor + PADDING, 10
  end