sroller

create pdf from jpg

Jul 26th, 2018
4,923
0
Never
12
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.04 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. def create_tex(src_dir)
  4.   jpegs = Dir["#{src_dir}/*.jpg"].sort_by { |f| File.stat(f).mtime }
  5.   STDERR.puts(jpegs)
  6.   cwd = File.basename(Dir.pwd)
  7.   File.open("#{cwd}.tex", "w") do |tex|
  8.     tex.write(<<~END_OF_TEX_HEADER)
  9.     \\documentclass{article}
  10.     \\usepackage{pdfpages}
  11.     \\begin{document}
  12.     END_OF_TEX_HEADER
  13.     jpegs.each do |page|
  14.       page =
  15.         tex.write("\\includepdf{\"#{page[0,page.size-4]}\".jpg\}\n")
  16.     end
  17.     tex.write(<<~END_OF_TEX_FOOTER)
  18.     \\end{document}
  19.     END_OF_TEX_FOOTER
  20.   end
  21.   "#{cwd}.tex"
  22. end
  23.  
  24. def create_pdf(tex_file)
  25.   STDERR.puts "file=#{tex_file}"
  26.   exit_code = %x( pdflatex -interaction=batchmode #{tex_file} )
  27.   STDERR.puts "exit code #{exit_code}"
  28. end
  29.  
  30. def clean_up(work_dir)
  31.   STDERR.puts "cleanup #{work_dir}"
  32.   Dir.chdir work_dir
  33.   Dir['*.log'].each {|f| File.delete f}
  34.   Dir['*.aux'].each {|f| File.delete f}
  35.   Dir['*.tex'].each {|f| File.delete f}
  36. end
  37.  
  38. work_dir = Dir.pwd
  39. tex = create_tex(work_dir)
  40. pdf = create_pdf(tex)
  41. clean_up(work_dir)
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
Add Comment
Please, Sign In to add comment