根据布尔值的结果,是否可以让Prawn填入复选框?例如,我想要一系列问题的“是”和“否”复选框来记录回复。收到信息后,我想填写相应的复选框。这可能吗,如果可以,怎么做?
谢谢!
答案 0 :(得分:3)
有一个要点here来讨论这个问题。 但基本的想法是,您需要使用支持复选框的字体集才能使其生效。
如果你想要更好的东西,prawn不支持开箱即用的复选框,所以你需要为此创建一些东西。
答案 1 :(得分:2)
自己画这个并不难。这对我来说是一个非常灵活的解决方案。
def checkbox(flag, x_position = 7, y_position = @pdf.cursor - 2)
@pdf.bounding_box([x_position, y_position], width: 10, height: 12) do
@pdf.stroke_bounds
@pdf.text("X", align: :center, valign: :center) if flag
end
end
答案 2 :(得分:0)
Prawn 2.2.2(也许更早)内置ZapfDingbats字体。这意味着,如果您生成文本并使用ZapfDingbats字体,则只需要传递文本值“ 3”(即ASCII 51,恰好是ZapfDingbats的复选标记)。
例如,在我的应用中,我制作了一些表格单元格内容,如下所示:
@pdf.make_cell(content: "3", font: "ZapfDingbats", width: 10)
然后产生一个选中标记。
小写的“ o”将产生一个未选中的框。
希望有帮助。