找回密码
 立即注册

QQ登录

只需一步,快速开始

KearneyKang 讲师达人认证 悬赏达人认证

超级版主

199

主题

6505

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
10804

圣诞拼拼乐微信认证勋章讲师达人悬赏达人元老葡萄

KearneyKang 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-7-31 17:45  /   查看:7920  /  回复:2
本帖最后由 KearneyKang 于 2020-11-26 17:11 编辑

C/S端进行桌面端应用开发时,有时静默打印的时候需要设置默认的打印机,这样点击打印就会直接找到对应的打印机,进行打印。

打印的核心代码
  1. private void tsbPrint_Click(object sender, EventArgs e)
  2.         {
  3.             string file_name = @"..\..\RdlReport1.rdlx";
  4.             GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
  5.             pageReport.Document.LocateDataSource += new LocateDataSourceEventHandler(LocateData);
  6.             pageReport.Document.Printer.DefaultPageSettings.Margins.Bottom = 0;
  7.             pageReport.Document.Printer.DefaultPageSettings.Margins.Left = 0;
  8.             pageReport.Document.Printer.DefaultPageSettings.Margins.Right = 0;
  9.             pageReport.Document.Printer.DefaultPageSettings.Margins.Top = 0;           
  10.             pageReport.Document.Printer.PaperSize.RawKind = 0;
  11.             pageReport.Document.Printer.PaperSize.Width = 14;
  12.             pageReport.Document.Printer.PaperSize.Height = 20;
  13.             pageReport.Document.Printer.PrinterName = "打印机名";
  14.             GrapeCity.ActiveReports.PrintExtension.Print(_document, true, true);

  15.          }
复制代码
其中客户设置打印纸张的大小,左右边距。
设置默认打印机的核心代码:pageReport.Document.Printer.PrinterName = "****";
如果连接的是网络打印机,有时会存在找不到的情况,因此对网络打印机的命名,最好采取如下的命名方式 。如:“\\xa-printer.Net\打印机名”


2 个回复

倒序浏览
netstone
注册会员   /  发表于:2020-7-8 09:03:11
沙发
请教,这个例子是否只使用与 pageReport,RDL 报表也可以这样实现静默打印吗?我们一个项目中用这个例子输出,打印机上只能输出第一页会是什么原因?多谢。
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-7-8 10:16:29
板凳
你好,RDL报表也是可以的了,你说的只打印第一页的问题,还需要根据你的具体代码来分析
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部