Pythonでプリンタ一覧やデフォルトプリンタを取得するには?
業務プログラムを作成時には利用できるプリンタ一覧を取得してデフォルトプリンタからA3プリンタや連帳プリンタを切替したい場合があります。
本記事では、Pythonでプリンタ一覧を取得する方法を紹介します。
※pywin32を利用していますのでWindowsのみ利用可能です。
プリンタ一覧を取得するサンプルコード
プリンタ一覧を取得する関数とテストコードを紹介します。
# pip install --upgrade pywin32
import win32print
def get_printer_list():
"""
Windows環境で利用可能なプリンタの一覧を取得する関数。
この関数はwin32printモジュールを使用して、システムにインストールされている
プリンタの一覧を取得します。
Returns:
list: 利用可能なプリンタの名前のリスト。
"""
# インストールされているプリンタの一覧を取得します。
printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 1)
# 取得したプリンタの情報からプリンタ名のみを抽出してリスト化
printer_names = [printer[2] for printer in printers]
# プリンタ名のリストを返す。
return printer_names
##############################################################
# 関数のテスト
if __name__ == "__main__":
# 利用可能なプリンタの一覧を取得
printer_list = get_printer_list()
# 取得したプリンタの名前を1行ずつ表示
print("プリンタ一覧")
for printer in printer_list:
print(printer)
サンプルを実行する前に
pywin32のインストールが必要ですのでインストールしていない場合には対応してください。
pip install --upgrade pywin32
実行結果
実行結果は以下の通りです。
筆者の環境ではMicrosoft XPS Document Writer、Microsoft Print to PDF、Fax、実機としてCanon TS6000 seriesを利用しているためそれが表示されます。
プリンタ一覧
Microsoft XPS Document Writer
Microsoft Print to PDF
Fax
Canon TS6000 series
デフォルトプリンタを取得するサンプルコード
デフォルトプリンタを取得する関数とテストコードを紹介します。
# pip install --upgrade pywin32
import win32print
def get_default_printer():
"""
Windows環境でデフォルトのプリンタの名前を取得する。
Returns:
str: デフォルトプリンタの名前。プリンタが設定されていない場合はNoneを返す。
"""
# デフォルトプリンタを取得します。
printer_name = win32print.GetDefaultPrinter()
if printer_name:
return printer_name
else:
return None
##############################################################
# 関数のテスト
if __name__ == "__main__":
# デフォルトプリンタを取得
print("デフォルトプリンタ")
print(get_default_printer())
実行結果
実行結果は以下の通りです。
筆者の環境ではCanon TS6000 seriesがデフォルトプリンタなのでそれが表示されます。
デフォルトプリンタ
Canon TS6000 series
最後に
以上がPythonでプリンタ一覧やデフォルトプリンタを取得する関数です。
プリンタの切り替え等が必要な場合には利用してみてはいかがでしょうか。
コメント