Returns the affine transform that maps a box to a given rectangle on a PDF page.
SDKs
- iOS 2.0+
- macOS 10.3+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
Framework
- Core Graphics
Declaration
func getDrawingTransform(_ box: CGPDFBox, rect: CGRect, rotate: Int32, preserveAspectRatio: Bool) -> CGAffine Transform
Parameters
box
A constant that specifies the type of box. For possible values, see
CGPDFBox
.rect
A Quartz rectangle.
rotate
An integer, that must be a multiple of
90
, that specifies the angle by which the specified rectangle is rotated clockwise.preserveAspectRatio
A Boolean value that specifies whether or not the aspect ratio should be preserved. A value of
true
specifies that the aspect ratio should be preserved.
Return Value
An affine transform that maps the box specified by the box
parameter to the rectangle specified by the rect
parameter.
Discussion
Quartz constructs the affine transform as follows:
Computes the effective rectangle by intersecting the rectangle associated with
box
and the/Media
entry of the specified page.Box Rotates the effective rectangle according to the page’s
/Rotate
entry.Centers the resulting rectangle on
rect
.If the value of therotate
parameter is non-zero, then the rectangle is rotated clockwise by rotate degrees. The value ofrotate
must be a multiple of 90.Scales the rectangle, if necessary, so that it coincides with the edges of
rect
. If the value ofpreserve
parameter isAspect Ratio true
, then the final rectangle coincides with the edges ofrect
only in the more restrictive dimension.