2011-09-28 63 views
2

使用虾宝石,我在PDF文件中显示表..现在我想设置表的位置,请指导我如何在这方面努力..红宝石虾宝石,表中的位置

我用下面的代码到genrate PDF格式的报告,

pdftable = Prawn::Document.new 

pdftable.table([["Name","Login","Email"]], 
:column_widths => {0 => 80, 1 => 80, 2 => 80, 3 => 80}, :row_colors => ["d5d5d5"]) 

@users.each do|u| 
pdftable.table([["#{u.name}","#{u.login}","#{u.email}"]], 
:column_widths => {0 => 80, 1 => 80, 2 => 80, 3 => 80 }, :row_colors => ["ffffff"]) 

感谢

+0

你想如何定位? –

回答

2

您可以组合使用功能缩进()与move_down功能和move_up, 因此,例如在位置(50,20)(相对于你的光标位置)设置表看起来就像这样:

move_down 20 
indent(50) do #this is x coordinate 
    pdftable.table([["Name","Login","Email"]], 
    :column_widths => {0 => 80, 1 => 80, 2 => 80, 3 => 80}, :row_colors => ["d5d5d5"]) 

    @users.each do|u| 
    pdftable.table([["#{u.name}","#{u.login}","#{u.email}"]], 
    :column_widths => {0 => 80, 1 => 80, 2 => 80, 3 => 80 }, :row_colors => ["ffffff"]) 
end 

`

0

您需要包括的依赖于对虾布局(除了)到您的Gemfile

# Gemfile 
... 
gem 'prawn' 
gem 'prawn-layout' 
... 

然后运行

bundle install 
从控制台

,让打捆下载新的宝石。

在这之后,你必须包括,要生成的PDF,除了要求,也是虾/布局要求:

# your_pdf_builder_lib.rb 
require 'prawn' 
require 'prawn/layout' 

这样做,唯一你必须写信给中心你的表是这样的:

# your_pdf_builder_lib.rb 
require 'prawn' 
require 'prawn/layout' 
... 
def build_pdf 
    p = Prawn::Document.new(:page_size => "A4") 
    ... 
    data = [["header 1", "header 2"], [data_col1, data_col2], ...] # your content for table 
    ... 
    p.table data, :position => :center # :position => :center will do the trick. 
    ... 
    p.render 
end