A Rails wrapper for the PDFkit library. Meant to be a drop in replacement for princely.
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
.document
.gitignore
Gemfile
MIT-LICENSE
README
README.rdoc
VERSION
ezprint.gemspec
init.rb

README.rdoc

Ezprint

Ezprint is a drop in replacement for the princely plugin. It uses PDFKit as the backend instead of princexml, possibly saving you millions of dollars. I recommend using the Rack middleware component of PDFKit to print PDFs in rails, but this plugin makes an easy transition from prince->PDFKit for those using princely.

Installation

Version 1.0.0 deprecates support for Rails 2. For Rails 2.x support, install an earlier version.

gem 'ezprint'

then run “bundle install”

Example

The examples here are similar to princely, since the
plugin is basically a reworking of the princely source

class PDFExample < ApplicationController
  def show
    respond_to do |format|
      format.html
      format.pdf do
        render :pdf => "My Awesome PDF",
               :template => "controller/action.pdf.erb",
               :stylesheets => ["application","print"]
               :layout => "pdf"
      end
    end
  end

  # Alternatively, you can use make_and_send_pdf to
  # render out a PDF for the action without a
  # respond_to block.
  def pdf
    make_and_send_pdf("file_name")
  end
end

Render Defaults

The defaults for the render options are as follows:

layout:      false
template:    the template for the current controller/action
stylesheets: none

Using another PDF processor

While ezprint has been designed with PDFKit in mind, other PDF processors such as princexml can be used. A princexml processor is included and can be used by setting Ezprint.processor = :prince in an initializer.

It's also easy to create your own processor:

module Ezprint
  module Processors
    class MyProcessor < Base
      def self.process(html_string, options = {})
        # Code to return a PDF string from an html string here.
      end
    end
  end
end

Possible Gotchas

If you're getting a “Broken Pipe” error when rendering PDF documents, you may need to install the wkhtmltopdf-binary gem or put it in your Gemfile.

Credits

  • Michael Bleigh for writing the awesome princely plugin, which most of the code is reworked from.

Resources

  • Copyright © 2012 Jason Stewart, released under the MIT license.