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
13 14 15 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 13 def self.input_types [:PDF] end |
.output_types(format = nil) ⇒ Object
17 18 19 20 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 17 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
44 45 46 47 48 49 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 44 def convert(source, target, format, opts = {}) super optimize_pdf(source, target, @quality || 'ebook') end |
#optimize_pdf(source, target, quality) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 51 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
22 23 24 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 22 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.
40 41 42 |
# File 'lib/libis/format/converter/pdf_optimizer.rb', line 40 def quality(setting = 1) @quality = %w(screen ebook default printer prepress)[setting] if (0..4) === setting end |