class Thingfish::Processor::PDF
Attach PDF
metadata to the Adobe Portable Document Format.
Constants
- REVISION
Version control revision
- VERSION
Package version
Public Instance Methods
on_request( request )
click to toggle source
Synchronous processor API – extract metadata from uploaded PDFs
# File lib/thingfish/processor/pdf.rb, line 30 def on_request( request ) reader = ::PDF::Reader.new( request.body ) metadata = self.extract_pdf_metadata( reader ) request.add_metadata( metadata ) end
Protected Instance Methods
extract_pdf_metadata( reader )
click to toggle source
Normalize metadata from the PDFReader object and return it as a hash.
# File lib/thingfish/processor/pdf.rb, line 44 def extract_pdf_metadata( reader ) self.log.debug "Extracting PDF metadata..." pdf_metadata = { 'pdf:version' => reader.pdf_version, 'pdf:pagecount' => reader.page_count, }.reject {|_,v| v.nil? } reader.info.each_pair do |key, val| pdf_metadata[ "pdf:#{key}" ] = val unless val.is_a?( ::PDF::Reader::Reference ) end self.log.debug " raw PDF metadata: %p" % [ pdf_metadata ] return pdf_metadata end