- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个包含许多报告的应用程序,其中一些报告具有复杂的打印循环。
过去(IE PowerPlant、Carbon、Core Printing)我们用来创建具有某种 BeginPage()/EndPage() 对的打印循环。通常,这些对被嵌入到报告打印循环逻辑中。
最终的结果是,许多报告在打印之前没有分页,而是在打印时才分页。这些报告迭代数千个对象并尽可能多地填充页面,然后调用 EndPage(),然后通过调用 BeginPage() 继续处理下一页,同时保持内部的复杂“状态”。进度打印报告。
由于大多数核心打印已被弃用,看来按照 NSPrint 的逻辑,打印报告驱动分页的方法是不可能的。 NSPrintOperation 非常希望能够请求自定义 NSView 的 drawRect 来绘制整页,并且自定义 NSView 最好能够从任何页面开始。这是否意味着每份报告都必须预先分页?
似乎有一种不同的方法是“自动”分页的一部分:
- (void)adjustPageHeightNew:(CGFloat *)newBottom top:(CGFloat)oldTop bottom:(CGFloat)oldBottom limit:(CGFloat)bottomLimit;
如果我正确阅读文档,假设我有一份 10 页的报告,我需要在其中找到合适的位置进行划分。看起来我可以将该报告视为一个长 View ,然后在我的绘制矩形中调用上述方法,导致我正在绘制的页面变得更短,从而将 Material 推到下一页。 p>
该文档没有提供有关此类调整如何在数十(或数百)个页面上传播的详细信息。
除了上述被动方法之外,还有其他方法可以通过报告生成代码驱动打印和分页吗?
最佳答案
If I'm reading the documentation correctly, say I had a 10-page report where I needed to find suitable places to divide. It LOOKS like I can treat that report as one long view,
是的,
- (void)adjustPageHeightNew:(CGFloat *)newBottom top:(CGFloat)oldTop bottom:(CGFloat)oldBottom limit:(CGFloat)bottomLimit;
then call the above method while I’m in my drawRect
不,文档说:
Overridden by subclasses to adjust page height during automatic pagination. This method is invoked by print:. The view can raise the bottom edge and return the new value in newBottom, allowing it to prevent items such as lines of text from being divided across pages.
The documentation doesn't give much detail about how such adjustments would propagate across dozens (or hundreds) of pages.
我假设以下页面向上移动。
Are there any other methods to drive the printing and pagination from report-generation code, rather than the passive approaches described above?
是的,覆盖
- (BOOL)knowsPageRange:(NSRangePointer)range;
和
- (NSRect)rectForPage:(NSInteger)page;
这要求报告预先分页。
参见Selecting the Page Bounds for Content That Exceed a Single Page
关于cocoa - MacOS/appkit NSPrint 逻辑用于打印长而复杂的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61262590/
我在为 MacOSX 构建的独立包中添加 DMG 背景的自定义图标时遇到问题。我在项目的根目录中添加了一个包。正在从中加载自定义图标,但没有加载 DMG 背景图标。我正在使用 Java fx 2.2.
Qt for Symbian 和 Qt for MeeGo 有什么区别?我知道 Qt 是一个交叉编译平台。这是否意味着如果我使用来自 Qt 的库,完全相同的库可以在所有支持 Qt 的设备(例如 Sym
我正在尝试使用 C# .NET 3.5/4.0 务实地运行 SQL Server 数据库的备份。我已经找到了如何完成此操作,但是我似乎找不到用于备份的命名空间库。 我正在寻找 Microsoft.Sq
我最近在疯狂学习 Java,但我通常是一名 .NET 开发人员。 (所以请原谅我的新手问题。) 在 .Net 中,我可以在不使用 IIS 的情况下开发 ASP.Net 页面,因为它有一个简化的 Web
这post仅当打印命令中有字符串时才有用。现在我有大量的源代码,其中包含一条声明,例如 print milk,butter 应该格式化为 print(milk,butter) 用\n 捕获行尾并不成功
所以我的问题是: https://gist.github.com/panSarin/4a221a0923927115584a 当我保存这个表格时,我收到了标题中的错误 NoMethodError (u
如何让 Html5 音频在点击时播放声音? (ogg 用于 Firefox 等浏览器,mp3 用于 chrome 等浏览器) 到目前为止,我可以通过 onclick 更改为单个文件类型,但我无法像在普
如果it1和it2有什么区别? std::set s; auto it1 = std::inserter(s, s.begin()); auto it2 = std::inserter(s, s.en
4.0.0 com.amkit myapp SpringMVCFirst
我目前使用 Eclipse 作为其他语言的 IDE,而且我习惯于不必离开 IDE 做任何事情 - 但是我真的很难为纯 ECMAScript-262 找到相同或类似的设置。 澄清一下,我不是在寻找 DO
我想将带有字符串数组的C# 结构发送到C++ 函数,该函数接受void * 作为c# 结构和char** 作为c# 结构字符串数组成员。 我能够将结构发送到 c++ 函数,但问题是,无法从 c++ 函
我正在使用动态创建的链接: 我想为f:param附加自定义转换器,以从#{name}等中删除空格。 但是f:param中没有转换器
是否可以利用Redis为.NET创建后写或直写式缓存?理想情况下,透明的高速缓存是由单个进程写入的,并且支持从数据库加载丢失的数据,并每隔一段时间持久保存脏块? 我已经搜查了好几个小时,也许是goog
我正在通过bash执行命令的ssh脚本。 FILENAMES=( "export_production_20200604.tgz" "export_production_log_2020060
我需要一个正则表达式来出现 0 到 7 个字母或 0 到 7 个数字。 例如:匹配:1234、asdbs 不匹配:123456789、absbsafsfsf、asf12 我尝试了([a-zA-Z]{0
我有一个用于会计期间的表格,该表格具有期间结束和开始的开始日期和结束日期。我使用此表来确定何时发生服务交易以及何时在查询中收集收入,例如... SELECT p.PeriodID, p.FiscalY
我很难为只接受字符或数字的 Laravel 构建正则表达式验证。它是这样的: 你好<-好的 123 <- 好的 你好123 <-不行 我现在的正则表达式是这样的:[A-Za-z]|[0-9]。 reg
您实际上会在 Repeater 上使用 OnItemDataBound 做什么? 最佳答案 “此事件为您提供在客户端显示数据项之前访问数据项的最后机会。引发此事件后,数据项将被清空,不再可用。” ~
我有一个 fragment 工作正常的项目,我正在使用 jeremyfeinstein 的 actionbarsherlock 和滑动菜单, 一切正常,但是当我想自定义左侧抽屉列表单元格时,出现异常
最近几天,我似乎平均分配时间在构建我的第一个应用程序和在这里发布问题!! 这是我的第一个应用程序,也是我们的设计师完成的第一个应用程序。我试图满足他所做的事情的外观和感觉,但我认为他没有做适当的事情。
我是一名优秀的程序员,十分优秀!