如何打印(使用打印机)没有背景和文本颜色属性的NSTextView文本内容?

时间:2017-03-18 00:18:27

标签: swift macos printing nstextview

我试图用打印机打印,NSTextView的纯文本内容有黑色背景和白色文本(没有图像,只有未格式化的文本)。

我正在使用此代码:

mainTextField.print(Any?.self)

不幸的是,打印(预览)看起来像黑色,上面有白色文字,除了我会为每张纸使用墨盒墨水,它甚至对环境都不好。有没有办法只打印没有背景和文本颜色属性的文本?

2 个答案:

答案 0 :(得分:3)

当您想要打印时,只需创建一个新的NSTextView。

@IBAction func printButtonClicked(_ sender: Any) {
    let tv = NSTextView(frame: textView.frame)
    tv.string = textView.string
    tv.print(tv)
}

---更新:带有丰富的文字.---

@IBAction func printButtonClicked(_ sender: Any) {
    let tv = NSTextView(frame: textView.frame)
    if textView.isRichText {
        let data = textView.rtf(from: NSMakeRange(0, (textView.string! as NSString).length))
        tv.replaceCharacters(in: NSMakeRange(0, 0), withRTF: data!)
        tv.textColor = .black
    }
    else {
        tv.string = textView.string
    }

    tv.print(nil)
}

答案 1 :(得分:-1)

在我的项目中,我通过代码打印文本视图的文本内容。 iOS 10上的Swift 4

func printContent() {
    let printer = UIPrintInteractionController.shared
    printer.printFormatter = UISimpleTextPrintFormatter(attributedText: self.contentView.attributedText)

    printer.present(animated: true) { printer, success, error in
        print("print success: \(success)")
    }
}