diff --git a/lib/submissions/generate_audit_trail.rb b/lib/submissions/generate_audit_trail.rb index d9827df3..56e48bbb 100644 --- a/lib/submissions/generate_audit_trail.rb +++ b/lib/submissions/generate_audit_trail.rb @@ -7,15 +7,10 @@ module Submissions FONT_PATH = '/fonts/GoNotoKurrent-Regular.ttf' FONT_BOLD_PATH = '/fonts/GoNotoKurrent-Bold.ttf' FONT_NAME = if File.exist?(FONT_PATH) - FONT_PATH + 'GoNotoKurrent' else 'Helvetica' end - FONT_BOLD_NAME = if File.exist?(FONT_BOLD_PATH) - FONT_BOLD_PATH - else - 'Helvetica' - end SIGN_REASON = 'Signed with DocuSeal.co' VERIFIED_TEXT = 'Verified' @@ -48,7 +43,18 @@ module Submissions end composer = HexaPDF::Composer.new(skip_page_creation: true) - composer.document.fonts.add(FONT_BOLD_NAME, variant: :bold) + composer.document.task(:pdfa) + composer.document.config['font.map'] = { + 'Helvetica' => { + none: FONT_PATH, + bold: FONT_BOLD_PATH + }, + FONT_NAME => { + none: FONT_PATH, + bold: FONT_BOLD_PATH + } + } + composer.document.config['font.on_missing_glyph'] = Submissions::GenerateResultAttachments.method(:on_missing_glyph).to_proc @@ -119,13 +125,13 @@ module Submissions ), composer.document.layout.formatted_text_box( [ - { text: "Original SHA256:\n", font: [FONT_BOLD_NAME, { variant: :bold }] }, + { text: "Original SHA256:\n", font: [FONT_NAME, { variant: :bold }] }, original_documents.map { |d| d.metadata['sha256'] || d.checksum }.join("\n"), "\n", - { text: "Result SHA256:\n", font: [FONT_BOLD_NAME, { variant: :bold }] }, + { text: "Result SHA256:\n", font: [FONT_NAME, { variant: :bold }] }, document.metadata['sha256'] || document.checksum, "\n", - { text: 'Generated at: ', font: [FONT_BOLD_NAME, { variant: :bold }] }, + { text: 'Generated at: ', font: [FONT_NAME, { variant: :bold }] }, "#{I18n.l(document.created_at.in_time_zone(account.timezone), format: :long, locale: account.locale)} " \ "#{TimeUtils.timezone_abbr(account.timezone, document.created_at)}" ], line_spacing: 1.3 @@ -162,7 +168,7 @@ module Submissions composer.document.layout.formatted_text_box( [ submission.template_submitters.size > 1 && { text: "#{item['name']}\n" }, - submitter.email && { text: "#{submitter.email}\n", font: [FONT_BOLD_NAME, { variant: :bold }] }, + submitter.email && { text: "#{submitter.email}\n", font: [FONT_NAME, { variant: :bold }] }, submitter.name && { text: "#{TextUtils.maybe_rtl_reverse(submitter.name)}\n" }, submitter.phone && { text: "#{submitter.phone}\n" } ].compact_blank, line_spacing: 1.3, padding: [0, 20, 0, 0] @@ -276,7 +282,7 @@ module Submissions composer.document.layout.formatted_text_box( [ { text: SubmissionEvents::EVENT_NAMES[event.event_type.to_sym], - font: [FONT_BOLD_NAME, { variant: :bold }] }, + font: [FONT_NAME, { variant: :bold }] }, event.event_type.include?('send_') ? ' to ' : ' by ', if event.event_type.include?('sms') || event.event_type.include?('phone') event.data['phone'] || submitter.phone @@ -316,7 +322,7 @@ module Submissions column.formatted_text([{ text: 'DocuSeal', link: Docuseal::PRODUCT_URL }], font_size: 20, - font: [FONT_BOLD_NAME, { variant: :bold }], + font: [FONT_NAME, { variant: :bold }], width: 100, padding: [5, 0, 0, 8], position: :float, text_align: :left) diff --git a/lib/submissions/generate_result_attachments.rb b/lib/submissions/generate_result_attachments.rb index ecba8d7a..ee7405e8 100644 --- a/lib/submissions/generate_result_attachments.rb +++ b/lib/submissions/generate_result_attachments.rb @@ -428,6 +428,7 @@ module Submissions def build_pdf_from_image(attachment) pdf = HexaPDF::Document.new + page = pdf.pages.add scale = [A4_SIZE.first / attachment.metadata['width'].to_f,