Class: DocPDF::Adapters::Converters::MiniMagick

Inherits:
Base
  • Object
show all
Defined in:
lib/docpdf/adapters/converters/mini_magick.rb

Constant Summary collapse

MIME_TYPES =
%w[image/jpeg image/png image/heic image/heif image/webp].freeze

Class Method Summary collapse

Class Method Details

.convert(data, filename) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/docpdf/adapters/converters/mini_magick.rb', line 11

def convert(data, filename)
  img = nil
  Tempfile.create(["docpdf", File.extname(filename || ".tmp")]) do |tempfile|
    tempfile.binmode
    tempfile.write(data)
    tempfile.rewind

    img = ::MiniMagick::Image.open(tempfile.path)
    img.format("pdf")
    img.to_blob
  end
rescue ::MiniMagick::Error => e
  raise ConversionError, "MiniMagick failed to convert #{filename || 'image'} to PDF: #{e.message}"
ensure
  img&.destroy!
end