class Libis::Format::Converter::PdfOptimizer

Public Class Methods

input_types() click to toggle source
# File lib/libis/format/converter/pdf_optimizer.rb, line 13
def self.input_types
  [:PDF]
end
output_types(format = nil) click to toggle source
# 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

Public Instance Methods

convert(source, target, format, opts = {}) click to toggle source
Calls superclass method Libis::Format::Converter::Base#convert
# 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) click to toggle source
# 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(_) click to toggle source
# File lib/libis/format/converter/pdf_optimizer.rb, line 22
def pdf_optimize(_)
  #force usage of this converter
end
quality(setting = 1) click to toggle source

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.

@param [Integer] setting quality setting. [0-4]

# 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