微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 3 打印功能

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,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)
}

原文地址:https://www.jb51.cc/swift/321258.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐