Module Prawn::Graphics::Transformation
In: lib/prawn/graphics/transformation.rb

Methods

Public Instance methods

Rotate the user space. If a block is not provided, then you must save and restore the graphics state yourself.

Options

:origin:[number, number]. The point around which to rotate. A block must be provided if using the :origin

raises Prawn::Errors::BlockRequired if an :origin option is provided, but no block is given

Example without a block:

  save_graphics_state
  rotate 30
  text "rotated text"
  restore_graphics_state

Example with a block: rotating a rectangle around its upper-left corner

  x = 300
  y = 300
  width = 150
  height = 200
  angle = 30
  pdf.rotate(angle, :origin => [x, y]) do
    pdf.stroke_rectangle([x, y], width, height)
  end

Scale the user space. If a block is not provided, then you must save and restore the graphics state yourself.

Options

:origin:[number, number]. The point from which to scale. A block must be provided if using the :origin

raises Prawn::Errors::BlockRequired if an :origin option is provided, but no block is given

Example without a block:

  save_graphics_state
  scale 1.5
  text "scaled text"
  restore_graphics_state

Example with a block: scale a rectangle from its upper-left corner

  x = 300
  y = 300
  width = 150
  height = 200
  factor = 1.5
  pdf.scale(angle, :origin => [x, y]) do
    pdf.stroke_rectangle([x, y], width, height)
  end

Transform the user space (see notes for rotate regarding graphics state) Generally, one would use the rotate, scale, translate, and skew convenience methods instead of calling transformation_matrix directly

Translate the user space. If a block is not provided, then you must save and restore the graphics state yourself.

Example without a block: move the text up and over 10

  save_graphics_state
  translate(10, 10)
  text "scaled text"
  restore_graphics_state

Example with a block: draw a rectangle with its upper-left corner at

                      x + 10, y + 10

  x = 300
  y = 300
  width = 150
  height = 200
  pdf.translate(10, 10) do
    pdf.stroke_rectangle([x, y], width, height)
  end

[Validate]