使用prawn gem我在pdf文件中显示表..现在我想设置表的位置,请指导我如何处理这个..
我使用以下代码生成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)
你可以将函数indent()与函数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
`
答案 1 :(得分:0)
您可能需要在表格周围创建bounding_box
。请参阅documentation for bounding boxes。
另外:您是否意识到您正在为标题和每个用户创建一个新表?
答案 2 :(得分:0)
您需要将 prawn-layout 的依赖项(除了 prawn )添加到Gemfile
:
# Gemfile
...
gem 'prawn'
gem 'prawn-layout'
...
然后运行
bundle install
从控制台,让bundler下载新的gem。
在此之后,除了 prawn 要求以及 prawn / layout 要求之外,您还必须包括要生成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