找回密码
 立即注册

QQ登录

只需一步,快速开始

jsczfw

初级会员

27

主题

52

帖子

323

积分

初级会员

积分
323

活字格认证微信认证勋章元老葡萄

jsczfw
初级会员   /  发表于:2017-1-11 12:13  /   查看:3817  /  回复:4
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();

4 个回复

倒序浏览
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 就是你在打印机的纸张设置中定义的纸张名字,
这样你想用多大的纸就能轻松打印的,不用频繁来回改打印机的默认纸张了

评分

参与人数 1金币 +3000 收起 理由
Lenka.Guo + 3000 很给力!

查看全部评分

回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-1-12 09:42:40
5#
jsczfw 发表于 2017-1-11 23:04
问题解决了,就用代码
  report1.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom;
  ...


谢谢反馈奖励3000金币
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部