Sha256: 459054a1f5cb2baa0b0705b7777c617dbd2dd20e075baaa971b28e8700471c5c

Contents?: true

Size: 1.11 KB

Versions: 5

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module Thinreports
  module BasicReport
    module Generator
      module PrawnExt
        module CalcImageDimensions
          # Implement :auto_fit option for image size calculation.
          #
          # When the image is larger than the box, the original: fit option does not change
          # the image size. The :auto_fit option changes the image size to fit in the box
          # while maintaining the aspect ratio.
          #
          # Usage:
          #   image '/path/to/image.png', at: [100, 100], auto_fit: [100, 100]
          #
          def calc_image_dimensions(options)
            if options[:auto_fit]
              image_width = options[:width] || width
              image_height = options[:height] || height

              box_width, box_height = options.delete(:auto_fit)

              options[:fit] = [box_width, box_height] if image_width > box_width || image_height > box_height
            end
            super(options)
          end
        end
      end
    end
  end
end

Prawn::Images::Image.prepend Thinreports::BasicReport::Generator::PrawnExt::CalcImageDimensions

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
thinreports-0.14.2 lib/thinreports/basic_report/generator/pdf/prawn_ext/calc_image_dimensions.rb
thinreports-0.14.1 lib/thinreports/basic_report/generator/pdf/prawn_ext/calc_image_dimensions.rb
thinreports-0.14.0 lib/thinreports/basic_report/generator/pdf/prawn_ext/calc_image_dimensions.rb
thinreports-0.13.1 lib/thinreports/basic_report/generator/pdf/prawn_ext/calc_image_dimensions.rb
thinreports-0.13.0 lib/thinreports/basic_report/generator/pdf/prawn_ext/calc_image_dimensions.rb