Skip to content

Instantly share code, notes, and snippets.

@alexdunae
Created April 15, 2015 18:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexdunae/63b3f7de5cd13c264c92 to your computer and use it in GitHub Desktop.
Save alexdunae/63b3f7de5cd13c264c92 to your computer and use it in GitHub Desktop.
prawn-for-mike
# in your Gemfile
gem 'prawn'
gem 'prawn-table'
# then run bundle install
# in app/pdfs/order_pdf.rb
require 'prawn/measurement_extensions'
class OrderPDF < Prawn::Document
attr_reader :order
def initialize(order)
@order = order
super(
skip_page_creation: true,
page_size: [8.5.in, 11.in],
layout: :portrait,
top_margin: 0.5.in,
bottom_margin: 0.5.in,
left_margin: 0.5.in,
right_margin: 0.5.in,
)
end
def generate(render_to = nil)
start_new_page
# prawn code goes here
text "Order \##{order.id}", style: :bold, size: 12
move_down 2
text 'Some other text', style: :bold, size: 12
end
end
# in your controller
class OrdersController < ApplicationController
# ... other action methods
def show
@order = Order.find(params[:id])
respond_to do |format|
format.html
format.pdf do
pdf = OrderPDF.new(@order)
send_data pdf.generate, filename: 'order.pdf', type: 'application/pdf', disposition: 'attachment'
end
end
end
# ... other action methods
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment