Parent

Ezprint::Processors::Prince

Public Class Methods

cmd(options) click to toggle source
# File lib/ezprint/processors/prince.rb, line 13
def self.cmd(options)
  stylesheets           = options.delete(:stylesheets)
  prince_cmd            = `which prince`.chomp

  if prince_cmd.length == 0
    raise RuntimeError.new "Cannot locate prince binary. Please check your path"
  end

  prince_cmd << " --input=html --server "
  stylesheets.each { |s| prince_cmd << " -s #{s} " }
  prince_cmd << " --silent - -o -"
end
process(html_string, options = {}) click to toggle source
# File lib/ezprint/processors/prince.rb, line 4
def self.process(html_string, options = {})
  pdf = IO.popen(self.cmd(options), "w+")
  pdf.puts(self.process_html(html_string))
  pdf.close_write
  result = pdf.gets(nil)
  pdf.close_read
  result
end
process_html(html) click to toggle source
# File lib/ezprint/processors/prince.rb, line 26
def self.process_html(html)
  # reroute absolute paths
  html.gsub!("src=\"/", "src=\"#{Rails.public_path}/")
  html.gsub!("href=\"/", "src=\"#{Rails.public_path}/")
  html.gsub!("url(/", "url(#{Rails.public_path}/")
  html
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.