Class: HexaPDF::Type::Form
- Inherits:
-
Stream
- Object
- Object
- Dictionary
- Stream
- HexaPDF::Type::Form
- Defined in:
- lib/hexapdf/type/form.rb
Overview
Represents a form XObject of a PDF document.
See: PDF1.7 s8.10
Constant Summary
Constants included from DictionaryFields
DictionaryFields::Boolean, DictionaryFields::PDFByteString, DictionaryFields::PDFDate
Constants inherited from Object
Object::NOT_DUPLICATABLE_CLASSES
Instance Attribute Summary collapse
-
#source_path ⇒ Object
Returns the path to the PDF file that was used when creating the form object.
Attributes inherited from Object
#data, #document, #must_be_indirect
Instance Method Summary collapse
-
#box ⇒ Object
Returns the rectangle defining the bounding box of the form.
-
#canvas ⇒ Object
Returns the canvas for the form XObject.
-
#contents ⇒ Object
Returns the contents of the form XObject.
-
#contents=(data) ⇒ Object
Replaces the contents of the form XObject with the given string.
-
#process_contents(processor) ⇒ Object
Processes the content streams associated with the page with the given processor object.
-
#resources ⇒ Object
Returns the resource dictionary which is automatically created if it doesn’t exist.
Methods inherited from Stream
#must_be_indirect?, #raw_stream, #set_filter, #stream, #stream=, #stream_decoder, #stream_encoder, #stream_source
Methods inherited from Dictionary
#[], #[]=, define_field, #delete, #each, each_field, #empty?, field, #key?, #to_hash, #type
Methods inherited from Object
#<=>, #==, deep_copy, #deep_copy, #document?, #eql?, #gen, #gen=, #hash, #indirect?, #initialize, #inspect, #must_be_indirect?, #null?, #oid, #oid=, #type, #validate, #value, #value=
Constructor Details
This class inherits a constructor from HexaPDF::Object
Instance Attribute Details
#source_path ⇒ Object
Returns the path to the PDF file that was used when creating the form object.
This value is only set when the form object was created by using the image loading facility (i.e. when treating a single page PDF file as image) and not when the form object was created in any other way (i.e. manually created or already part of a loaded PDF file).
66 67 68 |
# File 'lib/hexapdf/type/form.rb', line 66 def source_path @source_path end |
Instance Method Details
#box ⇒ Object
Returns the rectangle defining the bounding box of the form.
69 70 71 |
# File 'lib/hexapdf/type/form.rb', line 69 def box self[:BBox] end |
#canvas ⇒ Object
Returns the canvas for the form XObject.
The canvas object is cached once it is created so that its graphics state is correctly retained without the need for parsing its contents.
Note that a canvas can only be retrieved for initially empty form XObjects!
107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/hexapdf/type/form.rb', line 107 def canvas unless defined?(@canvas) unless stream.empty? raise HexaPDF::Error, "Cannot create a canvas for a form XObjects with contents" end @canvas = Content::Canvas.new(self) self.stream = @canvas.stream_data set_filter(:FlateDecode) end @canvas end |
#contents ⇒ Object
Returns the contents of the form XObject.
Note: This is the same as #stream but here for interface compatibility with Page.
76 77 78 |
# File 'lib/hexapdf/type/form.rb', line 76 def contents stream end |
#contents=(data) ⇒ Object
Replaces the contents of the form XObject with the given string.
Note: This is the same as #stream= but here for interface compatibility with Page.
83 84 85 |
# File 'lib/hexapdf/type/form.rb', line 83 def contents=(data) self.stream = data end |
#process_contents(processor) ⇒ Object
Processes the content streams associated with the page with the given processor object.
See: HexaPDF::Content::Processor
95 96 97 98 99 |
# File 'lib/hexapdf/type/form.rb', line 95 def process_contents(processor) self[:Resources] = {} if self[:Resources].nil? processor.resources = self[:Resources] Content::Parser.parse(contents, processor) end |
#resources ⇒ Object
Returns the resource dictionary which is automatically created if it doesn’t exist.
88 89 90 |
# File 'lib/hexapdf/type/form.rb', line 88 def resources self[:Resources] ||= document.wrap({}, type: :XXResources) end |