Skip to content
/ grim Public
forked from jonmagic/grim

Tool for extracting pages from pdf as images and text as strings.

License

Notifications You must be signed in to change notification settings

sdegoeij/grim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                    ,____
                    |---.\
            ___     |    `
           / .-\  ./=)
          |  |"|_/\/|
          ;  |-;| /_|
         / \_| |/ \ |
        /      \/\( |
        |   /  |` ) |
        /   \ _/    |
       /--._/  \    |
       `/|)    |    /
         /     |   |
       .'      |   |
      /         \  |
     (_.-.__.__./  /

Grim

Grim is a simple gem for extracting (reaping) a page from a pdf and converting it to an image as well as extract the text from the page as a string. It basically gives you an easy to use api to ghostscript, imagemagick, and pdftotext specific to this use case.

Prerequisites

You will need ghostscript, imagemagick, and xpdf installed. On the Mac (OSX) I highly recommend using Homebrew to get them installed.


  brew install ghostscript imagemagick xpdf

Installation


  gem install grim

Usage


  pdf   = Grim.reap("/path/to/pdf")         # returns Grim::Pdf instance for pdf
  count = pdf.count                         # returns the number of pages in the pdf
  png   = pdf[3].save('/path/to/image.png') # will return true if page was saved or false if not
  text  = pdf[3].text                       # returns text as a String

  pdf.each do |page|
    puts page.text
  end

We also support using other processors (the default is whatever version of Imagemagick/Ghostscript is in your path).


  # specifying one processor with specific ImageMagick and GhostScript paths
  Grim.processor =  Grim::ImageMagickProcessor.new({:imagemagick_path => "/path/to/convert", :ghostscript_path => "/path/to/gs"})

  # multiple processors with fallback if first fails, useful if you need multiple versions of convert/gs
  Grim.processor = Grim::MultiProcessor.new([
    Grim::ImageMagickProcessor.new({:imagemagick_path => "/path/to/6.7/convert", :ghostscript_path => "/path/to/9.04/gs"}),
    Grim::ImageMagickProcessor.new({:imagemagick_path => "/path/to/6.6/convert", :ghostscript_path => "/path/to/9.02/gs"})
  ])

  pdf = Grim.reap('/path/to/pdf)

Reference

License

See LICENSE for details.

About

Tool for extracting pages from pdf as images and text as strings.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%