PageSetupDialog 未正确返回 PageSize
我正在尝试使用 PageSetupDialog 设置文档的打印页面。
在打开对话框之前,文档已正确设置,页面大小和页面来源也已正确设置。 但是,当我选择不同的纸张尺寸和纸张来源后从对话框返回时,纸张尺寸未正确反映,而纸张来源则正常。 是的,我正在按“确定”按钮。
这个问题并不是新问题,但到目前为止还没有正确的答案。
PageSetupDialog dlgPageSetup = new PageSetupDialog();
dlgPageSetup.Document = this.printDocument1; //this is fine, assume that.
dlgPageSetup.PageSettings.PaperSize = new PaperSize("My Custom", 1012, 800);
dlgPageSetup.PageSettings.PaperSource.SourceName = "Envelope";
if (dlgPageSetup.ShowDialog(this) == DialogResult.OK) {
System.Diagnostics.Trace.WriteLine("DEBUG: "
+ dlgPageSetup.PageSettings.PaperSize);
System.Diagnostics.Trace.WriteLine("DEBUG: "
+ dlgPageSetup.PageSettings.PaperSource);
}
我正在使用.Net 2.0,VS 2k5。
我猜这仍然是一个错误,它与自定义页面大小有关。有人解决这个问题吗?
I'm trying to set up the print page for a document, using PageSetupDialog.
Before I open the dialog, the document is set correctly, page size and page source are set correctly too.
But when I return from the dialog after select a different paper size and paper source, the paper size is not correctly reflected, while the paper source is fine. Yes, I am pressing OK button.
This issue is not new but so far there has been no proper answer.
PageSetupDialog dlgPageSetup = new PageSetupDialog();
dlgPageSetup.Document = this.printDocument1; //this is fine, assume that.
dlgPageSetup.PageSettings.PaperSize = new PaperSize("My Custom", 1012, 800);
dlgPageSetup.PageSettings.PaperSource.SourceName = "Envelope";
if (dlgPageSetup.ShowDialog(this) == DialogResult.OK) {
System.Diagnostics.Trace.WriteLine("DEBUG: "
+ dlgPageSetup.PageSettings.PaperSize);
System.Diagnostics.Trace.WriteLine("DEBUG: "
+ dlgPageSetup.PageSettings.PaperSource);
}
I'm using .Net 2.0, VS 2k5.
I am guessing this still is a bug, and its related to custom page size. Has anybody got solution for this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我通过以下方法解决了该问题:
因此,在打开打印设置对话框之前,我检查打印文档的 PageKind ,如有必要,请重新创建,然后打开该对话框。
在 RecreatePrintDocument() 中,我创建一个新的打印文档并分配处理程序,诸如此类的事情。
这不是一个很好的解决方案,因为如果用户选择自定义页面类型,我们就会忘记页面设置,但这是一个开始。
I worked around the problem by:
So before I open the printsettings dialog, I check the PageKind of the print document, recreate if necessary, and then open the dialog.
In RecreatePrintDocument(), I create a new printdocument and assign the handler, that sort of thing.
This isn't a great solution, because we just forget the page settings if the user chooses a custom page kind, but it's something to start with.
这是一个已知的错误。直到.NET 3.5,它仍然是可重现的。有关线程的更多详细信息 http: //social.msdn.microsoft.com/forums/en-US/winforms/thread/81bb2cea-8d47-4ddc-a174-14d6bc196de7/
This is a known bug. Till .NET 3.5, it is still reproducible. More details on thread http://social.msdn.microsoft.com/forums/en-US/winforms/thread/81bb2cea-8d47-4ddc-a174-14d6bc196de7/