Module: Pdfs2Pdf
- Includes:
- AgileUtils::Options, CodeLister
- Defined in:
- lib/pdfs2pdf/cli.rb,
lib/pdfs2pdf/version.rb,
lib/pdfs2pdf/pdfs2pdf.rb,
lib/pdfs2pdf/configuration.rb
Defined Under Namespace
Classes: CLI, Configuration
Constant Summary collapse
- VERSION =
"0.2.2"
Class Attribute Summary collapse
-
.configuration ⇒ Object
Configure Pdfs2Pdf someplace sensible, like config/initializers/pdfs2pdf.rb.
Class Method Summary collapse
- .configure {|configuration| ... } ⇒ Object
-
.create_pdfmarks(pdf_files, pdfmarks_file = "pdfmarks", base_dir) ⇒ Object
Create the ‘pdfmarks’ file for use with ‘gs’ utility.
-
.merge_pdfs(list, pdfmarks = "pdfmarks", output_file = "pdfs2pdf_output.pdf") ⇒ Object
Merge/combine list of pdf files using Ghostscript’s ‘gs` command.
-
.page_count(pdf_file) ⇒ Fixnum
Extract pdf page count using pdf-reader.
Class Attribute Details
.configuration ⇒ Object
Configure Pdfs2Pdf someplace sensible, like config/initializers/pdfs2pdf.rb
Pdfs2pdf.configure do |config|
# set the path to wkhtmltopdf
config.gs_binary = '/usr/bin/gs'
end
43 44 45 |
# File 'lib/pdfs2pdf/configuration.rb', line 43 def configuration @configuration end |
Class Method Details
.configure {|configuration| ... } ⇒ Object
47 48 49 |
# File 'lib/pdfs2pdf/configuration.rb', line 47 def configure yield(configuration) end |
.create_pdfmarks(pdf_files, pdfmarks_file = "pdfmarks", base_dir) ⇒ Object
Create the ‘pdfmarks’ file for use with ‘gs’ utility
def create_pdfmarks(pdf_files, pdfmarks_file = “pdfmarks”, base_dir = Dir.pwd)
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/pdfs2pdf/pdfs2pdf.rb', line 14 def create_pdfmarks(pdf_files, pdfmarks_file = "pdfmarks", base_dir) FileUtils.chdir(base_dir) File.open(pdfmarks_file, "w") do |out_file| out_file.write(Pdfs2Pdf.configuration.) current_page = 1 pdf_files.each do |pdf_file| out_file.write "[ /Page #{current_page} /Title (#{pdf_file}) /OUT pdfmark\n" current_page += page_count(pdf_file) end end end |
.merge_pdfs(list, pdfmarks = "pdfmarks", output_file = "pdfs2pdf_output.pdf") ⇒ Object
Merge/combine list of pdf files using Ghostscript’s ‘gs` command
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/pdfs2pdf/pdfs2pdf.rb', line 31 def merge_pdfs(list, pdfmarks = "pdfmarks", output_file = "pdfs2pdf_output.pdf") paper_size = Pdfs2Pdf.configuration.[:paper_size] gs_binary = Pdfs2Pdf.configuration.gs_binary _stdin, _stderr, status = Open3.capture3( gs_binary, "-q", "-dNOPAUSE", "-dBATCH", "-sDEVICE=pdfwrite", "-sPAPERSIZE=#{paper_size}", "-sOutputFile=#{output_file}", *list, pdfmarks) fail "Problem in merge_pdfs" unless status.success? end |
.page_count(pdf_file) ⇒ Fixnum
Extract pdf page count using pdf-reader
50 51 52 53 54 55 56 57 |
# File 'lib/pdfs2pdf/pdfs2pdf.rb', line 50 def page_count(pdf_file) pdf_file = File.(pdf_file) File.open(pdf_file, "rb") do |io| reader = PDF::Reader.new(io) return reader.page_count end fail "Problem getting the page count for #{pdf_file}" end |