Swift2 Xcode空气打印

Swift2 Xcode空气打印,swift2,Swift2,我是xcode和swift的初学者 我的viewcontroller中有几个字段和一个图像,我想打印这些字段的内容 我的教程代码: @IBAction func print(sender: AnyObject) { // 1 let printController = UIPrintInteractionController.sharedPrintController() // 2 let printInfo = UIPrintInfo(dictionar

我是xcode和swift的初学者

我的viewcontroller中有几个字段和一个图像,我想打印这些字段的内容

我的教程代码:

@IBAction func print(sender: AnyObject) {

    // 1

    let printController = UIPrintInteractionController.sharedPrintController()

    // 2

    let printInfo = UIPrintInfo(dictionary:nil)

    printInfo.outputType = UIPrintInfoOutputType.General

    printInfo.jobName = "Rapport"

    printController.printInfo = printInfo

    // 3

    let formatter = UIMarkupTextPrintFormatter(markupText: itemName.text!)

    formatter.contentInsets = UIEdgeInsets(top: 72, left: 72, bottom: 72, right: 72)

    printController.printFormatter = formatter

    // 4

    printController.presentAnimated(true, completionHandler: nil)


}

仅此文本字段就可以很好地使用。但是我如何打印其余部分呢?

您正在使用格式化程序向
printController
发送要打印的标记文本。此函数接受一个字符串,因此您可以创建一个包含所有文本的自定义字符串,并调用此函数,如下所示:

// 3
let myMarkupText = itemName.text! + "\n" + secondField.text! + "\n" + anotherField.text!
let formatter = UIMarkupTextPrintFormatter(markupText: myMarkupText)
...
我添加了“\n”以开始一个新行,但是您当然可以按照您想要的方式格式化它。我不确定“\n”是否会创建新行(因为这是标记,可能您需要

),您必须尝试查看


如果要打印整个页面而不是某些部分,还可以检查以查看有哪些其他选项(
printingItem
printingItems
printPageRenderer
)。

或者,如果有一个包含多个回车符的长字符串,在将字符串提交到UIMarkupTextPrintFormatter之前,您需要首先将所有\n出现的内容替换为br/。以下是Swift 4的一个示例:

func print(text: String) {
    let textWithNewCarriageReturns = text.replacingOccurrences(of: "\n", with: "<br />")

    let printController = UIPrintInteractionController.shared

    let printInfo = UIPrintInfo(dictionary: nil)
    printInfo.outputType = UIPrintInfoOutputType.general
    printController.printInfo = printInfo

    let format = UIMarkupTextPrintFormatter(markupText: textWithNewCarriageReturns)

    format.perPageContentInsets.top = 72
    format.perPageContentInsets.bottom = 72
    format.perPageContentInsets.left = 72
    format.perPageContentInsets.right = 72
    printController.printFormatter = format

    printController.present(animated: true, completionHandler: nil)
}
func打印(文本:字符串){
let textwithnewcareers=text.replacingOccurrences(of:“\n”,with:“
”) 让printController=UIPrintInteractionController.shared 让printInfo=UIPrintInfo(字典:nil) printInfo.outputType=UIPrintInfoOutputType.general printController.printInfo=printInfo let format=UIMarkupTextPrintFormatter(markupText:TextWithNewCarriesReturns) format.perPageContentInsets.top=72 format.perPageContentInsets.bottom=72 format.perPageContentInsets.left=72 format.perPageContentInsets.right=72 printController.printFormatter=格式 printController.present(动画:true,completionHandler:nil) }