Главная
Создание файлов PDF файлов в приложениях Ruby on Rails Версия в формате PDF Версия для печати Отправить на e-mail
Динамическая генерация PDF файлов очень полезна, когда нужно создать файл отчета илисохранить данные в удобном виде. Для этого существует такой плагин в Ruby on Rails «pdf-writer». Итак, разберемся как с ним работать.
1.    Установим его в приложение. Для этого нужно ввести команду «gem install pdf-writer»
C:\myproject>gem install pdf-writer
Successfully installed pdf-writer-1.1.8
1 gem installed
Installing ri documentation for pdf-writer-1.1.8...
Installing RDoc documentation for pdf-writer-1.1.8...
2.  После установки, необходимо  отредактировать  файл «environment.rb»

И поместить в него такие строки:

require 'pdf/writer'

Mime::Type.register 'application/pdf', :pdf

Первая подключает  этот плагин  к  нашему приложению, а вторая устанавливает новый тип  данных Mime,  с которыми  оно будет работать.
3. На конец, самое главное,- собственно генератор PDF файлов в приложении. В файле app/controllers/application.rb  пишем вспомогательный метод:  

  def render_to_pdf(options = nil)
  data = render_to_string(options)
  pdf = PDF::HTMLDoc.new
  pdf.set_option :bodycolor, :white
  pdf.set_option :toc, false
  pdf.set_option :portrait, true
  pdf.set_option :links, false
  pdf.set_option :webpage, true
  pdf.set_option :left, '2cm'
  pdf.set_option :right, '2cm'
  pdf << data
  pdf.generate
  end

Этот метод  будет использоваться при генерировании PDF файл. Он принимает данные и превращает их в файл.
 

4.  Затем мы редактируем стандартный метод  «index» нашего приложения:

 def index
    @goods = Good.find(:all)
    respond_to do |format|
      format.html
      format.xml { head :ok }
      format.pdf { send_data render_to_pdf({ :action => 'index.rpdf', :layout => 'pdf_report' }) }
    end
  end

Здесь  мы организуем  форматирование  данных, получаемых из базы и перенапрваляем выход во вновь созданный вспомогательный метод «render_to_pdf».

5.  Далее изменим файл вида «index» и  вставим в него следующее:


<%= link_to 'PDF', formatted_goods_path(:pdf) %>

Линк вызывает метод контроллера для генерирования  PDF документа.


Это все. Теперь, когда пользователь нажмет на вышеуказанный линк, то он получит PDF файл.



опубликовано
Добавить новыйПоиск
Добавить комментарий
Имя:
E-mail:
 
Веб-сайт:
Заголовок:
UBB-Код:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Security Image
Пожалуйста, введите проверочный код, который Вы видите на картинке.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

 
< Пред.   След. >


© www.aurov.com - Личный сайт Александра Юрова 2008 All rights reserved
Tags
cstring previous Сначала lresult dropdown schema local handlers образом нужно mislav specific destruction этому mime onnavigationhome afxext данного ccmdui successfully cmybrowserapp название редактор быть classes классу button primary новое список

Joomla Modul

Главная
Статьи
Творчество
Галерея
Кто он-лайн
Jx Random Quote
There was a boy called Eustace Clarence Scrubb, and he almost deserved it. -- C. S. Lewis, The Chronicles of Narnia