Pdf Writer для Rails 3 - PullRequest
       3

Pdf Writer для Rails 3

4 голосов
/ 22 января 2011

Кто-нибудь знает о писателе PDF, который прост и хорошо работает с Rails 3?Если это так, может кто-то указать мне на это и дать указания о том, как настроить его для работы с Rails 3?

Ответы [ 5 ]

2 голосов
/ 12 марта 2012

Для тех из вас, кто, как и я несколько раз назад, прибыл сюда в поисках способа создания PDF :: Writer, работающего в приложении rails 3, возможно, при миграции существующего приложения Rails 2.x, я наконец достиг pdf-writer, версия 1.1.8, для работы в приложении rails 3.2.

В Gemfile :

gem 'pdf-writer'

У меня есть это в config / initializers / pdfwriter_template.rb

module ActionView
  module Template::Handlers
    class PDFWriter
      def call(template)
        require_engine 
        "pdf = ::PDF::Writer.new( :paper => 'A4' );" +
        "pdf.compressed = true if Rails.env.to_s == 'production';" +
        template.source + 
        ";pdf.render"
      end

      protected
      def require_engine
        @required ||= begin
          require 'pdf/writer'
          require 'pdf/simpletable'

          true
        end
      end
    end
  end
end

ActiveSupport.on_load(:action_view) do
  ActionView::Template.register_template_handler :rpdf, ActionView::Template::Handlers::PDFWriter.new 
end

тогда в действии контроллера я могу написать что-то вроде:

def pdf_test
  @record = Record.find(params[:id])

  fileout = render_to_string :layout=>false
  send_data(fileout, :type => "application/pdf", :filename => 'test_record.pdf')
end

с файлом шаблона pdf_test.rpdf :

pdf.text "Hello from record number #{@record.number}!!"

!!!!! ВНИМАНИЕ: это не самый лучший способ рендеринга PDF в Rails !!!!!!Вместо этого используйте PDFKit или Prawn !!!!!

2 голосов
/ 23 января 2011

В Rails есть в основном два способа сделать PDF.

Либо вы создаете его с нуля, либо используете что-то для создания PDF из HTML. второй проще, но может оказаться недостаточным, если то, что вы пытаетесь поместить в pdf, является более сложным.

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

Для второго варианта, который проще, вы можете использовать PDFKit , который использует wkhtmltopdf для генерации pdf прямо из html-страницы. Я рекомендую начать с этого и посмотреть, соответствует ли он вашим целям; затем, если вы считаете, что вам нужно больше контроля, а этого недостаточно, используйте креветку.

1 голос
/ 25 марта 2012

Выпущен небольшой гем, который отображает PDF-файлы с использованием креветок в Rails https://github.com/rtsinani/gambas

1 голос
/ 15 ноября 2011

Я бы порекомендовал креветки. Более подробную информацию вы найдете по этой ссылке http://prawn.majesticseacreature.com/

0 голосов
/ 22 января 2011

Предлагаю вам проверить Railscasts PDF эпизодов , много ресурсов там.

...