gpt4 book ai didi

.net - Hasmorepages PrintPageEventArgs 属性到底有什么作用?

转载 作者:行者123 更新时间:2023-12-03 04:30:28 26 4
gpt4 key购买 nike

我试图了解 Hasmorepages PrintPageEventArgs 属性是什么、为什么要使用它以及它是如何工作的。

MSDN Library 并没有很好的解释。他们只是说,如果将其设置为 true,则会再次调用 printpage 事件。这是否意味着事件会自行循环而不离开或离开并再次调用自身或依赖于您再次调用 printpage 事件?

我只是想了解 PrintPageEventArgs.hasmorepages 属性。任何提示或帮助将不胜感激。

谢谢,

最佳答案

它不是 PrintDocument 的属性,而是 PrintPageEventArgs 的属性。其实例被传递到您的 PrintPage 事件处理程序。

PrintController 和 PrintDocument 类的工作方式很大程度上受到 Windows 中打印实现方式的影响。核心实现细节是它是基于页面的。打印机驱动程序一次处理一页,底层的winapi函数是StartPage()。呈现给打印设备上下文的任何内容最终都会显示在一页上。然后 EndPage() winapi 函数完成页面并将其提交给假脱机程序。

这可能有助于绘制打印 3 页文档时进行的调用的图表:

StartDoc()
PrintDocument.BeginPrint event
StartPage()
PrintDocument.PrintPage event, e.HasMorePages = true
EndPage()
StartPage()
PrintDocument.PrintPage event, e.HasMorePages = true
EndPage()
StartPage()
PrintDocument.PrintPage event, e.HasMorePages = false
EndPage()
PrintDocument.EndPrint event
EndDoc()

现在应该很清楚了,通过分配 e.HasMorePage = true,您可以让 PrintController 继续触发 PrintPage 事件。您可以对文档进行分页并在 PrintPage 事件处理程序中呈现正确页面的内容。例如,您需要 BeginPrint 事件将内部页面计数器设置为 0。

关于.net - Hasmorepages PrintPageEventArgs 属性到底有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com