Рельсы, креветка и динамический стол - PullRequest
2 голосов
/ 04 мая 2011

Я занимаюсь торговым сайтом. На этом сайте должен быть ваучер.

Этот ваучер представляет собой PDF-файл, созданный Prawn gem.

    items = obtain_items
        Prawn::Document.generate "public/#{self.saving.profile.user.id}/PDFs/order_#{self.id}.pdf" do |pdf|
          pdf.font "#{Prawn::BASEDIR}/data/fonts/DejaVuSans.ttf"

          pdf.repeat :all do
            # header
              pdf.image "public/images/fishle-logo-small.png", :at => [480, 735]
              pdf.draw_text "Orden Nro. #{self.id}", :at => [0, 720]
              pdf.draw_text "#{Date.today}", :at => [0, 680]
              pdf.text "Fishle", :size => 36, :align => :center

              # footer
              pdf.draw_text "Fishle.com", :at => [200, 0], :size => 24, :color => "#ff0000"
          end

          #pdf poner texto numero de orden, debajo fecha, numero de pagina debajo de fecha
          #PDF OTROS DATOS COMO INFO CLIENTE, Y DESC ORDEN

          #NOW PRINT IN PDF A TABLE WITH INFORMATION ABOUT ORDER
          pdf.move_down(80)
          pdf.table items, :header => true, :column_widths => {0 => 35, 1 => 80, 2 => 195, 3 => 70, 4 => 70, 5 => 86, }, :row_colors => ["F0F0F0", "FFFFCC"]
          pdf.move_down(10)
          pdf.text "Precio Total:#{self.movements.first.debit_ammount}", :align => :right
          #NOW PRINT THE FOOTER WITH COM INFO ABOUT FISHLE

          10.times do
            pdf.start_new_page
          end
          #NOW PRINT THE PAGE NUMBER
          pdf.page_count.times do |i|
            pdf.go_to_page(i+1)
            pdf.draw_text "Página #{(i+1)} de #{pdf.page_count}", :at => [0, 700]
          end
end

Теперь моя проблема: сайт реализует корзину, в которой может быть n элементов, поэтому я должен динамически сгенерировать таблицу. Эта таблица должна быть move_down (80) от верхнего и нижнего колонтитула.

Как я могу создать эту таблицу с креветками?

Я думаю, что это решение.

Сначала создайте верхний и нижний колонтитулы в поле с абсолютной высотой и шириной. Затем я создаю таблицу, чтобы высота заголовка опускала содержимое таблицы. Нижний колонтитул подтолкнуть стол. Поэтому, когда я начну новую страницу, расположение таблицы будет в порядке.

Мои вопросы:

  • Как я мог создать эти поля для верхнего и нижнего колонтитула, которые выдвигают таблицу?

Заранее спасибо.

1 Ответ

0 голосов
/ 05 мая 2011

Я мог бы решить мою проблему. Я использую поля при создании документа, а затем верхний и нижний колонтитулы устанавливаются как абсолютные позиции

...