您的位置:首页 > 移动开发 > Swift

Swift 3 打印功能

2017-08-27 21:10 351 查看
1. 加载到webview再打印
2. 直接打印nsdata
func printViaWebView(fileName: String)
{
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let filePath = "\(documentsPath)/\(filename)"
let url = NSURL(fileURLWithPath: filePath)
let urlRequest = NSURLRequest(url: url as URL)

webView.loadRequest(urlRequest as URLRequest)

let pic = UIPrintInteractionController.shared
let printInfo : UIPrintInfo = UIPrintInfo(dictionary: nil)

printInfo.outputType = UIPrintInfoOutputType.general
printInfo.jobName = url.absoluteString!

pic.printInfo = printInfo
pic.printFormatter = webView.viewPrintFormatter()
pic.showsPageRange = false

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

func printViaNSData(fileName: String){
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let filePath = "\(documentsPath)/\(filename)"
let url = NSURL(fileURLWithPath: filePath)
let urlRequest = NSURLRequest(url: url as URL)

webView.loadRequest(urlRequest as URLRequest)

let pic = UIPrintInteractionController.shared
let printInfo : UIPrintInfo = UIPrintInfo(dictionary: nil)

printInfo.outputType = UIPrintInfoOutputType.general
//printInfo.jobName = url.absoluteString!
//printInfo.orientation = .portrait

pic.printingItem = NSData(contentsOfFile: filePath)
pic.showsPaperSelectionForLoadedPapers = true;
pic.showsPageRange = true;
pic.showsNumberOfCopies = true;
pic.printInfo = printInfo
//pic.printFormatter = webView.viewPrintFormatter()

pic.present(animated: true, completionHandler: nil)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: