module Origami::ResourcesHolder
Public Instance Methods
add_colorspace(colorspace, name = nil)
click to toggle source
# File lib/origami/page.rb, line 128 def add_colorspace(colorspace, name = nil) add_resource(Resources::COLORSPACE, colorspace, name) end
add_extgstate(extgstate, name = nil)
click to toggle source
# File lib/origami/page.rb, line 125 def add_extgstate(extgstate, name = nil) add_resource(Resources::EXTGSTATE, extgstate, name) end
add_font(font, name = nil)
click to toggle source
# File lib/origami/page.rb, line 144 def add_font(font, name = nil) add_resource(Resources::FONT, font, name) end
add_pattern(pattern, name = nil)
click to toggle source
# File lib/origami/page.rb, line 132 def add_pattern(pattern, name = nil) add_resource(Resources::PATTERN, pattern, name) end
add_properties(properties, name = nil)
click to toggle source
# File lib/origami/page.rb, line 148 def add_properties(properties, name = nil) add_resource(Resources::PROPERTIES, properties, name) end
add_resource(type, rsrc, name = nil)
click to toggle source
Adds a resource of the specified type in the current object. If name is not specified, a new name will be automatically generated.
# File lib/origami/page.rb, line 156 def add_resource(type, rsrc, name = nil) if name.nil? rsrc_name = self.resources(type).key(rsrc) return rsrc_name if rsrc_name end name ||= new_id(type) target = self.is_a?(Resources) ? self : (self.Resources ||= Resources.new) rsrc_dict = (target[type] and target[type].solve) || (target[type] = Dictionary.new) rsrc_dict[name.to_sym] = rsrc name end
add_shading(shading, name = nil)
click to toggle source
# File lib/origami/page.rb, line 136 def add_shading(shading, name = nil) add_resource(Resources::SHADING, shading, name) end
add_xobject(xobject, name = nil)
click to toggle source
# File lib/origami/page.rb, line 140 def add_xobject(xobject, name = nil) add_resource(Resources::XOBJECT, xobject, name) end
colorspaces()
click to toggle source
# File lib/origami/page.rb, line 196 def colorspaces; each_colorspace.to_h end
each_colorspace(&block)
click to toggle source
# File lib/origami/page.rb, line 187 def each_colorspace(&block); each_resource(Resources::COLORSPACE, &block) end
each_extgstate(&block)
click to toggle source
# File lib/origami/page.rb, line 188 def each_extgstate(&block); each_resource(Resources::EXTGSTATE, &block) end
each_font(&block)
click to toggle source
# File lib/origami/page.rb, line 192 def each_font(&block); each_resource(Resources::FONT, &block) end
each_pattern(&block)
click to toggle source
# File lib/origami/page.rb, line 189 def each_pattern(&block); each_resource(Resources::PATTERN, &block) end
each_property(&block)
click to toggle source
# File lib/origami/page.rb, line 193 def each_property(&block); each_resource(Resources::PROPERTIES, &block) end
each_resource(type) { |value, solve| ... }
click to toggle source
Iterates over the resources by type.
# File lib/origami/page.rb, line 174 def each_resource(type) target = self.is_a?(Resources) ? self : (self.Resources ||= Resources.new) rsrc = (target[type] and target[type].solve) return enum_for(__method__, type) { rsrc.is_a?(Dictionary) ? rsrc.length : 0 } unless block_given? return unless rsrc.is_a?(Dictionary) rsrc.each_pair do |name, obj| yield(name.value, obj.solve) end end
each_shading(&block)
click to toggle source
# File lib/origami/page.rb, line 190 def each_shading(&block); each_resource(Resources::SHADING, &block) end
each_xobject(&block)
click to toggle source
# File lib/origami/page.rb, line 191 def each_xobject(&block); each_resource(Resources::XOBJECT, &block) end
extgstates()
click to toggle source
# File lib/origami/page.rb, line 195 def extgstates; each_extgstate.to_h end
fonts()
click to toggle source
# File lib/origami/page.rb, line 200 def fonts; each_font.to_h end
patterns()
click to toggle source
# File lib/origami/page.rb, line 197 def patterns; each_pattern.to_h end
properties()
click to toggle source
# File lib/origami/page.rb, line 201 def properties; each_property.to_h end
resources(type = nil)
click to toggle source
Returns a Hash of all resources in the object or only the specified type.
# File lib/origami/page.rb, line 206 def resources(type = nil) if type.nil? self.extgstates .merge self.colorspaces .merge self.patterns .merge self.shadings .merge self.xobjects .merge self.fonts .merge self.properties else self.each_resource(type).to_h end end
shadings()
click to toggle source
# File lib/origami/page.rb, line 198 def shadings; each_shading.to_h end
xobjects()
click to toggle source
# File lib/origami/page.rb, line 199 def xobjects; each_xobject.to_h end