class Iguvium::Image

PDF to image converter

Public Class Methods

read(path, pagenumber = 1, **opts) click to toggle source

Prints single page without text to .rgb file and reads it back to memory

@param path [String] path to PDF file to be read @param pagenumber [Integer] number of page, first page is 1, not 0

@option opts [Boolean] :images (false) consider pictures in PDF as possible table separators @option opts [String] :gspath (nil) explicit path to the GhostScript executable. Use it in case of

non-standard gs executable placement. If not specified, gem tries standard options
like C:/Program Files/gs/gs*/bin/gswin??c.exe on Windows or just gs on Mac and Linux

@return [ChunkyPNG::Image]

# File lib/iguvium/image.rb, line 17
def self.read(path, pagenumber = 1, **opts)
  puts path.shellescape
  rgb = path.gsub(/\.pdf$/, '.rgb')
  Iguvium.logger.info `#{opts[:gspath]} -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pnggray -dGraphicsAlphaBits=4 \
-r72 -dFirstPage=#{pagenumber} -dLastPage=#{pagenumber} \
-dFILTERTEXT #{'-dFILTERIMAGE' unless opts[:images]} -sOutputFile=#{rgb.shellescape} #{path.shellescape} 2>&1`

  image = ChunkyPNG::Image.from_file(rgb)
  File.delete rgb
  image
end