scripts/print_sth.py
2025-01-15 17:20:11 +08:00

41 lines
1.4 KiB
Python

import subprocess
import os
def list_printers():
"""
通过 lpstat -p 命令列出所有可用打印机
"""
try:
output = subprocess.check_output(["lpstat", "-p"], text=True)
print("可用打印机列表:\n", output)
except FileNotFoundError:
print("系统未安装或未找到 'lpstat' 命令,请检查 CUPS 是否安装。")
except Exception as e:
print(f"查询打印机时出错:{e}")
def print_file(printer_name, file_path):
"""
使用指定的打印机打印文件
"""
if not os.path.exists(file_path):
print("错误:文件 %s 不存在。" % file_path)
return
try:
subprocess.run(["lp", "-d", printer_name, file_path], check=True)
print(f"文件已发送到打印机:{printer_name}")
except FileNotFoundError:
print("系统未安装或未找到 'lp' 命令,请检查 CUPS 是否安装。")
except subprocess.CalledProcessError as e:
print(f"打印失败:{e}")
if __name__ == "__main__":
list_printers()
chosen_printer = input("请输入要使用的打印机名称:").strip()
file_to_print = input("请输入要打印的文件路径:").strip()
file_to_print = file_to_print.replace("\ ", " ")
print(f"打印机:{chosen_printer},文件:{file_to_print}")
file_to_print = os.path.normpath(file_to_print)
print_file(chosen_printer, file_to_print)