我遇到了问题:我想知道打印作业的状态。我打印出一个临时存储在云端驱动器中的PDF文件。我想在打印作业完成后删除该文件。如何快速实现这一点? 以下是我的代码片段:
// 1
let printController = UIPrintInteractionController.sharedPrintController()
// 2
let printInfo = UIPrintInfo(dictionary:nil)
printInfo.outputType = UIPrintInfoOutputType.General
printController.showsNumberOfCopies = false
printController.showsPageRange = false
printInfo.jobName = "PDF ID: " + pdfObjectID
printController.printInfo = printInfo
// 3
//let formatter = UIMarkupTextPrintFormatter(markupText: "Test")
let formatter = pdf.viewPrintFormatter()
formatter.contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
printController.printFormatter = formatter
// show PrintController
printController.presentAnimated(true, completionHandler: nil)
你有什么建议吗? 谢谢:))
答案 0 :(得分:1)
我自己没有测试过,但根据文档,
您可以将UIPrintInteractionCompletionHandler
作为completionHandler:
参数传递:
当打印作业结束时,您可以重置为打印设置的任何状态并执行相关的内务处理任务。
一个简单的例子:
printController.presentAnimated(true) { (controller, success, error) -> Void in
if success {
// Printed successfully
// Remove file here ...
} else {
// Printing failed, report error ...
}
}
答案 1 :(得分:1)
为了补充Martin R的答案,您可以通过声明闭包来添加完成处理程序。如果您希望根据设备提供不同的打印控制器,这将非常有用:
posts
这样,您可以对两个调用使用相同的完成处理程序:)