Prawn - 在 text_box 展开后向下移动光标

2024-02-15

我正在使用 Prawn Gem 生成 PDF,但我无法找到移动 PDF 的方法cursor之后下来text_box从溢出文本扩展,类似于常规的方式text打电话会。

文本框示例

pad(5) {
  text_box payable, :at => [bounds.left, cursor], :width => 540, :height => 15, :overflow => :expand, inline_format: true
}

move_down(15)

pad(5) {
  text_box address, :at => [bounds.left, cursor], :width => 250, :height => 15, :overflow => :expand, inline_format: true
  text_box city, :at => [250, cursor], :width => 100, :height => 15, :overflow => :expand, inline_format: true
  text_box state, :at => [350, cursor], :width => 75, :height => 15, :overflow => :expand, inline_format: true
  text_box zip, :at => [425, cursor], :width => 110, :height => 15, :overflow => :expand, inline_format: true
}

所以上面,我必须pad and move_down来自text_box payable为了使下一组文本框的格式正确且不重叠。如果我用直text致电payablestring,然后在所有文本都按预期呈现后,光标向下移动。

我使用的原因text_box超过常规text以便我可以将文本并排放置在同一行上。虽然这对于所有适合单行的字符串非常有效,但如果其中一个区域扩展了text_box向下,因为光标只是从下一个文本行开始,而不是在展开的文本框下方。

任何见解或建议将不胜感激,谢谢!


你现在可能已经明白了一些事情,但我也是 Prawn 的新手,也有同样的问题,所以希望这对其他人有帮助。此示例显示了文本框和格式化文本框。可能有更好的方法,但这对我有用。

  txt1 = "u" * 250
  txt2 = "v" * 600
  txt3 = "w" * 100
  txt4 = "x" * 500
  txt5 = "y" * 200
  txt6 = "z" * 400

  stroke_horizontal_rule

  options = {:document=>@pdf, :at=>[0,cursor]}
  text_box(txt1, options)
  measure = Prawn::Text::Box.new(txt1, options)
  measure.render(:dry_run => true)
  move_down(measure.height)

  options = {:document=>@pdf, :at=>[0,cursor]}
  text_box(txt2, options)
  measure = Prawn::Text::Box.new(txt2, options)
  measure.render(:dry_run => true)
  move_down(measure.height)

  options = {:document=>@pdf, :at=>[0,cursor]}
  text_box(txt3, options)
  measure = Prawn::Text::Box.new(txt3, options)
  measure.render(:dry_run => true)
  move_down(measure.height)

  array = [{:text=>txt4, :size=>12}]
  options = {:document=>@pdf, :at=>[0,cursor]}
  formatted_text_box(array, options)
  measure = Prawn::Text::Formatted::Box.new(array, options)
  measure.render(:dry_run => true)
  move_down(measure.height)

  array = [{:text=>txt5, :size=>16}]
  options = {:document=>@pdf, :at=>[0,cursor]}
  formatted_text_box(array, options)
  measure = Prawn::Text::Formatted::Box.new(array, options)
  measure.render(:dry_run => true)
  move_down(measure.height)

  array = [{:text=>txt6, :size=>12}]
  options = {:document=>@pdf, :at=>[0,cursor]}
  formatted_text_box(array, options)
  measure = Prawn::Text::Formatted::Box.new(array, options)
  measure.render(:dry_run => true)
  move_down(measure.height)

  stroke_horizontal_rule
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prawn - 在 text_box 展开后向下移动光标 的相关文章

随机推荐