Class: Media::LibreMagickTransmogrifier
- Inherits:
-
Transmogrifier
- Object
- Transmogrifier
- Media::LibreMagickTransmogrifier
- Defined in:
- lib/media/transmogrifiers/libremagick.rb
Overview
uses libreoffice and graphicsmagick transmogrifiers to convert from office documents to image documents, by way of PDF.
Instance Attribute Summary
Attributes inherited from Transmogrifier
#command_output, #input, #input_file, #input_type, #name, #options, #output, #output_file, #output_type
Instance Method Summary collapse
- #available? ⇒ Boolean
- #input_types ⇒ Object
- #libre ⇒ Object
- #magick ⇒ Object
- #output_types ⇒ Object
-
#run(&block) ⇒ Object
run libreoffice and then graphicsmagick in succession.
Methods inherited from Transmogrifier
add, #command_available?, #converts_from?, #converts_to?, find_class, inherited, #initialize, input_map, list, output_map, #run_command
Constructor Details
This class inherits a constructor from Media::Transmogrifier
Instance Method Details
#available? ⇒ Boolean
26 27 28 |
# File 'lib/media/transmogrifiers/libremagick.rb', line 26 def available? libre and magick and libre.available? and magick.available? end |
#input_types ⇒ Object
17 18 19 |
# File 'lib/media/transmogrifiers/libremagick.rb', line 17 def input_types libre.input_types end |
#libre ⇒ Object
9 10 11 |
# File 'lib/media/transmogrifiers/libremagick.rb', line 9 def libre Media::Transmogrifier.list["Media::LibreOfficeTransmogrifier"] end |
#magick ⇒ Object
13 14 15 |
# File 'lib/media/transmogrifiers/libremagick.rb', line 13 def magick Media::Transmogrifier.list["Media::GraphicsMagickTransmogrifier"] end |
#output_types ⇒ Object
21 22 23 24 |
# File 'lib/media/transmogrifiers/libremagick.rb', line 21 def output_types # we don't want to use this for pdf, since libreoffice by itself can generate pdf magick.output_types - ['application/pdf'] end |
#run(&block) ⇒ Object
run libreoffice and then graphicsmagick in succession.
all the options are passed to graphicsmagic, and none to libreoffice, because they are probably not for libreoffice (like crop or resize).
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/media/transmogrifiers/libremagick.rb', line 36 def run(&block) pdf_output_file = Media::TempFile.new(nil, "application/pdf") libre_transmog = libre.class.new( input_file: input_file, input_type: input_type, output_file: pdf_output_file, output_type: "application/pdf") status = libre_transmog.run(&block) return status if status != :success magick_transmog = magick.class.new( .merge({ input_file: pdf_output_file, input_type: "application/pdf", output_file: output_file, output_type: output_type }) ) magick_transmog.run(&block) end |