No more Death March

あるSEのチラシの裏 C# WPF

文字列からプリンタを取得

using System;
using System.Printing;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var queueByFullName = new PrintQueue(new LocalPrintServer(), LocalPrintServer.GetDefaultPrintQueue().FullName);
            Console.WriteLine(queueByFullName.FullName);
            Console.ReadKey();
        }
    }
}

PrintQueueクラスのコンストラクタにPrintServerクラスのインスタンスとプリンタの完全名(文字列)を渡すと取得出来る。


以下のようにインストールされていないプリンタ名を指定するとSystem.Printing.PrintQueueExceptionが発生する。

using System;
using System.Printing;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //var queueByFullName = new PrintQueue(new LocalPrintServer(), LocalPrintServer.GetDefaultPrintQueue().FullName);
            var queueByFullName = new PrintQueue(new LocalPrintServer(), "Hoge");
            Console.WriteLine(queueByFullName.FullName);
            Console.ReadKey();
        }
    }
}