diff --git a/lib/submissions/generate_result_attachments.rb b/lib/submissions/generate_result_attachments.rb index a4afd691..6cbc1d2b 100644 --- a/lib/submissions/generate_result_attachments.rb +++ b/lib/submissions/generate_result_attachments.rb @@ -120,7 +120,11 @@ module Submissions width = page.box.width height = page.box.height - font_size = (([page.box.width, page.box.height].min / A4_SIZE[0].to_f) * FONT_SIZE).to_i + + preferences_font_size = field.dig('preferences', 'font_size').then { |num| num.present? ? num.to_i : nil } + + font_size = preferences_font_size + font_size ||= (([page.box.width, page.box.height].min / A4_SIZE[0].to_f) * FONT_SIZE).to_i value = submitter.values[field['uuid']] @@ -265,7 +269,7 @@ module Submissions lines = layouter.fit([text], area['w'] * width, height).lines box_height = lines.sum(&:height) - if box_height > (area['h'] * height) + 1 + if preferences_font_size.blank? && box_height > (area['h'] * height) + 1 text = HexaPDF::Layout::TextFragment.create(value, font: pdf.fonts.add(FONT_NAME), font_size: (font_size / 1.4).to_i) @@ -275,7 +279,7 @@ module Submissions box_height = lines.sum(&:height) end - if box_height > (area['h'] * height) + 1 + if preferences_font_size.blank? && box_height > (area['h'] * height) + 1 text = HexaPDF::Layout::TextFragment.create(value, font: pdf.fonts.add(FONT_NAME), font_size: (font_size / 1.9).to_i)