jsczfw 发表于 2017-1-11 12:13:12

ar区域报表如何加载打印机自定义的纸张,在预览和打印指定预先设置好的纸张?

ar区域报表如何加载打印机自定义的纸张,在预览和打印指定预先设置好的纸张? 用哪个系统自带的ActiveReports 9 Designer打印预览纸张是好的,写程序调用代码打印就会选取打印机的USER 默义纸张
代码如下:
SectionReport report1;
            report1 = new SectionReport();
            report1.LoadLayout(Application.StartupPath + @"\Reports\" + CurrentReport);
            report1.Document.Printer.PrinterName = "";
            report1.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom;
            ////设置打印纸张
            System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument();
            foreach (PaperSize ps in printDoc.PrinterSettings.PaperSizes)
            {
                if (ps.PaperName == _PaperName)
                {
                  //printDoc.PrinterSettings.DefaultPageSettings.PaperSize = ps;
                  //printDoc.DefaultPageSettings.PaperSize = ps;
                  report1.Document.Printer.PaperSize = ps;
                }
            }
            report1.Document.Printer.PrinterSettings.Copies = _printcopies;
            GrapeCity.ActiveReports.Data.OleDBDataSource ds = new GrapeCity.ActiveReports.Data.OleDBDataSource();
            ds.ConnectionString = connString;
            ds.SQL = sqlString;
            report1.DataSource = ds;
            report1.Run(false);
            report1.Document.Print(false, false);
            report1.Dispose();

Lenka.Guo 发表于 2017-1-11 16:54:24

>>>ar区域报表如何加载打印机自定义的纸张,在预览和打印指定预先设置好的纸张? 用哪个系统自带的ActiveReports 9 Designer打印预览纸张是好的,写程序调用代码打印就会选取打印机的USER 默义纸张

没有太理解您的问题, 打印时候,如果打印机有您自定义的纸张,报表时不会选取纸张的,只能是打印机提供什么纸张,报表就在这种类型的纸张上打印

jsczfw 发表于 2017-1-11 23:02:40

问题解决了,就用report1.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom;
            ////设置打印纸张
            System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument();
            foreach (PaperSize ps in printDoc.PrinterSettings.PaperSizes)
            {
                if (ps.PaperName == _PaperName)
                {
                  //printDoc.PrinterSettings.DefaultPageSettings.PaperSize = ps;
                  //printDoc.DefaultPageSettings.PaperSize = ps;
                  report1.Document.Printer.PaperSize = ps;
                }
            }
_PaperName 就是你在打印纸张设置定义纸张的名字,这样你想用多大的纸就能轻松打印的,不用频繁来回改打印机的默认纸张了

jsczfw 发表于 2017-1-11 23:04:42

问题解决了,就用代码
report1.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom;
            ////设置打印纸张
            System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument();
            foreach (PaperSize ps in printDoc.PrinterSettings.PaperSizes)
            {
                if (ps.PaperName == _PaperName)
                {
                  //printDoc.PrinterSettings.DefaultPageSettings.PaperSize = ps;
                  //printDoc.DefaultPageSettings.PaperSize = ps;
                  report1.Document.Printer.PaperSize = ps;
                }
            }
_PaperName 就是你在打印机的纸张设置中定义的纸张名字,
这样你想用多大的纸就能轻松打印的,不用频繁来回改打印机的默认纸张了

Lenka.Guo 发表于 2017-1-12 09:42:40

jsczfw 发表于 2017-1-11 23:04
问题解决了,就用代码
report1.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom;
...

:hjyzw:
谢谢反馈奖励3000金币
页: [1]
查看完整版本: ar区域报表如何加载打印机自定义的纸张,在预览和打印指定预先设置好的纸张?