Class: Poppler::Document
- Inherits:
-
Object
- Object
- Poppler::Document
- Includes:
- Enumerable
- Defined in:
- lib/poppler/document.rb
Instance Method Summary collapse
- #each ⇒ Object
- #index_iter ⇒ Object
-
#initialize(*args) ⇒ Document
constructor
A new instance of Document.
- #initialize_raw ⇒ Object
- #save(uri) ⇒ Object
- #save_a_copy(uri) ⇒ Object
- #save_a_copy_raw ⇒ Object
- #save_raw ⇒ Object
Constructor Details
#initialize(*args) ⇒ Document
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/poppler/document.rb', line 24 def initialize(*args) if args.size == 1 and args[0].is_a?(Hash) = args[0] else uri_or_data, password = args if pdf_data?(uri_or_data) = { :data => uri_or_data, :password => password } else = { :uri => ensure_uri(uri_or_data), :password => password } end end data = [:data] uri = [:uri] path = [:path] stream = [:stream] length = [:length] file = [:file] password = [:password] if data # Workaround: poppler_document_new_from_data()'s .gir # accepts PDF data as UTF-8 string. PDF data is not UTF-8 # string. So UTF-8 validation is failed. # # TODO: Enable the following: # initialize_new_from_data(data, password) @file = Tempfile.new(["poppler", ".pdf"]) @file.binmode @file.write(data) @file.close initialize_new_from_file(ensure_uri(@file.path), password) elsif uri initialize_new_from_file(uri, password) elsif path uri = ensure_uri(path) initialize_new_from_file(uri, password) elsif stream if length.nil? raise(ArgumentError, "must specify :length for :stream: #{.inspect}") end initialize_new_from_stream(stream, length, password) elsif file case file when String, Pathname initialize(path: file, password: password) else initialize_new_from_gfile(file, password) end else = "must specify one of :data, :uri, :path, :stream or :file: " + .inspect raise(ArgumentError, ) end end |
Instance Method Details
#each ⇒ Object
91 92 93 94 95 96 97 |
# File 'lib/poppler/document.rb', line 91 def each return to_enum(__method__) unless block_given? n_pages.times do |i| yield get_page(i) end end |
#index_iter ⇒ Object
109 110 111 |
# File 'lib/poppler/document.rb', line 109 def index_iter IndexIter.new(self) end |
#initialize_raw ⇒ Object
23 |
# File 'lib/poppler/document.rb', line 23 alias_method :initialize_raw, :initialize |
#save(uri) ⇒ Object
100 101 102 |
# File 'lib/poppler/document.rb', line 100 def save(uri) save_raw(ensure_uri(uri)) end |
#save_a_copy(uri) ⇒ Object
105 106 107 |
# File 'lib/poppler/document.rb', line 105 def save_a_copy(uri) save_a_copy_raw(ensure_uri(uri)) end |
#save_a_copy_raw ⇒ Object
104 |
# File 'lib/poppler/document.rb', line 104 alias_method :save_a_copy_raw, :save_a_copy |
#save_raw ⇒ Object
99 |
# File 'lib/poppler/document.rb', line 99 alias_method :save_raw, :save |