lib/pdf_ravager/strategies/smart.rb in pdf_ravager-0.2.0 vs lib/pdf_ravager/strategies/smart.rb in pdf_ravager-0.2.1
- old
+ new
@@ -2,10 +2,20 @@
module Strategies
class Smart
def initialize(stamper)
@acro_form = Strategies::AcroForm.new(stamper)
@xfa = Strategies::XFA.new(stamper)
+ afields = stamper.getAcroFields
+ @type = if afields.getXfa.isXfaPresent
+ if afields.getFields.empty?
+ :dynamic_xfa
+ else
+ :static_xfa
+ end
+ else
+ :acro_form
+ end
end
def set_field_values(template)
parsed_fields = @acro_form.set_field_values(template)
unparsed_fields = template.fields - parsed_fields
@@ -13,10 +23,15 @@
@xfa.set_field_values(Template.new{|t| t.fields = unparsed_fields })
end
end
def set_read_only
- [@acro_form, @xfa].each(&:set_read_only)
+ case @type
+ when :acro_form, :static_xfa
+ @acro_form.set_read_only
+ when :dynamic_xfa
+ @xfa.set_read_only
+ end
end
end
end
end