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