返回 导航

Swift

hangge.com

Swift - 使用AirPrint进行打印

作者:hangge | 2015-11-13 08:01
使用 AirPrint 可以轻松地从 iOS 和 OS X app 中传输无损照片和文稿打印。当然,打印机也要支持AirPrint 技术才行。下面通过样例演示如何在App中使用 Airprint进行打印。 

1,打印机模拟器(Printer Simulator)下载
如果没有支持AirPrint的打印机也没关系,苹果提供了个虚拟打印机,地址:https://developer.apple.com/downloads

(1)下载里面的 Hardware IO Tools


(2)运行工具包里的 Printer Simulator


(3)用浏览器打开个网页,使用模拟器打印下看看效果 
如果手机和电脑在同一个网段下,使用手机也是可以找到电脑上的打印机模拟器的。
下面是打印效果,可以看到虚拟打印机生成的是一个pdf的文件,这个和实际打印出来的效果是一致的。


2,使用AirPrint打印一段文字
(1)打印时会弹出页面(左图)让你选择打印机,打印份数等。下面会显示预览效果
(2)右图是最终打印出来的文件
    
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func printText(sender: AnyObject) {
        // 打印控制器
        let printController = UIPrintInteractionController.sharedPrintController()
        // 打印任务相关信息
        let printInfo = UIPrintInfo(dictionary:nil)
        printInfo.outputType = UIPrintInfoOutputType.General
        printInfo.jobName = "my print Job"
        printController.printInfo = printInfo
        
        //设置打印文本
        let printText = "<div style='font-size:28px;font-weight:bold;text-align:center'>"
            + "hangge.com</div>"
            + "做最好的开发者知识平台"
        
        // 格式化打印文本
        let formatter = UIMarkupTextPrintFormatter(markupText: printText)
        // 设置页面Insets边距
        formatter.contentInsets = UIEdgeInsets(top: 72, left: 72, bottom: 72, right: 72)
        printController.printFormatter = formatter
        
        // 提供打印界面让用户选择打印机和副本的数量
        printController.presentAnimated(true, completionHandler: nil)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
评论

全部评论(3)

回到顶部