In this episode I will show you how to create PDF documents using the excellent PDF::Writer gem.
# environment.rb
require 'pdf/writer'
Mime::Type.register 'application/pdf', :pdf
# products_controller.rb
def index
@products = Product.find(:all)
respond_to do |format|
format.html
format.pdf do
send_data ProductDrawer.draw(@products), :filename => 'products.pdf', :type => 'application/pdf', :disposition => 'inline'
end
end
end
# product_drawer.rb
def self.draw(products)
pdf = PDF::Writer.new
products.each do |product|
pdf.text product.name
end
pdf.render
end
<p><%= link_to 'PDF Format', formatted_products_path(:pdf) %></p>