class DragonflyPdf::Processors::Page

Public Instance Methods

call(content, page_number = 1, _opts = {}) click to toggle source
# File lib/dragonfly_pdf/processors/page.rb, line 6
def call(content, page_number = 1, _opts = {})
  raise UnsupportedFormat unless content.ext
  raise UnsupportedFormat unless SUPPORTED_FORMATS.include?(content.ext.downcase)

  pdf_properties = DragonflyPdf::Analysers::PdfProperties.new.call(content)
  raise DragonflyPdf::PageNotFound unless pdf_properties['page_numbers'].include?(page_number)

  content.shell_update(ext: 'pdf') do |old_path, new_path|
    "#{gs_command} -dFirstPage=#{page_number} -dLastPage=#{page_number} -o \"#{new_path}\" -f \"#{old_path}\""
  end
end

Private Instance Methods

gs_command() click to toggle source
# File lib/dragonfly_pdf/processors/page.rb, line 20
def gs_command
  'gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH'
end