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

#[], #[]=, apply_arlington_definition, arlington_default, arlington_key_to_symbol, arlington_one_type_to_ruby, arlington_required?, arlington_scalar, 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, merged_field, own_fields, #pdf_type, register_type, type_map, #validate

Methods included from Cos::ArlingtonBacked

#arlington_object

Methods inherited from Object

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

Constructor Details

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

Instance Method Details

#additional_actionsObject



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

def additional_actions; self[:AA]; end

#alternate_field_nameObject



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

def alternate_field_name
  Pdfrb::Model::Cos::TextString.decode(self[:TU])
end

#appearance_characteristicsObject



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

def appearance_characteristics; self[:MK]; end

#button?Boolean

Returns:

  • (Boolean)


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

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

#choice?Boolean

Returns:

  • (Boolean)


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

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

#default_valueObject



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

def default_value
  Pdfrb::Model::Cos::TextString.decode(self[:DV])
end

#field_nameObject



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

def field_name
  Pdfrb::Model::Cos::TextString.decode(self[:T])
end

#field_typeObject



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

def field_type; self[:FT]; end

#field_valueObject



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

def field_value
  Pdfrb::Model::Cos::TextString.decode(self[:V])
end

#flagsObject



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

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

#fully_qualified_nameObject



75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/pdfrb/model/type/form_field.rb', line 75

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)


47
48
49
# File 'lib/pdfrb/model/type/form_field.rb', line 47

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

#kidsObject



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

def kids; self[:Kids]; end

#mapping_field_nameObject



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

def mapping_field_name
  Pdfrb::Model::Cos::TextString.decode(self[:TM])
end

#no_export?Boolean

Returns:

  • (Boolean)


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

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

#parentObject



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

def parent; self[:Parent]; end

#read_only?Boolean

Returns:

  • (Boolean)


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

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

#required?Boolean

Returns:

  • (Boolean)


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

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

#resolved_parentObject



55
56
57
58
59
60
# File 'lib/pdfrb/model/type/form_field.rb', line 55

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

  document.object(ref)
end

#root_fieldObject



62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/pdfrb/model/type/form_field.rb', line 62

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)


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

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

#terminal_field?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/pdfrb/model/type/form_field.rb', line 51

def terminal_field?
  !has_kids?
end

#text?Boolean

Returns:

  • (Boolean)


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

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