[C#]プリンタ一覧と、デフォルトプリンタを取得するには

C#(.Net Framework)のプログラムから、プリンタ一覧とデフォルトプリンタを取得する方法です。


.Net Frameworkでプリンタの情報を取得するには、System.Printingパッケージを使用します。
System.Printingパッケージは標準では使用できないため、以下のように、参照設定でSystem.Printingを追加する必要があります。



パッケージの追加を行ったら、以下のコードでシステムに登録されているプリンタ情報が取得できます

private void button1_Click( object sender, EventArgs e ) {
    textBox1.Text = "";
 
    //-------------------------------
    // デフォルトプリンタを取得する
    //-------------------------------
    PrintQueue defaultPrinter = new LocalPrintServer().DefaultPrintQueue;
 
    //-------------------------------------------
    // PCに登録されているプリンタを全て列挙する
    //-------------------------------------------
    foreach (PrintQueue queue in ( new PrintServer() ).GetPrintQueues() ) {
 
        // プリンタ名を取得する
        string printerName = queue.FullName;
 
        // 処理しているプリンタがデフォルトの時は、その事を通知
        if ( printerName.Equals ( defaultPrinter.FullName ) ) {
            printerName += " [デフォルトプリンタ]";
        }
 
        // プリンタ名を出力
        textBox1.AppendText( printerName + Environment.NewLine );
    }
}


プログラムを実行してみた結果が、以下の画面になります。



プリンタのプロパティで確認したプリンタ一覧と見比べると、正しくプリンタの情報が取得できている事が分かります。



関連記事

コメントを残す

メールアドレスが公開されることはありません。