prawn-fillform 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/prawn-fillform/version.rb +1 -1
- data/lib/prawn-fillform.rb +19 -13
- metadata +1 -1
data/lib/prawn-fillform.rb
CHANGED
@@ -111,31 +111,41 @@ module Prawn
|
|
111
111
|
def initialize(state)
|
112
112
|
@state = state
|
113
113
|
@refs = []
|
114
|
+
@refs_2 = []
|
114
115
|
collect!
|
115
116
|
end
|
116
117
|
|
117
118
|
def delete!
|
118
119
|
@refs.each do |ref|
|
120
|
+
ref[:annots].delete(ref[:ref])
|
121
|
+
end
|
122
|
+
@refs_2.each do |ref|
|
119
123
|
ref[:acroform_fields].delete(ref[:field])
|
120
|
-
deref(deref(ref[:page])[:Annots]).delete(ref[:field])
|
121
124
|
end
|
122
125
|
end
|
123
126
|
|
124
127
|
protected
|
125
128
|
def collect!
|
129
|
+
@state.pages.each_with_index do |page, i|
|
130
|
+
annots = deref(page.dictionary.data[:Annots])
|
131
|
+
annots.map do |ref|
|
132
|
+
reference = {}
|
133
|
+
reference[:ref] = ref
|
134
|
+
reference[:annots] = annots
|
135
|
+
@refs << reference
|
136
|
+
end
|
137
|
+
end
|
126
138
|
|
127
|
-
|
128
|
-
|
129
|
-
|
139
|
+
root = deref(@state.store.root)
|
140
|
+
acro_form = deref(root[:AcroForm])
|
141
|
+
form_fields = deref(acro_form[:Fields])
|
130
142
|
|
131
143
|
@state.pages.each_with_index do |page, i|
|
132
144
|
form_fields.map do |ref|
|
133
|
-
field_dict = deref(ref)
|
134
145
|
reference = {}
|
135
|
-
reference[:page] = field_dict[:P]
|
136
146
|
reference[:field] = ref
|
137
147
|
reference[:acroform_fields] = form_fields
|
138
|
-
@
|
148
|
+
@refs_2 << reference
|
139
149
|
end
|
140
150
|
end
|
141
151
|
end
|
@@ -153,15 +163,11 @@ module Prawn
|
|
153
163
|
|
154
164
|
def acroform_fields
|
155
165
|
acroform = {}
|
156
|
-
|
157
|
-
root = deref(state.store.root)
|
158
|
-
acro_form = deref(root[:AcroForm])
|
159
|
-
form_fields = deref(acro_form[:Fields])
|
160
|
-
|
161
166
|
state.pages.each_with_index do |page, i|
|
167
|
+
annots = deref(page.dictionary.data[:Annots])
|
162
168
|
page_number = "page_#{i+1}".to_sym
|
163
169
|
acroform[page_number] = []
|
164
|
-
|
170
|
+
annots.map do |ref|
|
165
171
|
dictionary = deref(ref)
|
166
172
|
|
167
173
|
next unless deref(dictionary[:Type]) == :Annot and deref(dictionary[:Subtype]) == :Widget
|