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

How to print (with a printer) a NSTextView text content without background and text color attribute?

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

我正在使用此代码:

mainTextField.print(Any?.self)

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

当你想打印的时候,只需要创建一个新的 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)
}

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

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