Sha256: 832bfaebf965c712d450c706792017ac200de4900b96f1dc07b5b7d449cef54f

Contents?: true

Size: 1.35 KB

Versions: 8

Compression:

Stored size: 1.35 KB

Contents

module BrDanfe
  module CceLib
    class Document
      def initialize
        @document = Prawn::Document.new(
          page_size: 'A4',
          page_layout: :portrait,
          left_margin: 30,
          right_margin: 30,
          top_margin: 30,
          botton_margin: 30
        )

        @document.font 'Times-Roman'
        @document.line_width = 0.3
      end

      def method_missing(method_name, *args, &block)
        if @document.respond_to? method_name
          @document.send method_name, *args, &block
        else
          super
        end
      end

      def respond_to_missing?(method_name, include_private = false)
        @document.respond_to?(method_name, include_private) || super
      end

      def box(height:, pad: 5)
        bounding_box([0, cursor], width: page_width, height: height) do
          pad(pad) { indent(pad) { yield if block_given? } }
          stroke_bounds
        end
      end

      def text(text, options = {})
        pad = options.delete(:pad) || 0
        options = { align: :left, size: 12, style: nil }.merge(options)

        pad(pad) do
          @document.text text, size: options[:size], style: options[:style],
            align: options[:align]
        end
      end

      private

      def page_width
        page.dimensions[2] - (page.margins[:left] + page.margins[:right])
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
br_danfe-0.14.0 lib/br_danfe/cce_lib/document.rb
br_danfe-0.13.3 lib/br_danfe/cce_lib/document.rb
br_danfe-0.13.2 lib/br_danfe/cce_lib/document.rb
br_danfe-0.13.1 lib/br_danfe/cce_lib/document.rb
br_danfe-0.13.0 lib/br_danfe/cce_lib/document.rb
br_danfe-0.12.1 lib/br_danfe/cce_lib/document.rb
br_danfe-0.12.0 lib/br_danfe/cce_lib/document.rb
br_danfe-0.11.2 lib/br_danfe/cce_lib/document.rb