加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 22:55:21 所属栏目:百科 来源:网络整理
导读:我正在制作一个带有 ruby的小脚本,它会生成一个星期计划PDF文件,使用Prawn作为PDF库,我正在努力设计表格.我想为表中的所有列设置静态宽度,以便宽度不依赖于单元格的内容. 我已经从Prawn项目网站上阅读了文档(那里有很多改进的空间)并用Google搜索了几个小时,
我正在制作一个带有 ruby的小脚本,它会生成一个星期计划PDF文件,使用Prawn作为PDF库,我正在努力设计表格.我想为表中的所有列设置静态宽度,以便宽度不依赖于单元格的内容.

我已经从Prawn项目网站上阅读了文档(那里有很多改进的空间)并用Google搜索了几个小时,但是我迷失了如何为表格中的列或单元格设置宽度,或者如何设置列的样式/细胞以任何方式.我确实得到了一个有网格布局的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_layout => :landscape) do
    table(course_matrix,'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',: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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读