Class: DragonflyPdf::Processors::PageThumb

Inherits:
Object
  • Object
show all
Defined in:
lib/dragonfly_pdf/processors/page_thumb.rb

Defined Under Namespace

Classes: UnsupportedFormat

Instance Method Summary collapse

Instance Method Details

#call(content, page_number = 0, opts = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/dragonfly_pdf/processors/page_thumb.rb', line 9

def call content, page_number=0, opts={}
  format = opts.fetch(:format, :png)
  # raise UnsupportedFormat unless %w(tif jpg jpeg png gif).include?(format.to_s)

  density = opts.fetch(:density, 600)
  spreads = opts.fetch(:spreads, false)

  args = "-alpha deactivate -background white -colorspace sRGB -density #{density}x#{density} -define pdf:use-cropbox=true -define pdf:use-trimbox=true"
  crop_args = ''

  pdf_properties = DragonflyPdf::Analysers::PdfProperties.new.call(content, spreads)

  if spreads
    spread = pdf_properties[:page_numbers].detect{ |s| s.include?(page_number) }
    spread_number = pdf_properties[:page_numbers].index(spread)
    spread_side = spread.index(page_number)
    page_to_delete = 1-spread_side

    pdf_page_number = spread_number
    crop_args = "-crop 50%x100% -delete #{page_to_delete}"
  else
    pdf_page_number = page_number
  end

  content.shell_update(ext: format) do |old_path, new_path|
    "#{convert_command} #{args} #{crop_args} #{old_path}[#{pdf_page_number}] #{new_path}"
  end

  content.meta['format'] = format.to_s
  content.ext = format
end

#update_url(attrs, args = '', opts = {}) ⇒ Object



41
42
43
44
# File 'lib/dragonfly_pdf/processors/page_thumb.rb', line 41

def update_url attrs, args='', opts={}
  format = opts['format']
  attrs.ext = format if format
end