Вопрос по pdf, render, ruby-on-rails-3, report – Как рендерить формат в pdf в рельсах

3

Я хочу, чтобы таблица отображаласьin pdf формат.

мы используем

format.html
format.json{render json: @user}

и т. д. для создания HTML, JSON формат

так же

I want to render the page as pdf .

так какие шаги есть, если это возможно в рельсах ???

Можно ли использовать format.pdf {render: pdf} и т. Д. Mohammad Sadiq Shaikh

Ваш Ответ

5   ответов
0

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

5

prawn а такжеprawn-rails, Вот подробности.

Чтобы моя система была готова

# Add this to your Gemfile
gem 'prawn'
gem 'prawn_rails'

# run
bundle install

Я ударил URLhttp://localhost:3000/regions то есть ударитьindex изRegionsController и он показывает страницу в формате PDF.

у меня естьRegion Модель с одним атрибутомname, Имеет две записи вregions Таблица.

[
 #<Region id: 1, name: "Region 1", ... >,
 #<Region id: 2, name: "Region 2", ... >
]

Мой метод контроллера:

def index
    @regions = Region.all # Should return two region objects :)

    respond_to do |format|
        format.html # index.html.erb
        format.json { render json: @regions }
        format.pdf    # <---------- This will handle the pdf response
    end
end

Я создал файл представления вviews/regions/index.pdf.prawn, В любом случае формат имени файла представления:action.pdf.prawn и файл представления содержит

prawn_document() do |pdf|
    @regions.each {|r| pdf.text r.name}
end

Это просто выведет название регионов.

Это оно. У вас есть страница в формате PDF. Теперь просто поиграйте со всеми другими опциями, предоставленнымиPrawn а такжеPrawn-Rails, Вы можете найти некоторые здесь -http://prawn-rails-demo.heroku.com/

Подумайте только о том, чтобы написать серию блогов, в которых рассказывается, как использовать различные инструменты для создания PDF с рельсами 3.

Дайте мне знать, если это решит вашу проблему.

Почему вы не объединили свой второй ответ с первым?
хм ... это около двух лет назад, но, вероятно, потому что второй ответ так же, как сказать "Привет" вPrawn и третий ответ имеет дело с ним вместе с новым партнеромprawn_rails, Не хотел смешивать это.
7

зарегистрируйте тип PDF для использования в блоках response_to

# config/mime_types.rb
Mime::Type.register "application/pdf", :pdf

Шаг второй: в вашем контроллере ответьте на запрос формата PDF

respond_to do |format|
    format.html
    format.json{render json: @user}
    format.pdf do
        # ...
        # here your PDF generating code
        # ...
        send_data(your_generated_pdf, filename: 'your_filename.pdf', type: 'application/pdf')
    end
end

Для создания PDF вы можете использоватьpdfkit сwkthmltopdfКреветки и некоторые другие. Обратитесь к соответствующей документации по их использованию.

NoMethodError - неопределенный метод `response_to & apos;
7

https://github.com/mileszs/wicked_pdf ]

Вы всегда сможете использовать какformat.pdf пока ваш маршрут поддерживает.:format часть. Так что просто используйте это, чтобы захватить запрос для PDF. Затем отрисовать PDF сwicked_pdf.

Основное использование показывает там, как показано ниже

def controller_action
    ... ... ...
    ... ... ...
    format.pdf do
        render :pdf => "file_name"
    end
end

Вотдругая статья может помочь понять использование.

Спасибо за статью о злой, хотя она была перенесена -snikt.net/blog/2012/04/26/wicked-pdf
4

Прон.

Это кажется более надежным и поддерживает сложные ситуации. Таким образом, вы можете выбрать это для работы с чем-то сложным. Получитьhttp://prawn.majesticseacreature.com/manual.pdf Вот.

Вы хотите использоватьPrawn? или жеWicked_pdf
Креветка, но сначала я хочу рабочий пример, я не понимаю руководства и интернет-материал ... Mohammad Sadiq Shaikh
Можете ли вы привести некоторые примеры, которые будут полезны для понимания ... Mohammad Sadiq Shaikh
Хорошо, я скоро вернусь с примером :)

Похожие вопросы