【发布时间】:2021-05-25 15:27:15
【问题描述】:
我想将 NSTableVIew 数据打印为多页打印预览,但打印预览只显示前几条记录,其余页面为空。我正在使用以下代码打印 NStableView 数据。
let printInfo = NSPrintInfo.shared
printInfo.paperSize = NSSize(width: self.reporttableview.frame.width , height: 800.00)
printInfo.verticalPagination = .automatic
let operation: NSPrintOperation = NSPrintOperation(view: self.reporttableview, printInfo: printInfo)
operation.printPanel.options.insert([.showsPaperSize, .showsOrientation])
operation.run()
以上代码工作正常,最少记录如 30 -40 行,但当记录大约 100 或超过 100 时,它只打印前几条记录,其余页面为空。任何帮助将不胜感激。我附上了 tableview 和 Print预览屏幕截图以便更好地理解。
- TableView 记录: Table view screen shot
- 打印预览: Print preview screen shot 您可以在上面的屏幕截图中看到只有前几页的记录是空的。如果我在这种情况下滚动表格视图,整个打印预览是空的。 Empty print preview screen shot
我无法理解我做错了什么。
【问题讨论】:
-
您尝试做的事情听起来与尝试打印滚动视图中的全部内容相同。
-
是的@ElTomato,你是对的,但是当我尝试打印整个 ScrollView 时,它唯一的打印滚动视图现有框架区域。我还尝试将 Tableview 框架分配给滚动视图内容偏移,但没有任何效果。
-
我试过你的代码,所有的行都打印出来了。请发minimal reproducible example。
-
@Willeke 请在表格视图中尝试至少 100 条记录。有限的数据(例如 30 - 40 条记录)可以正常工作。
-
我尝试了 100 和 10000 行。是否可以在小型测试项目中重现该问题?
标签: swift macos cocoa nstableview nsprintoperation