Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过其html表示在对虾中创建一个表_Ruby On Rails_Ruby_Gem_Prawn - Fatal编程技术网

Ruby on rails 通过其html表示在对虾中创建一个表

Ruby on rails 通过其html表示在对虾中创建一个表,ruby-on-rails,ruby,gem,prawn,Ruby On Rails,Ruby,Gem,Prawn,早期的Prawngem允许通过其html表示创建一个表(将一个html表字符串作为输入参数,如…)。现在我在手册里找不到这个设施 那么现在可能吗?若并没有,那个么还有其他选择吗?你们可以使用PrawntoGem作为模板,使用prawn创建表格 例如,如果您定义以下模板,它将绘制具有3列x、y和z宽度的表格 data = [ ["Column 1", "Column 2", "Column 3"] ] table(data, :column_widths => [x,y,z], :cell_

早期的
Prawn
gem允许通过其html表示创建一个表(将一个html表字符串作为输入参数,如
)。现在我在手册里找不到这个设施


那么现在可能吗?若并没有,那个么还有其他选择吗?

你们可以使用PrawntoGem作为模板,使用prawn创建表格

例如,如果您定义以下模板,它将绘制具有3列x、y和z宽度的表格

data = [ ["Column 1", "Column 2", "Column 3"] ]
table(data, :column_widths => [x,y,z], :cell_style => { :inline_format => true })

TL;DR:如果您的用例是1)生成HTML和PDF数据(如在线发票等),2)确保两者看起来相同,那么Prawn并不是最好的解决方案(这与Prawn自述中的建议相同)

在您的例子中,您可以使用Nokogiri或解析HTML,并从HTML表中提取数据,然后使用它通过Prawn生成PDF表示。HTML样式可能无法直接转换为Prawn使用的样式,因此,即使有大量的代码争论,您也可能无法实现样式的一致性-从
royalGhost
对答案的评论中,我假设这是您想要的结果。此外,如果您的HTML表是嵌套的,并且解析代码不能满足这一要求,那么简单的Nokogiri解析解决方案将不起作用。例如,考虑这一点:

<table>
  <tr>
    <td>First Column, First Row</td>
    <td>Second Column, First Row</td>
  </tr>
  <tr>
    <table>
      <tr>
        <td>First Column, Second Row</td>
        <td>Second Column, Second Row</td>
        <td>Third Column, Second Row</td>
      </tr>
    </table>
  </tr>
</table>

第一列,第一行
第二列,第一行
第一列,第二行
第二列,第二行
第三列,第二行
然后,在Ruby解析代码段中,您应该确保内部
..
被解析为
Prawn::Table
对象,而不是一行
Prawn::Table::Cell
对象

任何基于
wkhtmltopdf
的选项,如或,都提供了实现HTML-to-PDF转换解决方案的更简洁的方法

您有两个选择:

  • 完全抛弃对虾,选择上面的解决方案
  • 通过Nokogiri/Upton从HTML中提取数据并生成PDF,使用对虾,不用担心样式与HTML表示中的样式相同

  • html表(比如
    )在哪里?我不认为。。。标签不再受支持。这是实现相同结果的另一种方法(您也要求这样做。)但我将其作为输入字符串,我需要将该表插入pdf文档中,如何处理?定义列后,您可以使用与上面相同的标记绘制表:data=[[“第1行的第1列数据”,“第1行的第2列数据”,“第1行的第3列数据”]]表(数据,:列宽=>[x,y,z],:单元格样式=>{:内联格式=>true})我有一些css样式附在该表中,使用您的方法绘制它并不容易。