我正在开发一个应用程序,需要通过AirPrint直接从iPad生成和打印访问者通行证.
我到处寻找如何打印视图,但我只能找到如何打印文本,webKit和mapKit.
有没有办法打印整个视图?如果没有,打印访客通行证将是一个很好的解决方案,它将是纯文本,方框和照片.谢谢.
我通过修改这里找到的代码找到了我的问题的答案:UIView的AirPrint内容
//create an extension to covert the view to an image extension UIView { func toImage() -> UIImage { UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.mainScreen().scale) drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true) let image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return image } } //In your view controller @IBAction func printButton(sender: AnyObject) { let printInfo = UIPrintInfo(dictionary:nil) printInfo.outputType = UIPrintInfoOutputType.General printInfo.jobName = "My Print Job" // Set up print controller let printController = UIPrintInteractionController.sharedPrintController() printController.printInfo = printInfo // Assign a UIImage version of my UIView as a printing iten printController.printingItem = self.view.toImage() // If you want to specify a printer guard let printerURL = URL(string: "Your printer URL here, e.g. ipps://HPDC4A3E0DE24A.local.:443/ipp/print") else { return } guard let currentPrinter = UIPrinter(url: printerURL) else { return } printController.print(to: currentPrinter, completionHandler: nil) // Do it printController.presentFromRect(self.view.frame, inView: self.view, animated: true, completionHandler: nil) }