如何创建一个带有两行标题的表--PrawnPDF

时间:2017-09-25 06:00:07

标签: ruby prawn

我有一个用PrawnPDF生成的简单表,看起来像下面那个

|h1|h2|h3|h4|
-------------
|d1|d2|d3|d4|
|d1|d2|d3|d4|
|d1|d2|d3|d4|

由以下代码生成

tb = [["h1", "h2", "h3", "h4"],
      ["d1", "d2", "d3", "d4"],
      ["d1", "d2", "d3", "d4"],
      ["d1", "d2", "d3", "d4"]]

table(tb)do
  row(0).font_style = :bold
end

现在标题需要由两行构成,如下所示

|text       |
|h1|h2|h3|h4|
-------------
|d1|d2|d3|d4|
|d1|d2|d3|d4|
|d1|d2|d3|d4|

我尝试制作一个子表并将其用作标题,但它不会跨越所有表。它看起来像

|text       |
|h1|h2|h3|h4|
----------------------
|d1         |d2|d3|d4|
|d1         |d2|d3|d4|
|d1         |d2|d3|d4|

并且没有行是粗体。

这里的代码到目前为止

text = make_cell(content: 'text', colspan: 4)
header_array = [[text], ["h1", "h2", "h3", "h4"]]
header = make_table(header_array)

tb = [[header],
      ["d1", "d2", "d3", "d4"],
      ["d1", "d2", "d3", "d4"],
      ["d1", "d2", "d3", "d4"]]

table(tb)do
  row(0).font_style = :bold
end

任何想法我如何跨越标题?

PS我正在使用prawn 1.3.0版和prawn-table 0.2.2

由于

更新 - 根据Florent的答案,如果你想/需要将一个块传递给桌子。

header_text = [[{content: "Text", colspan: 4}]]
tb = [["h1", "h2", "h3", "h4"],
  ["d1", "d2", "d3", "d4"],
  ["d1", "d2", "d3", "d4"],
  ["d1", "d2", "d3", "d4"]]

table(header_text + tb)do
  row(0).font_style = :bold
  self.header = 2
end

1 个答案:

答案 0 :(得分:2)

你尝试使用标题参数吗?

header_text = [[{content: "Text", colspan: 4}]]
tb = [["h1", "h2", "h3", "h4"],
  ["d1", "d2", "d3", "d4"],
  ["d1", "d2", "d3", "d4"],
  ["d1", "d2", "d3", "d4"]]

table(header_text + tb, header: 2)do
  row(0).font_style = :bold
end