asp.net使用RDLC调用PrintDialog,PageSetupDialog,PrintPreviewDialog对话框不现实桌面最前端

时间:2021-06-28 08:31:34
asp.net使用RDLC调用PrintDialog,PageSetupDialog,PrintPreviewDialog对话框不现实桌面最前端,
使用asp.net和RDLC报表开发项目,自己做了一个打印按钮(因谷歌游览器不现实的原因),调用了PrintDialog,PageSetupDialog,PrintPreviewDialog相关对话框的类,结果出现的对话框出现在游览器的后面,核心代码如下:
private void Print()
    {
        if (m_streams == null || m_streams.Count == 0)
            throw new Exception("Error: no stream to print.");
        PrintDocument printDoc = new PrintDocument();
        if (!printDoc.PrinterSettings.IsValid)
        {
            throw new Exception("Error: cannot find the default printer.");
        }
        else
        {
            printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
            m_currentPageIndex = 0;
            PrintDialog pd = new PrintDialog();
            pd.Document = printDoc;
            DialogResult rc1 = pd.ShowDialog();
            if (DialogResult.OK == rc1) //如果确认,将会覆盖所有的打印参数设置,直接打印不设置打印对话框
            {
                //页面设置对话框(可以不使用,其实PrintDialog对话框已提供页面设置)
                PageSetupDialog psd = new PageSetupDialog();
                psd.Document = printDoc;

                DialogResult rc2 = psd.ShowDialog();

                if (DialogResult.OK == rc2)
                {
                    //打印预览,拿到这里面用不好使,我的要求并不高,仅仅是这个对话框跑到最上面SetDesktopBounds,这应该是一个bug 
                    PrintPreviewDialog ppd = new PrintPreviewDialog();

                    ppd.TopLevel = true;
                    ppd.Document = printDoc;
                    DialogResult rc3 = ppd.ShowDialog();
                    if (DialogResult.OK == rc3)
                        printDoc.Print();          //打印,
                }
            }
        }
    }

   请高手赐教解决方法 asp.net使用RDLC调用PrintDialog,PageSetupDialog,PrintPreviewDialog对话框不现实桌面最前端

1 个解决方案

#1


没人回答,回答给分啊

#1


没人回答,回答给分啊