Class: Pdfrb::Model::Type::Field

Inherits:
Cos::Dictionary show all
Defined in:
lib/pdfrb/model/type/form_field.rb

Instance Attribute Summary

Attributes inherited from Object

#document, #gen, #oid, #value

Instance Method Summary collapse

Methods inherited from Cos::Dictionary

#[], #[]=, arlington_available?, arlington_default, arlington_key_to_symbol, arlington_loaded_for?, arlington_mark_loaded, arlington_object, arlington_one_type_to_ruby, arlington_required?, arlington_types_to_ruby, arlington_version, define_field, define_field_from_arlington, #delete, #each, each_field, #each_raw, #empty?, field, #initialize, #key?, #keys, lookup_type, own_fields, #pdf_type, register_type, type_map, #validate

Methods inherited from Object

#==, define_type, #deref, #indirect?, #initialize, #must_be_indirect?, #pdf_type, pdf_type

Constructor Details

This class inherits a constructor from Pdfrb::Model::Cos::Dictionary

Instance Method Details

#additional_actionsObject



18
# File 'lib/pdfrb/model/type/form_field.rb', line 18

def additional_actions; self[:AA]; end

#alternate_field_nameObject



11
# File 'lib/pdfrb/model/type/form_field.rb', line 11

def alternate_field_name; self[:TU]; end

#appearance_characteristicsObject



19
# File 'lib/pdfrb/model/type/form_field.rb', line 19

def appearance_characteristics; self[:MK]; end

#button?Boolean

Returns:

  • (Boolean)


21
# File 'lib/pdfrb/model/type/form_field.rb', line 21

def button?; field_type&.to_sym == :Btn; end

#choice?Boolean

Returns:

  • (Boolean)


23
# File 'lib/pdfrb/model/type/form_field.rb', line 23

def choice?; field_type&.to_sym == :Ch; end

#default_valueObject



14
# File 'lib/pdfrb/model/type/form_field.rb', line 14

def default_value; self[:DV]; end

#field_nameObject



10
# File 'lib/pdfrb/model/type/form_field.rb', line 10

def field_name; self[:T]; end

#field_typeObject



9
# File 'lib/pdfrb/model/type/form_field.rb', line 9

def field_type; self[:FT]; end

#field_valueObject



13
# File 'lib/pdfrb/model/type/form_field.rb', line 13

def field_value; self[:V]; end

#flagsObject



17
# File 'lib/pdfrb/model/type/form_field.rb', line 17

def flags; self[:Ff] || 0; end

#fully_qualified_nameObject



58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/pdfrb/model/type/form_field.rb', line 58

def fully_qualified_name
  parts = []
  cur = self
  while cur
    parts << cur.field_name if cur.field_name
    parent_ref = cur.parent
    break unless parent_ref && document

    cur = document.object(parent_ref)
  end
  parts.reverse.join(".")
end

#has_kids?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/pdfrb/model/type/form_field.rb', line 30

def has_kids?
  kids && (!kids.is_a?(Array) || !kids.empty?)
end

#kidsObject



15
# File 'lib/pdfrb/model/type/form_field.rb', line 15

def kids; self[:Kids]; end

#mapping_field_nameObject



12
# File 'lib/pdfrb/model/type/form_field.rb', line 12

def mapping_field_name; self[:TM]; end

#no_export?Boolean

Returns:

  • (Boolean)


28
# File 'lib/pdfrb/model/type/form_field.rb', line 28

def no_export?; flags & 4 != 0; end

#parentObject



16
# File 'lib/pdfrb/model/type/form_field.rb', line 16

def parent; self[:Parent]; end

#read_only?Boolean

Returns:

  • (Boolean)


26
# File 'lib/pdfrb/model/type/form_field.rb', line 26

def read_only?; flags & 1 != 0; end

#required?Boolean

Returns:

  • (Boolean)


27
# File 'lib/pdfrb/model/type/form_field.rb', line 27

def required?; flags & 2 != 0; end

#resolved_parentObject



38
39
40
41
42
43
# File 'lib/pdfrb/model/type/form_field.rb', line 38

def resolved_parent
  ref = parent
  return nil unless ref && document

  document.object(ref)
end

#root_fieldObject



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/pdfrb/model/type/form_field.rb', line 45

def root_field
  cur = self
  while cur&.parent
    parent_ref = cur.parent
    cur = if parent_ref.is_a?(Pdfrb::Model::Reference) && document
            document.object(parent_ref)
          else
            parent_ref
          end
  end
  cur
end

#signature?Boolean

Returns:

  • (Boolean)


24
# File 'lib/pdfrb/model/type/form_field.rb', line 24

def signature?; field_type&.to_sym == :Sig; end

#terminal_field?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/pdfrb/model/type/form_field.rb', line 34

def terminal_field?
  !has_kids?
end

#text?Boolean

Returns:

  • (Boolean)


22
# File 'lib/pdfrb/model/type/form_field.rb', line 22

def text?; field_type&.to_sym == :Tx; end