2010-02-19 75 views
0

如何打印我的NSTableView中的内容?该视图使用核心数据,因此一切都被存储并可以作为一个NSArray抓取。但是我怎么去打印出来呢?当你点击打印按钮时,它似乎只是拍摄了视图并打印出来。在NSTableView中打印数据

回答

3

是的,这与记录完全一致。该视图被要求提供PDF表示(对于未修改的表格视图,这正是您在屏幕上看到的),然后将其打印出来。

用于打印和屏幕上绘图的视图drawing can be customized,但对于表格视图,这比它的价值更麻烦。

生成表格的HTML表示可能是最容易的,然后打印该表格。您可以使用WebKit或简单的NSAttributedString和屏幕外的NSTextView。这里的诀窍是生成HTML,使用HTML数据创建一个属性字符串(这里有一个方法),然后将其交给离屏文本视图。文本视图将根据需要调整大小,然后您只需要将其打印出来即可。这使您可以控制分页,因为WebKit当前不支持CSS的打印特定部分(换句话说,它是“仅屏幕”)。

+0

有趣的方法,我怎么会生成HTML,然后我会用什么方法来创建一个属性串与HTML数据?干杯。 – Joshua 2010-02-19 18:09:26

+0

如何创建HTML?您将遍历数据集并生成适当的表格HTML。至于如何创建属性字符串,相应的HTML方法位于NSAttributed String AppKit Additions中:http://bit.ly/aHZdZ6 – 2010-02-19 18:53:12

+0

这种技术如何让您控制分页?我有我的HTML页面打印很好,但我想连续打印多个HTML页面,但每个HTML页面应该在新页面上开始。当我将它们全部添加到同一个NSMutableString中,然后将它们加载到Web视图中时,我所得到的只是一个页面。我希望每个页面都分开。只需将HTML加载到NSTextView并进行打印即可完成此操作? – 2013-02-03 07:48:55

1

我所做的是采取数据并以最终用户希望打印的方式将其绘制到基于NSView的对象。用户然后打印。它在文档中。

我喜欢约书亚Nozzi的想法,可能比自定义图简单得多......