我试图用打印机打印,NSTextView的纯文本内容有黑色背景和白色文本(没有图像,只有未格式化的文本)。
我正在使用此代码:
mainTextField.print(Any?.self)
不幸的是,打印(预览)看起来像黑色,上面有白色文字,除了我会为每张纸使用墨盒墨水,它甚至对环境都不好。有没有办法只打印没有背景和文本颜色属性的文本?
答案 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)")
}
}