我们在使用ActiveReport打印报表的时候需要支持在打印中途取消打印。虽然ActiveReport的Document的Printer属性暴露了QueryPageSettings、PrintPage等事件的事件参数都提供了Cancel属性,但是在实际测试的时候发现设置上述事件的事件参数的Cancel属性确实能够取消打印任务,但是发现整个打印任务全部取消了,包括已经输出到打印缓存的页面。我们的需求是已经输出到打印缓存的页面继续输出到打印机,还没有打印的页面则取消。经过大量的分析和尝试后发现通过设置Printer对象(Document对象所暴露的属性)的ToPage属性的值为0可以解决这个问题。