如何在PrintPage处理程序中实现PrintRange.Selection?

时间:2011-01-12 15:56:39

标签: c# .net printing range

我正在尝试完全按代码设置打印作业。我有自己的PrintPage和QueryPage处理程序,一切都很好。但现在我坚持使用PrinterSettings类的PageRange属性。

对于属性值'PrintRange.Selection',文档说

  

如果PrintRange是PrintRange.Selection,则仅为所选页面指定输出。

但找不到办法。简单地不为未选择的页面绘制任何内容仍然会打印空白页面。并且取消设置将停止整个打印作业。那么如何排除未选择的页面呢?

1 个答案:

答案 0 :(得分:1)

好吧,如果你创建了多页文档,那么你的代码中应该已经有了一个页面计数器。您在BeginPrint事件处理程序中将其设置为零,并在PrintPage事件处理程序中将其递增。并使用该值来确定需要打印的页面。如果尚未完成,请将e.HasMorePages设置为true。

该策略使实现PrintRange变得简单。只需将BeginPrint事件中的页码设置为开始页面 - 1而不是0.并且避免在打印范围中的最后一页时将e.HasMorePages设置为true。