diff --git a/app/controllers/templates_debug_controller.rb b/app/controllers/templates_debug_controller.rb index 02d3d8b0..810c042a 100644 --- a/app/controllers/templates_debug_controller.rb +++ b/app/controllers/templates_debug_controller.rb @@ -6,9 +6,10 @@ class TemplatesDebugController < ApplicationController def show attachment = @template.documents.first - pdf = HexaPDF::Document.new(io: StringIO.new(attachment.download)) + data = attachment.download + pdf = HexaPDF::Document.new(io: StringIO.new(data)) - fields = Templates::FindAcroFields.call(pdf, attachment) + fields = Templates::FindAcroFields.call(pdf, attachment, data) attachment.metadata['pdf'] ||= {} attachment.metadata['pdf']['fields'] = fields diff --git a/lib/templates/find_acro_fields.rb b/lib/templates/find_acro_fields.rb index 04747efb..97088390 100644 --- a/lib/templates/find_acro_fields.rb +++ b/lib/templates/find_acro_fields.rb @@ -32,8 +32,8 @@ module Templates module_function # rubocop:disable Metrics - def call(pdf, attachment) - return [] unless pdf.acro_form + def call(pdf, attachment, data) + return [] if pdf.acro_form.blank? && data.exclude?('/Form') fields, annots_index = build_fields_with_pages(pdf) diff --git a/lib/templates/process_document.rb b/lib/templates/process_document.rb index 74949893..54174b06 100644 --- a/lib/templates/process_document.rb +++ b/lib/templates/process_document.rb @@ -22,7 +22,7 @@ module Templates if extract_fields && data.size < MAX_FLATTEN_FILE_SIZE pdf = HexaPDF::Document.new(io: StringIO.new(data)) - fields = Templates::FindAcroFields.call(pdf, attachment) + fields = Templates::FindAcroFields.call(pdf, attachment, data) end generate_pdf_preview_images(attachment, data, pdf, max_pages:)