class Rabbit::Parser::PDF

Public Class Methods

match?(source) click to toggle source
# File lib/rabbit/parser/pdf.rb, line 13
def match?(source)
  extension = source.extension
  if extension.nil?
    source.read.start_with?("%PDF-1.")
  else
    /\Apdf\z/i =~ extension
  end
end

Public Instance Methods

parse() click to toggle source
# File lib/rabbit/parser/pdf.rb, line 24
def parse
  @pdf = Tempfile.new("rabbit-pdf")
  @pdf.binmode
  @pdf.print(@source.read)
  @pdf.close
  doc = Poppler::Document.new("file://#{@pdf.path}")

  title_page, *rest = doc.to_a

  @canvas << PopplerTitleSlide.new(title_page, doc)
  rest.each do |page|
    @canvas << PopplerSlide.new(page)
  end
end