C#WinForm程序中选择打印机打印

news/2025/1/17 3:43:49/

  之前写程序,调用Microsoft.Office.Interop.Word动态生成doc文档并打印。

  由于在打印时直接实例化一个Word.Document对象,并使用其PrintOut()方法打印,未设置Word.Application的ActivePrinter属性,导致打印时只能使用默认打印机打印,后来在窗体上加了一个下拉框,可以选择要使用的打印机,这样一来就方便多了。

  从网上借段代码,实现起来很简单:

  1. 引用一下System.Drawing.Printing,加一个string类型的全局变量oldActivePrn,用来保存目前系统设置的默认打印机名称;
  2. 在Form_Load里面遍历系统中已安装的打印机,放到ComboBox中,代码:

                    int i;string pkInstalledPrinters;using (PrintDocument pd = new PrintDocument()){for (i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)  //开始遍历{pkInstalledPrinters = PrinterSettings.InstalledPrinters[i];  //取得名称cmbPrinterList.Items.Add(pkInstalledPrinters);               //加入ComboBoxif (pd.PrinterSettings.IsDefaultPrinter)                     //判断是否为默认打印机{OldActPrn = pd.PrinterSettings.PrinterName;              //保存名称,后面要用cmbPrinterList.Text = pd.PrinterSettings.PrinterName;    //显示默认打印机名称}}}
  3. 实例化Word.Application对象WordApp,实例化Wod.Document对象oDoc,在oDoc.PrintOut()之前,将WordApp.ActivePrinter设置为cmbPrinterList.Text,即将系统默认打印机设置为ComboBox中选择的打印机,然后开始打印,打印完毕,再将WordApp.ActivePrinter改回到OldActPrn即可。

  这样一来,不用到系统的“打印机”窗口设置默认打印机就可以随意指定打印机打印了。


http://www.ppmy.cn/news/337561.html

相关文章

C#打印panel控件中内容

[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]//应用API函数private static extern bool BitBlt(IntPtr hdcDest, // 目标设备的句柄 int nXDest, // 目标对象的左上角的X坐标 int nYDest, // 目标对象的左上角的X坐标 int nWidth, // 目标对…

Fineui 添加打印控件

由于在Fineui 的项目中我需要打印报表和一些标签&#xff08;不干胶标签&#xff0c;有条码&#xff0c;2维码&#xff09;&#xff0c;因为程序可能要给不同的客户使用报表和标签可能会有区别&#xff0c;所以希望可以把报表设计成模板&#xff0c;直接提取数据打印即可&#…

页面调用Adobe Reader自带的控件实现pdf打印

1、业务场景 一般的业务场景里&#xff0c;只需要将pdf文件下载到本地&#xff0c;然后打开直接打印就可以了。 但是&#xff0c;有的场景会考虑到pdf文件的敏感性&#xff0c;需要pdf文件不能被下载&#xff0c;只能打印且只能打印一次&#xff0c;这就需要考虑使用控件了。 2…

计算机后台打印机找不到,[提示]无法显示打印机属性,后台打印程序服务未运行,该怎么办?...

添加打印机或使用打印机时&#xff0c;系统报告错误“后台打印程序服务未运行”&#xff0c;该错误通常在Windows 2000&#xff0c;XP和2003系统下发生. 此现象主要是由于系统不稳定导致系统支持无法启用的打印机服务. 此“后台打印程序服务”是Windows 2000&#xff0c;XP和20…

C#-WinForm-打印控件

C#-WinForm-打印控件 </h1><div class"clear"></div><div class"postBody">打印控件 绘制如下窗体 一、PrintDocument -打印的基础 首先放置PrintDocument控件&#xff0c;双击事件PrintPage设置要打印的样式&#xff08;李献策…

安装未签名的activex控件

由于无法验证发行者&#xff0c;所以windows已经阻止此软件&#xff0c;如要安装未签名的activex控件&#xff0c;按如下步骤&#xff1a;1、打开Internet Explorer---菜单栏点“工具”---Internet选项--安全---自定义级别---安全设置---“ActiveX控件和插件下”的第5个“下载未…

CrystalReportViewer 打印控件PrintControl.cab安装(VS2005和VS2008)

VS.NET2005/2008 CrystalReport的打印模式分为Pdf和ActiveX两种&#xff0c;打印模式的设置在 CrystalReportViewer.PrintMode 属性中。 1、PDF模式的打印需在服务端及客户端安装pdf格式阅读器。 2、ActiveX模式:ActiveX 打印控件允许使用者将报表直接打印至本机打印机。使用…

提示“Web打印服务CLodop未安装启动”的各种原因和解决方法

旧版提示:"CLodop云打印服务(localhost本地)未安装启动!"新版提示:"Web打印服务CLodop未安装启动,点击这里下载执行安装(若此前已安装过,可点这里直接再次启动),成功后请刷新本页面。” 可能原因及现象及解决方法:原因1:没安装,需要安装C-Lodop。现象…