gpt4 book ai didi

ruby-on-rails - Prawn - 文本框展开后向下移动光标

转载 作者:太空宇宙 更新时间:2023-11-03 18:05:40 25 4
gpt4 key购买 nike

我正在使用 Prawn Gem 生成 PDF,但在 text_box 从溢出文本扩展后,我无法找到将 cursor 向下移动的方法,类似于常规 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
}

在上面,我必须从 text_box payable padmove_down 才能正确格式化下一组 text_boxes 而无需重叠。如果我对 payable 字符串使用直接的 text 调用,则在呈现所有文本后光标会按预期向下移动。

我在常规 text 上使用 text_box 的原因是我可以将文本并排放置在同一行上。虽然这对于所有适合一行的字符串非常有用,但如果其中一个区域向下扩展 text_box 似乎效果不佳,因为光标只是从下一个文本行开始在展开的 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

关于ruby-on-rails - Prawn - 文本框展开后向下移动光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46555227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com