【问题标题】:rails prawn draw a line inside table or cellrails prawn 在表格或单元格内画一条线
【发布时间】:2017-04-03 04:46:51
【问题描述】:

我有一张由许多单元格组成的表格,我想在一个单元格中画一条水平线,如果我尝试使用horizo​​ntal_line,它会显示表格文档不支持的类型。

我正在使用虾红宝石

cell_1 = make_cell(:content => "this row content comes directly ", height: 62.5.mm, size: 6)
cell_2 = make_cell(:content => "this row content comes directly ", height: 62.5.mm, size: 6)
cell_3 = make_cell(:content => "this row content comes directly ", height: 62.5.mm, size: 6)
t = make_table([[cell_1],[cell2], [cell3])
t.draw

我试过喜欢用

cell4 = horizontal_rule(some values)

当我添加 cell4 时,make_table 显示错误无法识别的表格内容。

如何在表格内画线或制作单元格

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 prawn


    【解决方案1】:

    几个月前我一直在尝试做同样的事情,但最后我决定忘记使用虾,因为它让每件事都变得困难!如果您有足够的时间使用另一个 pdf 生成器,我建议您使用 Wicked_PDF gem (here) 并使用简单的 htmlcss 绘制表格。 Wicked pdf 更快更容易,让您更有创意。

    【讨论】:

    • 我使用 wicked_pdf 很长时间,直到我不得不制作更大的 pdf。对于虾,您必须花一天时间阅读他们的手册github.com/prawnpdf/prawn#manual。您必须在另一个世界中挖掘:PDF。然后,它会更容易、更快、更强大。
    【解决方案2】:

    您需要重写 Prawn::Table::Cell 类。我是这样做的:

    class RedTriangleCell < Prawn::Table::Cell
      def natural_content_width
        0
      end
    
      def natural_content_height
        0
      end
    
      def draw_content
        color = @pdf.fill_color
        @pdf.fill_color("e93131")
        @pdf.fill_polygon([-5,2], [-1,8], [3,2])
        @pdf.fill_color(color)
      end
    end
    

    您可以删除此实例作为单元格内容,它将呈现您在draw_content 中的任何内容。

    【讨论】:

    • 谢谢,杰夫! draw_content 返回Pdf::Core::Stream。但是,如何将它带入细胞? make_cell(content: &lt;.draw_content&gt;) 没用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多