Sha256: 52e28c8cac3cf44e023f4e727bfcec6646b7ce1b7c40f361d63e5c8ec386d6c2
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
require 'tempfile' module Propaganda def self.check_dependencies require 'propaganda/fop/shell' require 'propaganda/fop/bridge' rescue LoadError => e false end MODE = check_dependencies ? 'rjb' : 'shell' class Renderer def initialize(verbose=false) @verbose = verbose end def version invoke('-v') end def render(html, output, template=nil) template ||= 'default' stylesheet = File.join(File.dirname(__FILE__), '..', '..', 'templates', "#{template}.xsl") stylesheet = File.expand_path(stylesheet) tmp = Tempfile.new('fop') tmp << html tmp.flush tmp.close output = File.expand_path(output) invoke('-xml', tmp.path, '-xsl', stylesheet, '-pdf', output) ensure tmp.close rescue nil tmp = nil end private def invoke(*args) if MODE == 'rjb' fop = Propaganda::Fop::Bridge.new(@verbose) fop.invoke(*args) elsif MODE == 'shell' fop = Propaganda::Fop::Shell.new(@verbose) fop.invoke(*args) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
propaganda-0.5.0 | lib/propaganda/renderer.rb |
propaganda-0.4.0 | lib/propaganda/renderer.rb |