class Skr::Print::Form
finds and generates a pdf verison of a document
Public Class Methods
new(form, code)
click to toggle source
# File lib/skr/print/form.rb, line 7 def initialize(form, code) @template = Template.get(form) || fail("Unable to find template for #{form}") @record = @template.model.where(hash_code: code).first! @latex = @template.path_for_record(@record) unless @latex.exist? fail("Unable to find template type for record") end Lanes.logger.debug "Printing #{form} #{code} using #{@latex}" end
Public Instance Methods
as_latex()
click to toggle source
# File lib/skr/print/form.rb, line 28 def as_latex template.compile_latex end
as_pdf()
click to toggle source
# File lib/skr/print/form.rb, line 18 def as_pdf template.to_stringio rescue ErbLatex::LatexError => e Lanes.logger.warn e.log raise rescue => e Lanes.logger.warn e raise end
data()
click to toggle source
# File lib/skr/print/form.rb, line 32 def data vars = { @template.name.underscore => @record, 'root_path' => ::Skr::Print::ROOT } if @record.respond_to?(:latex_template_variables) vars.merge!(@record.latex_template_variables) end vars end
template()
click to toggle source
# File lib/skr/print/form.rb, line 43 def template ErbLatex::Template.new(@latex, data: data, context: Skr::Print::Context, layout: ROOT.join('layout.tex.erb'), partials_path: ROOT.join('partials'), packages_path: ROOT.join('packages') ) end