Module: Despeck::PdfTools
- Defined in:
- lib/despeck/pdf_tools.rb
Overview
Read/Write PDF files
Constant Summary collapse
- DEFAULT_DPI =
Increase to improve image quality, decrease to improve performance
300
Class Method Summary collapse
- .for_each_page(pdf_path) ⇒ Object
- .images_to_pdf(images, pdf_path, origin_images = []) ⇒ Object
- .pages_count(pdf_path) ⇒ Object
- .pdf_to_images(pdf_path, dpi: DEFAULT_DPI) ⇒ Object
Class Method Details
.for_each_page(pdf_path) ⇒ Object
40 41 42 43 44 |
# File 'lib/despeck/pdf_tools.rb', line 40 def for_each_page(pdf_path) pages_count(pdf_path).times do |page_no| yield page_no end end |
.images_to_pdf(images, pdf_path, origin_images = []) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/despeck/pdf_tools.rb', line 20 def images_to_pdf(images, pdf_path, origin_images = []) doc = nil for_each_image_file(images, origin_images) do |path, pg_size, pic_size, layout| if doc doc.start_new_page(size: pg_size, layout: layout) else doc = Prawn::Document.new(page_size: pg_size, page_layout: layout) end doc.image(path, position: :left, vposition: :top, fit: pic_size) end doc.render_file(pdf_path) end |
.pages_count(pdf_path) ⇒ Object
36 37 38 |
# File 'lib/despeck/pdf_tools.rb', line 36 def pages_count(pdf_path) PDF::Reader.new(pdf_path).pages.count end |
.pdf_to_images(pdf_path, dpi: DEFAULT_DPI) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/despeck/pdf_tools.rb', line 12 def pdf_to_images(pdf_path, dpi: DEFAULT_DPI) images = [] for_each_page(pdf_path) do |page_no| images << Vips::Image.pdfload(pdf_path, page: page_no, dpi: dpi) end images end |