module BrInvoicesPdf::Util::PdfRenderer

Constants

AUTO_HEIGHT_MOCK

Public Instance Methods

generate_pdf(data, options, renderers) click to toggle source

:reek: FeatureEnvy

# File lib/br_invoices_pdf/util/pdf_renderer.rb, line 13
def generate_pdf(data, options, renderers)
  page_width = Util::BaseRenderer.page_paper_width(options[:page_size])

  data[:additional_variables] = options[:additional_variables] || {}

  Prawn::Document.new(options.merge(page_size: [page_width, AUTO_HEIGHT_MOCK])) do |pdf|
    pdf_content(pdf, data, page_width: page_width, renderers: renderers)
  end
end
pdf_content(pdf, data, options) click to toggle source
# File lib/br_invoices_pdf/util/pdf_renderer.rb, line 23
def pdf_content(pdf, data, options)
  pdf.font_size(7) do
    options[:renderers].each do |renderer|
      renderer.execute(pdf, data)
    end

    page = pdf.page
    page.dictionary.data[:MediaBox] = [0, pdf.y - page.margins[:bottom], options[:page_width], AUTO_HEIGHT_MOCK]
  end
end