Pdf.Dimension (ex_pdf_core v1.0.0)

Copy Markdown View Source

Resolves relative dimensions against a parent reference.

Supports:

  • :full — 100% of the parent dimension
  • "N%" — percentage of the parent dimension (e.g. "50%")
  • number — absolute value (pass-through)

Examples

iex> Pdf.Dimension.resolve(:full, 400)
400

iex> Pdf.Dimension.resolve("50%", 400)
200.0

iex> Pdf.Dimension.resolve(200, 400)
200

Summary

Functions

Returns true if either dimension in the size tuple is relative.

Returns true if the value is a relative dimension (:full or "N%").

Resolve a single dimension value against a parent dimension.

Resolve a {w, h} size tuple against a parent area %{width:, height:}.

Functions

needs_resolution?(arg)

@spec needs_resolution?({any(), any()}) :: boolean()

Returns true if either dimension in the size tuple is relative.

relative?(v)

@spec relative?(any()) :: boolean()

Returns true if the value is a relative dimension (:full or "N%").

resolve(pct, parent_dim)

@spec resolve(value :: number() | :full | String.t(), parent_dim :: number()) ::
  number()

Resolve a single dimension value against a parent dimension.

resolve_size(arg, map)

@spec resolve_size(
  {any(), any()},
  %{width: number(), height: number()}
) :: {number(), number()}

Resolve a {w, h} size tuple against a parent area %{width:, height:}.

Returns {resolved_w, resolved_h}.