C#获取本地打印机列表,并将指定打印机设置为默认打印机

来源:互联网 发布:免费管理会员软件 编辑:程序博客网 时间:2024/05/20 17:40
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace Printers{    /// <summary>    /// Interaction logic for Window1.xaml    /// </summary>    public partial class Window1 : Window    {        public Window1()        {            InitializeComponent();            InitprinterComboBox(); //初始化打印机下拉列表选项        }        private void InitprinterComboBox()        {            List<String> list = LocalPrinter.GetLocalPrinters(); //获得系统中的打印机列表            foreach (String s in list)            {                printerComboBox.Items.Add(s); //将打印机名称添加到下拉框中            }        }        private void printButton_Click(object sender, RoutedEventArgs e)        {            if (printerComboBox.SelectedItem != null) //判断是否有选中值            {                if (Externs.SetDefaultPrinter(printerComboBox.SelectedItem.ToString())) //设置默认打印机                {                    MessageBox.Show(printerComboBox.SelectedItem.ToString() + "设置为默认打印机成功!");                }                else                {                    MessageBox.Show(printerComboBox.SelectedItem.ToString() + "设置为默认打印机失败!");                }            }        }    }}


using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing.Printing;using System.Runtime.InteropServices;namespace Printers{    class LocalPrinter    {        private static PrintDocument fPrintDocument = new PrintDocument();        //获取本机默认打印机名称        public static String DefaultPrinter()        {            return fPrintDocument.PrinterSettings.PrinterName;        }        public static List<String> GetLocalPrinters()        {            List<String> fPrinters = new List<String>();            fPrinters.Add(DefaultPrinter()); //默认打印机始终出现在列表的第一项            foreach (String fPrinterName in PrinterSettings.InstalledPrinters)            {                if (!fPrinters.Contains(fPrinterName))                {                    fPrinters.Add(fPrinterName);                }            }            return fPrinters;        }    }}

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace Printers{    class Externs    {        [DllImport("winspool.drv")]        public static extern bool SetDefaultPrinter(String Name); //调用win api将指定名称的打印机设置为默认打印机    }}

PrintDocument.PrinterSettings 属性

使用 PrinterSettings.Copies 属性来指定想要打印的份数,使用 PrinterSettings.PrinterName 属性来指定要使用的打印机,而使用 PrinterSettings.PrintRange 属性来指定想要打印的页的范围。

0 0
原创粉丝点击