UIPrintPageRenderer object draws pages of content that are to be printed, with or without the assistance of print formatters.
- iOS 4.2+
A page renderer is an instance of a custom subclass of
UIPrintPageRenderer. When you compose a print job using the shared instance of
UIPrintInteractionController, you assign the page renderer to the
printPageRenderer property of that instance. The subclass typically overrides one or more of the five
drawPage(at:in:)by default calls each of the other draw methods, in the order listed below. Your application can override it if you want to have complete control over what is drawn for printing.
drawHeaderForPage(at:in:)to draw content in the header.
drawContentForPage(at:in:)to draw the main content of the print job in the area between the header and the footer.
drawPrintFormatter(_:forPageAt:)to intermix custom drawing with the drawing performed by an associated print formatter. This method is called for each print formatter associated with a given page.
drawFooterForPage(at:in:)to draw content in the footer.
UIPrintPageRenderer usually requires you to specify the number of pages of printable content by overriding
numberOfPages. It also allows you to specify the heights of page headers and footers.
You may assign one or more print formatters—that is,
UIPrintFormatter objects that can lay out printable content of a certain kind—to specific page ranges of the content. For example, if your printable content is partially HTML, you may assign an instance of the
UIMarkupTextPrintFormatter object to the starting page of HTML content. You assign a print formatter using the
addPrintFormatter(_:startingAtPageAt:) method and you can get the print formatters for a given page by calling