class Poppler::Document
Public Class Methods
new(*args)
click to toggle source
# File lib/poppler/document.rb, line 22 def initialize(*args) if args.size == 1 and args[0].is_a?(Hash) options = args[0] else uri_or_data, password = args if pdf_data?(uri_or_data) options = { :data => uri_or_data, :password => password } else options = { :uri => ensure_uri(uri_or_data), :password => password } end end data = options[:data] uri = options[:uri] path = options[:path] stream = options[:stream] length = options[:length] file = options[:file] password = options[: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) @bytes = GLib::Bytes.new(data) @stream = Gio::MemoryInputStream.new(@bytes) initialize_new_from_stream(@stream, data.bytesize, 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: #{options.inspect}") end initialize_new_from_stream(stream, length, password) elsif file if file.is_a?(String) initialize(path: file, password: password) else initialize_new_from_gfile(file, password) end else message = "must specify one of :data, :uri, :path, :stream or :file: " + options.inspect raise(ArgumentError, message) end end
Also aliased as: initialize_raw
Public Instance Methods
each() { |get_page(i)| ... }
click to toggle source
# File lib/poppler/document.rb, line 86 def each return to_enum(__method__) unless block_given? n_pages.times do |i| yield get_page(i) end end
index_iter()
click to toggle source
# File lib/poppler/document.rb, line 104 def index_iter IndexIter.new(self) end
save(uri)
click to toggle source
# File lib/poppler/document.rb, line 95 def save(uri) save_raw(ensure_uri(uri)) end
Also aliased as: save_raw
save_a_copy(uri)
click to toggle source
# File lib/poppler/document.rb, line 100 def save_a_copy(uri) save_a_copy_raw(ensure_uri(uri)) end
Also aliased as: save_a_copy_raw
Private Instance Methods
ensure_uri(uri)
click to toggle source
# File lib/poppler/document.rb, line 117 def ensure_uri(uri) if GLib.path_is_absolute?(uri) GLib.filename_to_uri(uri) elsif /\A[a-zA-Z][a-zA-Z\d\-+.]*:/.match(uri) uri else GLib.filename_to_uri(File.expand_path(uri)) end end
pdf_data?(data)
click to toggle source
# File lib/poppler/document.rb, line 113 def pdf_data?(data) data.start_with?("%PDF-1.") end