Sha256: d141e2c6ca8bfd8fd72b2bbc70ebff35720a6892058a47b220d5e92efdd6740d
Contents?: true
Size: 1.01 KB
Versions: 1
Compression:
Stored size: 1.01 KB
Contents
module Ezprint module Processors class Prince < Base 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 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 def self.process_html(html) # reroute absolute paths html.gsub!("src=\"/", "src=\"#{RAILS_ROOT}/public/") html.gsub!("href=\"/", "src=\"#{RAILS_ROOT}/public/") html.gsub!("url(/", "url(#{RAILS_ROOT}/public/") html end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ezprint-0.3.1 | lib/ezprint/processors/prince.rb |