🖨️

【Swift】UIPrinterPickerControllerを使って3行で印刷を実行する

2022/02/05に公開

iOSアプリから印刷をするとき、UIPrinterPickerControllerを使います。

最小構成の場合、以下のたった3行のコードで実現できます。

func openPrinterDialog() {
	let printInteractionController = UIPrintInteractionController.shared
	// 印刷したいUIImageを指定する
	printInteractionController.printingItem = UIImage()

	printInteractionController.present(animated: true, completionHandler: nil)
}

複数画像の印刷をしたいとき、printingItemではなくprintingItemsに配列の画像を指定してください。
UIPrinterInfoオブジェクトを作成することでプリントジョブの詳細を指定できますが、設定しなくてもデフォルトが割り当てられます。

指定する場合の例

func openPrinterDialog() {
	let printInteractionController = UIPrintInteractionController.shared
	// 印刷したいUIImageを指定する
	printInteractionController.printingItem = UIImage()
	
	// プリントジョブを設定する
	let printInfo = UIPrintInfo(dictionary: nil)
	printInfo.jobName = "job name" // デフォルトはアプリ名
	printInfo.orientation = .portrait // printingItem または printingItems がある場合はここでの指定が無視されて自動的に決まる。
	printInteractionController.printInfo = printInfo

	printInteractionController.present(animated: true, completionHandler: nil)
}

Discussion