felixbuenemann / pdftk_utils

The pdftk_utils gem is a port of gs_pdf_utils to pdftk and provides simple pdf processing.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PdftkUtils

This gem provides some simple pdf utilities based on PDFtk and was ported from gs_pdf_utils.

It also can use qpdf if available to decrypt protected pdfs.

Currently it provides methods for detecting pdf files by magic, counting pdf pages and extracting a single, all or a range of pages from a pdf.

It is less resource hungry and faster than eg. ghostscript or imagemagick for the tasks provided.

It's still in alpha state and has no spec coverage, still it might suite your needs.

Installation

Add this line to your application's Gemfile:

gem 'pdftk_utils', :git => "https://github.com/felixbuenemann/pdftk_utils"

And then execute:

$ bundle

Due to it's early state, gem is not currently released on rubygems.

Usage

pdf = PdftkUtils::PdfFile.new "test.pdf"
# get page count
pdf.pages
# extract a page to page1.pdf
pdf.extract_page(1, "page1.pdf")
# extract all pages to separate pdfs (page-1.pdf, page-2.pdf, ...)
pdf.extract_pages("page-%d.pdf")
# extract pages 2 to 5
pdf.extract_page_range(2..5, "page2-5.pdf")
# append test2.pdf and test3.pdf to test.pdf and write to merged.pdf
pdf.append_files "test2.pdf", "test3.pdf", "merged.pdf"
# check if file is a pdf, by checking magic bytes
PdftkUtils.is_pdf? "test.pdf"
# open pdf protected with user password
pdf = PdftkUtils::PdfFile.new "test.pdf", password: "foobar"
# append (some) protected files
pdf.append_files "test2.pdf", ["test3.pdf", "test3pwd"], "merged.pdf"

Configuration

If pdftk or qpdf is not in your path, you can configure it:

PdftkUtils.config do |c|
  c.pdftk_binary = "/path/to/pdftk"
  c.qpdf_binary  = "/path/to/qpdf"
end

Contributing

  1. Fork it
  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 new Pull Request

About

The pdftk_utils gem is a port of gs_pdf_utils to pdftk and provides simple pdf processing.

License:MIT License


Languages

Language:Ruby 100.0%