class PDF::Extract::Document
Constants
- PAGE_ANNOTATIONS_KEY
Attributes
document[R]
Public Class Methods
new(path:)
click to toggle source
# File lib/pdf/extract/document.rb, line 9 def initialize(path:) @document = ::PDF::Reader.new(path) end
Public Instance Methods
annotations()
click to toggle source
# File lib/pdf/extract/document.rb, line 13 def annotations reference_resoler.lookup(annotation_references).map { |h| Annotation.new(h) } end
fields()
click to toggle source
# File lib/pdf/extract/document.rb, line 19 def fields reference_resoler.lookup(field_references).map { |h| Field.new(h, reference_resoler) } end
Private Instance Methods
annotation_references()
click to toggle source
# File lib/pdf/extract/document.rb, line 31 def annotation_references pages.map { |page| annotations_for_page(page) }.flatten.compact end
annotations_for_page(page)
click to toggle source
# File lib/pdf/extract/document.rb, line 27 def annotations_for_page(page) page.attributes[PAGE_ANNOTATIONS_KEY] end
field_references()
click to toggle source
# File lib/pdf/extract/document.rb, line 35 def field_references # PDF Reference 6th Edition, Version 1.7, November 2006 page 672 # Interactive Form Dictionary ifd = objects.values.select { |x| x.respond_to?(:keys) && x.keys.include?(:Fields) }.first || {} refs = ifd[:Fields] refs || [] end
objects()
click to toggle source
# File lib/pdf/extract/document.rb, line 43 def objects document.objects || {} end
pages()
click to toggle source
# File lib/pdf/extract/document.rb, line 47 def pages document.pages end
reference_resoler()
click to toggle source
# File lib/pdf/extract/document.rb, line 51 def reference_resoler ReferenceResolver.new(document: document) end