在.Net Winforms中使用打印预览

Bob*_*one 1 .net c# visual-studio-2008 winforms

我正在.Net 2008 Winforms中编写c#代码.

我创建了一个打印预览窗口来创建报告.它工作正常我可以预览报告,然后打印它.唯一的问题是它不像Office打印预览那样灵活.用户无法选择默认打印机以外的打印机,也无法将打印限制为某些页面.也许我错过了一些我需要的性能.

这是我使用的代码的一部分:

PrintDocument pd = new PrintDocument();
            pd.PrintPage += new PrintPageEventHandler(this.PrintTheGraph);
            pd.DefaultPageSettings.Landscape = true;
            // Allocate a print preview dialog object.
            PrintPreviewDialog dlg = new PrintPreviewDialog();
            dlg.Width = 100;
            dlg.MinimumSize = new Size(375, 250);
            dlg.SetBounds(100, -550, 800, 800);
            dlg.Document = pd;
            DialogResult result = dlg.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

谢谢,

短发

Dou*_*rch 5

打印预览和打印是不同的功能,应该是不同的菜单选项.选择"打印预览"不应该打印您的文档,用户可能希望看到他们的文档在页面上显示的内容而不实际打印它.

要打印页面并允许选择打印机设备,请使用:

PrintDialog pDialog = new PrintDialog( );
pDialog.Document = printDocument;
if (pDialog.ShowDialog( ) == DialogResult.OK) {
    printDocument.DocumentName = fileName;
    printDocument.Print( );
    }
Run Code Online (Sandbox Code Playgroud)

PrintDialog班有一个UseEXDialog你可以用它来显示与打印选择,范围,N-up打印等扩展页面设置对话框属性.人.处理所有这些选项需要做很多工作,PrintDialog 先行.