Class: PDFToImage::Image

Inherits:
Object
  • Object
show all
Defined in:
lib/pdftoimage/image.rb

Overview

A class which is instantiated by PDFToImage when a PDF document is opened.

Constant Summary collapse

CUSTOM_IMAGE_METHODS =

ImageMagick methods that we currently support.

[
    "resize",
    "quality"
]
PDF_IMAGE_METHODS =

pdftoppm methods that we currently support.

[
    "r",
    "rx",
    "ry"
]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pdf_name, filename, page, page_size, page_count) ⇒ Image

Image constructor

Parameters:

  • pdf_name (String)

    The name of the PDF

  • filename (String)

    The name of the image for the specified page

  • page (Integer)

    The page number of the PDF

  • page_size (Hash)

    Hash containing width and height dimensions of the page

  • page_count (integer)

    The number of pages in the PDF



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/pdftoimage/image.rb', line 51

def initialize(pdf_name, filename, page, page_size, page_count)
    @args = []
    @pdf_args = []

    @pdf_name = pdf_name
    @filename = filename
    @opened = false
    @width = page_size[:width]
    @height = page_size[:height]
    @page_count = page_count

    @page = page
end

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



10
11
12
# File 'lib/pdftoimage/image.rb', line 10

def args
  @args
end

#filenameObject (readonly)

Returns the value of attribute filename.



6
7
8
# File 'lib/pdftoimage/image.rb', line 6

def filename
  @filename
end

#heightObject (readonly)

Returns the value of attribute height.



8
9
10
# File 'lib/pdftoimage/image.rb', line 8

def height
  @height
end

#openedObject (readonly)

Returns the value of attribute opened.



12
13
14
# File 'lib/pdftoimage/image.rb', line 12

def opened
  @opened
end

#pageObject (readonly)

Returns the value of attribute page.



9
10
11
# File 'lib/pdftoimage/image.rb', line 9

def page
  @page
end

#pdf_argsObject (readonly)

Returns the value of attribute pdf_args.



11
12
13
# File 'lib/pdftoimage/image.rb', line 11

def pdf_args
  @pdf_args
end

#pdf_nameObject (readonly)

Returns the value of attribute pdf_name.



5
6
7
# File 'lib/pdftoimage/image.rb', line 5

def pdf_name
  @pdf_name
end

#widthObject (readonly)

Returns the value of attribute width.



7
8
9
# File 'lib/pdftoimage/image.rb', line 7

def width
  @width
end

Instance Method Details

#<=>(img) ⇒ Object



85
86
87
88
89
90
91
92
93
# File 'lib/pdftoimage/image.rb', line 85

def <=>(img)
    if @page == img.page
        return 0
    elsif @page < img.page
        return -1
    else
        return 1
    end
end

#save(outname) ⇒ Object

Saves the converted image to the specified location

Parameters:

  • outname (String)

    The output filename of the image



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/pdftoimage/image.rb', line 69

def save(outname)
    generate_temp_file

    cmd = "convert "

    if not @args.empty?
        cmd += "#{@args.join(' ')} "
    end

    cmd += "#{Shellwords.escape(@filename)} #{Shellwords.escape(outname)}"

    PDFToImage.exec(cmd)

    return true
end