gpt4 book ai didi

ruby - 在 Prawn 表上设置单元格/列宽

转载 作者:数据小太阳 更新时间:2023-10-29 07:03:21 24 4
gpt4 key购买 nike

我正在用 ruby​​ 制作一个小脚本,它会生成一个周计划 PDF 文件,使用 Prawn 作为 PDF 库,我正在努力设计表格的样式。我想为表格中的所有列设置一个静态宽度,这样宽度就不会取决于单元格的内容。

我已经阅读了 Prawn 项目网站的文档(那里有很大的改进空间)并搜索了几个小时,但我不知道如何设置表格中列或单元格的宽度,或者如何设置以任何方式设置列/单元格的样式。我确实得到了一个具有网格布局的 PDF 文件,但单元格的大小变化很大,看起来不那么整洁。

这不起作用:

Prawn::Document.generate(@filename, :page_size => 'A4', :page_layout => :landscape) do
table(course_matrix, :headers => HEADERS, :border_style => :grid, :row_colors => ['dddddd', 'eeeeee'], :column_widths => 50)
end

这是我生成 PDF 方法的当前版本,但它也没有对单元格进行样式化:

def produce_pdf
course_matrix = DataParser.new.parse_for_pdf

Prawn::Document.generate(@filename, :page_size => 'A4', :page_layout => :landscape) do
table(course_matrix, :headers => HEADERS, :border_style => :grid, :row_colors => ['dddddd', 'eeeeee']) do |table|
table.cells.style { |cell| cell.width = 50 }
end
end
end

最佳答案

我会这样做:

pdf = Prawn::Document.new(
:page_size => 'A4',
:page_layout => :landscape,
:margin => [5.mm])
....
....
pdf.table(tbl_data) do
row(0).style(:background_color => 'dddddd', :size => 9, :align => :center, :font_style => :bold)
column(0).style(:background_color => 'dddddd', :size => 9, :padding_top => 20.mm, :font_style => :bold)
row(1).column(1..7).style(:size => 8, :padding => 3)
cells[0,0].background_color = 'ffffff'
row(0).height = 8.mm
row(1..3).height = 45.mm
column(0).width = 28.mm
column(1..7).width = 35.mm
row(1..3).column(6..7).borders = [:left, :right]
row(3).column(6..7).borders = [:left, :right, :bottom]
....
pdf.render()

更多信息 here .

关于ruby - 在 Prawn 表上设置单元格/列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3951760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com