рубиновый креветочный камень, позиция стола - PullRequest
2 голосов
/ 28 сентября 2011

используя драгоценный камень креветок я отображаю таблицу в 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"])

спасибо

Ответы [ 3 ]

2 голосов
/ 19 декабря 2011

Вы можете использовать функцию 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

`

0 голосов
/ 23 апреля 2012

Вам необходимо включить зависимость prawn-layout (в дополнение к prawn ) в ваш Gemfile:

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

, а затем запустить

bundle install

с консоли, чтобы позволить bundler загружать новый гем.

После этого вы должны указать, где вы хотите создать свой PDF, в дополнение к prawn требование, а также креветка / макет требование:

# 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
0 голосов
/ 28 сентября 2011

Вам, вероятно, нужно создать bounding_box вокруг стола. См. документацию для ограничительных рамок .

Также: Вы понимаете, что создаете новую таблицу для заголовка и для каждого пользователя?

...