Dragonfly PDF

Build Status Gem Version Coverage Status

Dragonfly PDF analysers and processors.



Add this line to your application’s Gemfile:

gem 'dragonfly_pdf'

And then execute:

$ bundle

Or install it yourself as:

$ gem install dragonfly_pdf


The analyser and processors are added by configuring the plugin

ruby Dragonfly.app.configure do plugin :pdf end

Supported Formats

List of supported formats is available as:

ruby DragonflyPdf::SUPPORTED_FORMATS # => ["pdf"] DragonflyPdf::SUPPORTED_OUTPUT_FORMATS # => ["pdf", "svg", …]


PDF properties

Reads properties from a PDF.

ruby pdf.pdf_properties # => { page_count: 4, page_dimensions: [[210.0, 297.0], [210.0, 297.0], [210.0, 297.0], [210.0, 297.0]], page_numbers: [1, 2, 3, 4], aspect_ratios: [0.71, 0.71, 0.71, 0.71], page_rotations: [0.0, 90.0, 0.0, 0.0] }



Append PDFs.

ruby pdf.append([pdf_1, pdf_2, pdf_3])


Extracts page from PDF.

ruby pdf.page(page_number=1)

Page Thumb

Generates thumbnail of a specified page using the thumb processor of DragonflyLibvips.

ruby pdf.page_thumb(page_number=1, '500x', opts={})

The default format is png, others can be specified

ruby { 'format' => 'jpg', }

For more options see the thumb doc.

Remove password

Remove password from password protected PDF.

ruby pdf.remove_password


Rotate all pages.

ruby pdf.rotate(:left)

Rotate selected pages.

ruby pdf.rotate(1 => :left, 3 => :right)

absolute: north|south|east|west relative: left|right|down


Stamp every page of a PDF with another PDF.

ruby pdf.stamp(stamp_pdf)

Subset Fonts

Subset fonts in PDF.

ruby pdf.subset_fonts


  1. Fork it ( https://github.com/tomasc/dragonfly_pdf/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request