Method: Publishr::Project#make_pdf

Defined in:
lib/publishr/project.rb

#make_pdfObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/publishr/project.rb', line 50

def make_pdf
  pdf = LatexRenderer.new(@name,@inpath,@metadata)
  pdf.render

  outpath = File.join(@inpath,'latex')

  # pdflatex handles jpg files directly, so the following is commented out
  # binaryfile = File.join(@converterspath,'jpeg2ps 2>&1')
  # Dir[File.join(outpath,'*.jpg')].each do |infilepath|
  #   outfilepath = File.join(outpath, File.basename(infilepath).gsub(/(.*).jpg/, '\1.eps'))
  #   `#{ binaryfile } -r 0 -o #{ outfilepath } #{ infilepath }`
  # end

  Dir.chdir outpath
  Dir['*.eps'].each do |f|
    `perl /usr/bin/epstopdf #{ f }`
    jpg_to_delete = File.basename(f).gsub(/(.*).eps/, '\1.jpg')
    FileUtils.rm jpg_to_delete if File.exists? jpg_to_delete
    FileUtils.rm f
  end

  `makeindex preamble.idx`
  lines = []
  IO.popen('pdflatex -interaction=nonstopmode preamble.tex 2>&1') do |io|
    while (line = io.gets) do
      puts line
      lines << line
    end
  end

  FileUtils.mv(File.join(outpath,'preamble.pdf'), File.join(@inpath,"#{ @name }.pdf")) if File.exists?(File.join(outpath,'preamble.pdf'))
  lines.join('<br />')
end