mirror of
https://github.com/docusealco/docuseal
synced 2026-11-09 15:42:32 -05:00
process pdf from doc
This commit is contained in:
1 parent
c1aac6b763
commit
113b61588b
2 files changed
+13
-22
No files matched your search
@@ -1,17 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class GeneratePreviewImagesJob
|
|
||||||
include Sidekiq::Job
|
|
||||||
|
|
||||||
sidekiq_options queue: :images
|
|
||||||
|
|
||||||
def perform(params = {})
|
|
||||||
attachment = ActiveStorage::Attachment.find(params['attachment_id'])
|
|
||||||
|
|
||||||
max_page = [attachment.metadata['pdf']['number_of_pages'].to_i - 1,
|
|
||||||
Templates::ProcessDocument::MAX_NUMBER_OF_PAGES_PROCESSED].min
|
|
||||||
|
|
||||||
Templates::ProcessDocument.generate_document_preview_images(attachment, attachment.download, 1..max_page,
|
|
||||||
concurrency: 1)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -41,16 +41,24 @@ module Templates
|
|||||||
attachment
|
attachment
|
||||||
end
|
end
|
||||||
|
|
||||||
def process(attachment, data, extract_fields: false)
|
def process(attachment, data, extract_fields: false, doc: nil)
|
||||||
if attachment.content_type == PDF_CONTENT_TYPE && extract_fields && data.size < MAX_FLATTEN_FILE_SIZE
|
if attachment.content_type == PDF_CONTENT_TYPE && extract_fields && data.size < MAX_FLATTEN_FILE_SIZE
|
||||||
pdf = HexaPDF::Document.new(io: StringIO.new(data))
|
if doc
|
||||||
|
fields = Templates::FindPdfiumAcroFields.call(attachment, doc, data)
|
||||||
|
else
|
||||||
|
pdf = HexaPDF::Document.new(io: StringIO.new(data))
|
||||||
|
|
||||||
fields = Templates::FindAcroFields.call(pdf, attachment, data)
|
fields = Templates::FindAcroFields.call(pdf, attachment, data)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
pdf ||= HexaPDF::Document.new(io: StringIO.new(data))
|
if doc
|
||||||
|
number_of_pages = doc.page_count
|
||||||
|
else
|
||||||
|
pdf ||= HexaPDF::Document.new(io: StringIO.new(data))
|
||||||
|
|
||||||
number_of_pages = pdf.pages.size
|
number_of_pages = pdf.pages.size
|
||||||
|
end
|
||||||
|
|
||||||
attachment.metadata['pdf'] ||= {}
|
attachment.metadata['pdf'] ||= {}
|
||||||
attachment.metadata['pdf']['number_of_pages'] = number_of_pages
|
attachment.metadata['pdf']['number_of_pages'] = number_of_pages
|
||||||
|
|||||||
Reference in new issue
Block a user