我有一个自定义方法,该方法接受一个字符串和一个块,并应该在带有圆角边框的矩形内显示通过块调用的所有内容。当内容足够小以适合其余页面时,这种方法就很好用了,但是当边框不是仅显示在第二页上时,它们的长度就超过了应有的长度,标题似乎消失了
这是它的外观
这是包含两页内容的内容(在本例中为文本)的外观:
第1页:
第2页:
def get_size_of_text str, opts
ret = [0, 0]
font(opts[:fontName], style: opts[:fontStyle], size: opts[:fontSize]) do
ret = [
height_of_typeset_text(str),
rendered_width_of_string(str)
]
end
ret
end
def customBox title, &block
title_height, title_width = get_size_of_text title, fontName: "M+ 1mn", fontStyle: :bold, fontSize: 20
title_width += 30
title_height += 5
stroke do
fill_color '000000'
fill_and_stroke_rounded_rectangle [(page_usable_width - title_width) * 0.5, cursor + 5], title_width, title_height, 10
fill_color '000000'
end
box = bounding_box [0, cursor], width: page_usable_width do
move_down title_height
bounding_box [10, cursor], width: page_usable_width - 20 do
block.call
end
end
stroke do
stroke_color '000000'
line_width 2.5
stroke_rounded_rectangle [0, cursor + box.update_height - 10], page_usable_width, box.update_height - 20, 10
end
move_up box.update_height
font("M+ 1mn", :style => :bold, size: 20, align: :center) do
stroke_color "ffffff"
fill_color "ffffff"
text title, align: :center
end
move_down box.update_height - 20
end