Sha256: a0a465d8ffb2ab91b80db8aa5b8e2728b6509115eadc8da313cef5a4b53584f3
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
module Medivo class PdfGroup attr_reader :pdf def initialize @pdfs = [] end ## # create a pdf group returns you a PdfGroup class # to get the pdf call #pdf, or read the pdf byes, call #read def self.create(&block) raise "need to pass a block do create" unless block_given? @self_before_instance_eval = eval "self", block.binding pdf_group = PdfGroup.new pdf_group.instance_eval &block pdf_group.combine_pdfs pdf_group end def method_missing(method, *args, &block) @self_before_instance_eval = self.class.instance_variable_get :@self_before_instance_eval @self_before_instance_eval.send method, *args, &block end def variable_fields(file_path, variables) @pdfs << PdfGenerator.variable_fields(file_path, variables) end def lab_requisition(requisition_id) pdf_bytes = Medivo::Order.pdf_requisition(requisition_id) @pdfs << PdfGenerator.tmp_pdf { |pdf| pdf.write pdf_bytes } end def lab_result(requisition_id) pdf_bytes = Medivo::Order.pdf_result(requisition_id) @pdfs << PdfGenerator.tmp_pdf { |pdf| pdf.write pdf_bytes } end def static_pdf(path) @pdfs << File.new(path) end ## # Combines the PDFs def combine_pdfs @pdf = PdfGenerator.tmp_pdf(false) do |pdf| args = [@pdfs.collect(&:path), 'cat', 'output', pdf.path].join(' ') `pdftk #{args}` end @pdfs.collect do |file| file.close file.unlink if file.respond_to? :unlink end end def read pdf.read end def close if pdf pdf.close pdf.unlink end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
medivo-0.1.18 | lib/pdf/medivo/pdf_group.rb |