asia 发表于 2021-11-29 09:50:29

WPF 里指定打印机

本帖最后由 Crystal.Li 于 2021-11-29 15:17 编辑

各位 ,在之前别人的帖子里找到代码指定打印机,代码是:设置rpt.document.printer.name="";

我用的是WPF (C# 开发)
好像无法使用,
       PageDocument rptd = null;
...........(省去具体代码)
   var viewr = this.ViewCore.GetViewer();
viewr.LoadDocument(rptd);
rptd.LocateDataSource += document_LocateDataSource;

rptd.document.printer.name="";   这句不行 ,rptd 没有 document 属性,请大神指点,谢谢。




asia 发表于 2021-11-29 09:50:30

本帖最后由 asia 于 2021-11-30 10:02 编辑

Bella.Yuan 发表于 2021-11-29 17:54
您好,参考下面方式,要保证您的打印机的名称是正确的。
你好,刚试了一下,    var printname1 = "HP LaserJet MFP M132nw(5CB726)";
                if (rptd.Printer != null)
                {
                  rptd.Printer.PrinterName = printname;
                }
               
这段代码虽然过期但是好像是可以用的,昨天可能输入了一个空格进去 ,但是有个问题:、
调用打印: var b = rptd.Print();
弹出一个打印D:\222.png弹出框,可以直接打印吗?不弹出这个框

James.Lv 发表于 2021-11-29 11:25:35

您好,您直接rptd.printer.name=""试试

asia 发表于 2021-11-29 13:15:18


asia 发表于 2021-11-29 13:16:01

asia 发表于 2021-11-29 13:15


   var viewr = this.ViewCore.GetViewer();
                viewr.LoadDocument(rptd);
                rptd.LocateDataSource += document_LocateDataSource;
                var printname = "HP LaserJet MFP M132nw(5CB726)";
                if (rptd.Printer != null)
                {
                  rptd.Printer.PrinterName = printname;
                }

            var b = rptd.Print();

b=false

asia 发表于 2021-11-29 13:17:18

asia 发表于 2021-11-29 13:16
var viewr = this.ViewCore.GetViewer();
                viewr.LoadDocument(rptd);
             ...

代码是这样的,但是提示这个rptd.Printer.PrinterName = printname; 已经过时 ,建议移除 , 并且运行时显示对访问打印机设置无效

Bella.Yuan 发表于 2021-11-29 17:54:36

asia 发表于 2021-11-29 13:17
代码是这样的,但是提示这个rptd.Printer.PrinterName = printname; 已经过时 ,建议移除 , 并且运行 ...

您好,参考下面方式,要保证您的打印机的名称是正确的。
<div>rpt.Document.Printer.PrinterSettings.PrinterName = "XXX";</div><div>rpt.Document.Printer.Print();</div>

asia 发表于 2021-11-30 09:50:45

Bella.Yuan 发表于 2021-11-29 17:54
您好,参考下面方式,要保证您的打印机的名称是正确的。

我用的是WPF (C# 开发)
好像无法使用,
       PageDocument rptd = null;
...........(省去具体代码)
   var viewr = this.ViewCore.GetViewer();
viewr.LoadDocument(rptd);
rptd.LocateDataSource += document_LocateDataSource;

rptd.document.printer.name="";   这句不行 ,rptd 没有 document 属性

James.Lv 发表于 2021-11-30 10:32:32

asia 发表于 2021-11-30 10:01
你好,刚试了一下,    var printname1 = "HP LaserJet MFP M132nw(5CB726)";
                if (rptd ...

您好,这个您可以设置print的参数,具体可以参考这个文档
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=49016&extra=page%3D5
页: [1]
查看完整版本: WPF 里指定打印机