From 41d3eaf5829d66147a2c2e8627c5528229c86561 Mon Sep 17 00:00:00 2001 From: Alex Turchyn Date: Sun, 17 Sep 2023 17:00:21 +0300 Subject: [PATCH] skip pdf reader errors --- lib/templates/build_annotations.rb | 2 ++ lib/templates/process_document.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/templates/build_annotations.rb b/lib/templates/build_annotations.rb index fff8623f..0b541571 100644 --- a/lib/templates/build_annotations.rb +++ b/lib/templates/build_annotations.rb @@ -17,6 +17,8 @@ module Templates build_external_link_hash(page, annot).merge('page' => index) end end + rescue PDF::Reader::MalformedPDFError + [] end def build_external_link_hash(page, annot) diff --git a/lib/templates/process_document.rb b/lib/templates/process_document.rb index 41913c20..b5ee7c3c 100644 --- a/lib/templates/process_document.rb +++ b/lib/templates/process_document.rb @@ -42,7 +42,7 @@ module Templates def generate_pdf_preview_images(attachment, data) ActiveStorage::Attachment.where(name: ATTACHMENT_NAME, record: attachment).destroy_all - number_of_pages = PDF::Reader.new(StringIO.new(data)).pages.size - 1 + number_of_pages = HexaPDF::Document.new(io: StringIO.new(data)).pages.size - 1 (0..number_of_pages).each do |page_number| page = Vips::Image.new_from_buffer(data, '', dpi: DPI, page: page_number)