我们有一个包含许多报告的应用程序,其中一些报告具有复杂的打印循环。
回到过去(IE PowerPlant,Carbon,Core Printing),我们曾经用来创建具有某种BeginPage()/ EndPage()对的打印循环。通常,这些对嵌入在报表打印循环逻辑中。
最终结果是,许多报告在打印之前没有分页,但在打印时按AS分页。这些报告会遍历数千个对象,并填充尽可能多的页面,然后调用EndPage(),然后通过调用BeginPage()继续进行下一页,所有这些都保持了复杂的“状态”,进度打印报告。
[大多数核心打印已弃用,但可以肯定的是,根据NSPrint的逻辑,不可能使用打印报告来驱动分页。 NSPrintOperation几乎希望能够为自定义NSView的drawRect请求绘制整个页面,并且自定义NSView最好能够从任何页面开始。这是否意味着每个报告都必须预先分页?
似乎有另一种方法是“自动”分页的一部分:
- (void)adjustPageHeightNew:(CGFloat *)newBottom top:(CGFloat)oldTop bottom:(CGFloat)oldBottom limit:(CGFloat)bottomLimit;
如果我正确地阅读了文档,请说我有一份10页的报告,需要在其中找到合适的分隔位置。看起来就像我可以将该报告视为一个长视图,然后在我处于drawRect时调用上述方法,导致我正在绘制的页面变得更矮,从而将材质推到下一页。
该文档并未详细说明这种调整如何在数十(或数百)个页面上传播。
是否还有其他方法可以从报告生成代码中驱动打印和分页,而不是上述被动方法?
如果我正确地阅读了文档,请说我有一份10页的报告,需要在其中找到合适的分隔位置。看起来就像我可以将该报告视为一个长远看法,