pull/267/head
Pete Matsyburka 2 years ago
parent 5f32e2a5af
commit 82fba47c98

@ -17,6 +17,7 @@ module Submissions
TEXT_LEFT_MARGIN = 1
TEXT_TOP_MARGIN = 1
MAX_PAGE_ROTATE = 20
A4_SIZE = [595, 842].freeze
SUPPORTED_IMAGE_TYPES = ['image/png', 'image/jpeg'].freeze
@ -350,6 +351,8 @@ module Submissions
HexaPDF::Document.new(io: StringIO.new(attachment.download))
end
pdf = maybe_rotate_pdf(pdf)
begin
pdf.acro_form&.flatten
rescue StandardError => e
@ -362,6 +365,26 @@ module Submissions
end
end
def maybe_rotate_pdf(pdf)
return pdf if pdf.pages.size > MAX_PAGE_ROTATE
is_rotated = pdf.pages.filter_map do |page|
page.rotate(0, flatten: true) if page[:Rotate] != 0
end.present?
return pdf unless is_rotated
io = StringIO.new
pdf.write(io, incremental: false, validate: false)
HexaPDF::Document.new(io:)
rescue StandardError => e
Rollbar.error(e) if defined?(Rollbar)
pdf
end
def on_missing_glyph(character, font_wrapper)
Rollbar.error("Missing glyph: #{character}") if character.present? && defined?(Rollbar)

Loading…
Cancel
Save