【问题标题】:Check boxes with the Prawn Gem带有虾宝石的复选框
【发布时间】:2013-12-09 13:02:23
【问题描述】:

是否可以根据布尔值的结果让 Prawn 填写复选框?例如,我想为一系列问题设置一个“是”和一个“否”复选框以记录响应。收到信息后,我想填写相应的复选框。这可能吗?如果可以,如何?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby gem prawn


    【解决方案1】:

    Prawn 2.2.2(可能更早)带有内置的 ZapfDingbats 字体。这意味着如果您生成文本并使用 ZapfDingbats 字体,那么您只需要传递一个文本值“3”(这是 ASCII 51,恰好是 ZapfDingbats 的复选标记)。

    例如,在我的应用中,我制作了一些表格单元格内容,如下所示:

    @pdf.make_cell(content: "3", font: "ZapfDingbats", width: 10)
    

    这会产生一个复选标记。

    小写“o”将产生一个未选中的框。

    希望对您有所帮助。

    【讨论】:

      【解决方案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
      

      【讨论】:

      • 谢谢@sockmonk,但是pdf 变量来自哪里?
      【解决方案3】:

      有一个要点here 讨论了这个问题。 基本的想法是你需要使用支持复选框的字体集才能让它工作。

      如果你想要更高级的东西,prawn 不支持开箱即用的复选框,所以你需要为此创建一些东西。

      【讨论】:

      猜你喜欢
      • 2011-11-26
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      相关资源
      最近更新 更多