Nate Cook does an excellent job detailing all the steps required for printing from an iOS device. This includes configuring the print job as well as the print options selectable by a user. The various properties of UIPrintInteractionController to format content prior to printing are also covered.
The post also includes both Swift and Objective-C code for all examples. This is a deep tutorial. Highly recommended.