好心人帮我看看,这段代码哪有问题???在此谢过!!!
 private void button3_Click(object sender, EventArgs e)
        {
            pDialog.Document = this.printDocument1;
            pDialog.AllowSomePages = true;
            pDialog.AllowCurrentPage = true;
            PageSetupDialog psdPageSet = new PageSetupDialog();
            psdPageSet.Document = this.printDocument1;
            printDocument1.DefaultPageSettings.Landscape = false;
            DialogResult rr = psdPageSet.ShowDialog();
            if (rr == DialogResult.OK)
            {
                string printName = printDocument1.DefaultPageSettings.PaperSize.PaperName;
                if (printDocument1.DefaultPageSettings.Landscape)   //横
                {
                    reportViewer1.Width = returnMethod(printName, 2);
                    reportViewer1.Height = returnMethod(printName, 1);
                }
                else   //纵
                {
                    reportViewer1.Width = returnMethod(printName, 1);
                    reportViewer1.Height = returnMethod(printName, 2);
                }
                reportViewer1.Size = new Size(reportViewer1.Width, reportViewer1.Height);
            }
            pDialog.ShowHelp = true;
            DialogResult result = pDialog.ShowDialog();
            try
            {
                if (result == DialogResult.OK)
                {
                    PrintPreviewDialog dlg = new PrintPreviewDialog();
                    dlg.Width = reportViewer1.Width;
                    dlg.Height = reportViewer1.Height;
                    PaperSize pkCustomSize1 = new PaperSize("A4", reportViewer1.Width, reportViewer1.Height);  //纸类型
                    printDocument1.DefaultPageSettings.PaperSize = pkCustomSize1;
                    dlg.Document = printDocument1;
                    printDocument1.Print();
                }
            }
            catch (Exception ex)
            {                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }