pdf_thumbnailer
pdf_thumbnailer converts a folder structure containing .pdf files into a folder structure of .png files. Each .png represents a single page of the pdf and can be scaled to one or more pixel widths/heights.
Requirements and Dependencies
Developed/Tested with Ruby version 2.3, but it should work with any version >= 1.9. Page image creation is done through the pdftoppm utility, which can be installed on *NIX (Linux/OSX) operating systems.
Installation
Add to your Gemfile:
gem 'pdf_thumbnailer', '~> 1.0'Usage
First, configure PdfThumbs:
PdfThumbs.configure(
pdf_dir: '/some/path/with/pdf/files',
img_dir: '/where/to/save/page/images', # required
thumb_sizes: [1000, 500, 100] # max pixel lengths for the long side (height or width) of the page images
)To generate the page images, execute .thumbnail!:
PdfThumbs.thumbnail! do |thumb_dir|
puts "Page thumbnails are located in: #{thumb_dir}"
endthumbnail! optionally accepts a code block with one argument. This argument (thumb_dir in the above example) will be a string representing the path of the newly created directory containing page images for a particular pdf. The folder structure img_dir will be identical to that of pdf_dir but for every .pdf file there will instead be a directory of the same name containing .png iamges.
Alternatively a single pdf file can have its pages converted to images using the thumbnail_single! method. Note that this method will return the number of pages in the pdf that were converted to images:
PdfThumbs.configure img_dir: '/where/to/save/page/images', thumb_sizes: 500
num_pages = PdfThumbs.thumbnail_single! '/pdf/root/dir', 'relative/path/to/My File.pdf'
puts "Number of pages extracted = #{num_pages}"License
MIT-LICENSE.