Class: Libis::Format::Converter::PdfOptimizer
- Defined in:
- lib/libis/format/converter/pdf_optimizer.rb
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
- #convert(source, target, format, opts = {}) ⇒ Object
- #optimize_pdf(source, target, quality) ⇒ Object
- #pdf_optimize(_) ⇒ Object
-
#quality(setting = 1) ⇒ Object
Optimize the PDF.
Methods inherited from Base
category, #check_file_exist, inherited, #initialize, #using_temp, using_temp
Constructor Details
This class inherits a constructor from Libis::Format::Converter::Base
Class Method Details
.input_types ⇒ Object
16 17 18 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 16 def self.input_types [:PDF] end |
.output_types(format = nil) ⇒ Object
20 21 22 23 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 20 def self.output_types(format = nil) return [] unless input_types.include?(format) if format [:PDF] end |
Instance Method Details
#convert(source, target, format, opts = {}) ⇒ Object
47 48 49 50 51 52 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 47 def convert(source, target, format, opts = {}) super optimize_pdf(source, target, @quality || 'ebook') end |
#optimize_pdf(source, target, quality) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 54 def optimize_pdf(source, target, quality) using_temp(target) do |tmpname| result = Libis::Format::Tool::PdfOptimizer.run(source, tmpname, quality) unless result[:status] == 0 error("Pdf optimization encountered errors:\n%s", (result[:err] + result[:out]).join("\n")) next nil end tmpname end end |
#pdf_optimize(_) ⇒ Object
25 26 27 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 25 def pdf_optimize(_) #force usage of this converter end |
#quality(setting = 1) ⇒ Object
Optimize the PDF
This reduces the graphics quality to a level in order to limit file size. This option relies on the presence of ghostscript and takes one argument: the quality level. It should be one of:
- 0 : lowest quality (Acrobat Distiller 'Screen Optimized' equivalent)
- 1 : medium quality (Acrobat Distiller 'eBook' equivalent)
- 2 : good quality
- 3 : high quality (Acrobat Distiller 'Print Optimized' equivalent)
- 4 : highest quality (Acrobat Distiller 'Prepress Optimized' equivalent)
Note that the optimization is intended to be used with PDF's containing high-resolution images.
43 44 45 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 43 def quality(setting = 1) @quality = %w(screen ebook default printer prepress)[setting] if (0..4) === setting end |