class HexaPDF::Layout::ImageBox


An Image box object is used for displaying an image.

It can either be used directly or through the HexaPDF::Composer#image method.

How an image is displayed inside an image box, depends on whether the width and/or height of the box has been set:

  • If one of them has been set, the other is adjusted to retain the image ratio.

    composer.image(machu_picchu, width: 40)
    composer.image(machu_picchu, height: 40)

  • If both have been set, both are used as is.

    composer.image(machu_picchu, width: 100, height: 30)

  • If neither has been set, the image is scaled to fit the current region.


Also see: HexaPDF::Content::Canvas#image



The image that is shown in the box.

Public Class Methods

new(image:, **kwargs)

Creates a new Image box object for the given image argument which needs to be an image object (e.g. returned by HexaPDF::Document::Images#add).

Calls superclass method HexaPDF::Layout::Box::new

Public Instance Methods


Returns false since the image is always drawn if it fits.

fit(available_width, available_height, _frame)

Fits the image into the current region of the frame, taking the initially set width and height into account (see the class description for details).