最近博主在研究用python控制打印機
這里整理下win32print的API介紹,官網地址http://timgolden.me.uk/pywin32-docs/win32print.html
OpenPrinter 打開指定的打印機,並獲取打印機的句柄
GetPrinter 取得與指定打印機有關的信息
SetPrinter 對一台打印機的狀態進行控制
ClosePrinter 關閉一個打開的打印機對象
AddPrinterConnection 連接指定的打印機
DeletePrinterConnection 刪除與指定打印機的連接
EnumPrinters 枚舉系統中安裝的打印機
GetDefaultPrinter 取得默認打印機名稱 <type 'str'>
GetDefaultPrinterW 取得默認打印機名稱 <type 'unicode'>
SetDefaultPrinter 對一台打印機名稱 <type 'str'> 設置成默認打印機
SetDefaultPrinterW 對一台打印機名稱 <type 'unicode'> 設置成默認打印機
StartDocPrinter 在后台打印的級別啟動一個新文檔
EndDocPrinter 在后台打印程序的級別指定一個文檔的結束
AbortPrinter 刪除與一台打印機關聯在一起的緩沖文件
StartPagePrinter 在打印作業中指定一個新頁的開始
EndPagePrinter 指定一個頁在打印作業中的結尾
StartDoc 開始一個打印作業
EndDoc 結束一個成功的打印作業
AbortDoc 取消一份文檔的打印
StartPage 打印一個新頁前要先調用這個函數
EndPage 用這個函數完成一個頁面的打印,並准備設備場景,以便打印下一個頁
WritePrinter 將發送目錄中的數據寫入打印機
EnumJobs 枚舉打印隊列中的作業
GetJob 獲取與指定作業有關的信息
SetJob 對一個打印作業的狀態進行控制
DocumentProperties 打印機配置控制函數
EnumPrintProcessors 枚舉系統中可用的打印處理器
EnumPrintProcessorDatatypes 枚舉由一個打印處理器支持的數據類型
EnumPrinterDrivers 枚舉指定系統中已安裝的打印機驅動程序
EnumForms 枚舉一台打印機可用的表單
AddForm 為打印機的表單列表添加一個新表單
DeleteForm 從打印機可用表單列表中刪除一個表單
GetForm 取得與指定表單有關的信息
SetForm 為指定的表單設置信息
AddJob 用於獲取一個有效的路徑名,以便用它為作業創建一個后台打印文件。它也會為作業分配一個作業編號
ScheduleJob 提交一個要打印的作業
DeviceCapabilities 利用這個函數可獲得與一個設備的能力有關的信息
GetDeviceCaps 獲取指定設備的參數設置
EnumMonitors 枚舉可用的打印監視器
EnumPorts 枚舉一個系統可用的端口
GetPrintProcessorDirectory 判斷指定系統中包含了打印機處理器驅動程序及文件的目錄
GetPrinterDriverDirectory 判斷指定系統中包含了打印機驅動程序的目錄是什么
AddPrinter 在系統中添加一台新打印機
DeletePrinter 將指定的打印機標志為從系統中刪除
DeletePrinterDriver 從系統刪除一個打印機驅動程序
DeletePrinterDriverEx 從系統刪除一個打印機驅動程序和相關的文件
FlushPrinter 更新打印機,清楚錯誤狀態的打印機
博主這邊再通過help記錄下一些有用的參數
DEF_PRIORITY = 1
DI_APPBANDING = 1
DI_ROPS_READ_DESTINATION = 2
DPD_DELETE_ALL_FILES = 4
DPD_DELETE_SPECIFIC_VERSION = 2
DPD_DELETE_UNUSED_FILES = 1
DSPRINT_PENDING = -2147483648
DSPRINT_PUBLISH = 1
DSPRINT_REPUBLISH = 8
DSPRINT_UNPUBLISH = 4
DSPRINT_UPDATE = 2
FORM_BUILTIN = 1
FORM_PRINTER = 2
FORM_USER = 0
JOB_ACCESS_ADMINISTER = 16
JOB_ACCESS_READ = 32
JOB_ALL_ACCESS = 983088
JOB_CONTROL_CANCEL = 3
JOB_CONTROL_DELETE = 5
JOB_CONTROL_LAST_PAGE_EJECTED = 7
JOB_CONTROL_PAUSE = 1
JOB_CONTROL_RESTART = 4
JOB_CONTROL_RESUME = 2
JOB_CONTROL_SENT_TO_PRINTER = 6
JOB_EXECUTE = 131088
JOB_INFO_1 = 1
JOB_POSITION_UNSPECIFIED = 0
JOB_READ = 131104
JOB_STATUS_BLOCKED_DEVQ = 512
JOB_STATUS_COMPLETE = 4096
JOB_STATUS_DELETED = 256
JOB_STATUS_DELETING = 4
JOB_STATUS_ERROR = 2
JOB_STATUS_OFFLINE = 32
JOB_STATUS_PAPEROUT = 64
JOB_STATUS_PAUSED = 1
JOB_STATUS_PRINTED = 128
JOB_STATUS_PRINTING = 16
JOB_STATUS_RESTART = 2048
JOB_STATUS_SPOOLING = 8
JOB_STATUS_USER_INTERVENTION = 1024
JOB_WRITE = 131088
MAX_PRIORITY = 99
MIN_PRIORITY = 1
PORT_STATUS_DOOR_OPEN = 7
PORT_STATUS_NO_TONER = 6
PORT_STATUS_OFFLINE = 1
PORT_STATUS_OUTPUT_BIN_FULL = 4
PORT_STATUS_OUT_OF_MEMORY = 9
PORT_STATUS_PAPER_JAM = 2
PORT_STATUS_PAPER_OUT = 3
PORT_STATUS_PAPER_PROBLEM = 5
PORT_STATUS_POWER_SAVE = 12
PORT_STATUS_TONER_LOW = 10
PORT_STATUS_TYPE_ERROR = 1
PORT_STATUS_TYPE_INFO = 3
PORT_STATUS_TYPE_WARNING = 2
PORT_STATUS_USER_INTERVENTION = 8
PORT_STATUS_WARMING_UP = 11
PORT_TYPE_NET_ATTACHED = 8
PORT_TYPE_READ = 2
PORT_TYPE_REDIRECTED = 4
PORT_TYPE_WRITE = 1
PRINTER_ACCESS_ADMINISTER = 4
PRINTER_ACCESS_USE = 8
PRINTER_ALL_ACCESS = 983052
PRINTER_ATTRIBUTE_DEFAULT = 4
PRINTER_ATTRIBUTE_DIRECT = 2
PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 512
PRINTER_ATTRIBUTE_ENABLE_BIDI = 2048
PRINTER_ATTRIBUTE_ENABLE_DEVQ = 128
PRINTER_ATTRIBUTE_FAX = 16384
PRINTER_ATTRIBUTE_HIDDEN = 32
PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 256
PRINTER_ATTRIBUTE_LOCAL = 64
PRINTER_ATTRIBUTE_NETWORK = 16
PRINTER_ATTRIBUTE_PUBLISHED = 8192
PRINTER_ATTRIBUTE_QUEUED = 1
PRINTER_ATTRIBUTE_RAW_ONLY = 4096
PRINTER_ATTRIBUTE_SHARED = 8
PRINTER_ATTRIBUTE_TS = 32768
PRINTER_ATTRIBUTE_WORK_OFFLINE = 1024
PRINTER_CONTROL_PAUSE = 1
PRINTER_CONTROL_PURGE = 3
PRINTER_CONTROL_RESUME = 2
PRINTER_CONTROL_SET_STATUS = 4
PRINTER_ENUM_CONNECTIONS = 4
PRINTER_ENUM_CONTAINER = 32768
PRINTER_ENUM_DEFAULT = 1
PRINTER_ENUM_EXPAND = 16384
PRINTER_ENUM_ICON1 = 65536
PRINTER_ENUM_ICON2 = 131072
PRINTER_ENUM_ICON3 = 262144
PRINTER_ENUM_ICON4 = 524288
PRINTER_ENUM_ICON5 = 1048576
PRINTER_ENUM_ICON6 = 2097152
PRINTER_ENUM_ICON7 = 4194304
PRINTER_ENUM_ICON8 = 8388608
PRINTER_ENUM_LOCAL = 2
PRINTER_ENUM_NAME = 8
PRINTER_ENUM_NETWORK = 64
PRINTER_ENUM_REMOTE = 16
PRINTER_ENUM_SHARED = 32
PRINTER_EXECUTE = 131080
PRINTER_INFO_1 = 1
PRINTER_READ = 131080
PRINTER_STATUS_BUSY = 512
PRINTER_STATUS_DOOR_OPEN = 4194304
PRINTER_STATUS_ERROR = 2
PRINTER_STATUS_INITIALIZING = 32768
PRINTER_STATUS_IO_ACTIVE = 256
PRINTER_STATUS_MANUAL_FEED = 32
PRINTER_STATUS_NOT_AVAILABLE = 4096
PRINTER_STATUS_NO_TONER = 262144
PRINTER_STATUS_OFFLINE = 128
PRINTER_STATUS_OUTPUT_BIN_FULL = 2048
PRINTER_STATUS_OUT_OF_MEMORY = 2097152
PRINTER_STATUS_PAGE_PUNT = 524288
PRINTER_STATUS_PAPER_JAM = 8
PRINTER_STATUS_PAPER_OUT = 16
PRINTER_STATUS_PAPER_PROBLEM = 64
PRINTER_STATUS_PAUSED = 1
PRINTER_STATUS_PENDING_DELETION = 4
PRINTER_STATUS_POWER_SAVE = 16777216
PRINTER_STATUS_PRINTING = 1024
PRINTER_STATUS_PROCESSING = 16384
PRINTER_STATUS_SERVER_UNKNOWN = 8388608
PRINTER_STATUS_TONER_LOW = 131072
PRINTER_STATUS_USER_INTERVENTION = 1048576
PRINTER_STATUS_WAITING = 8192
PRINTER_STATUS_WARMING_UP = 65536
PRINTER_WRITE = 131080
SERVER_ACCESS_ADMINISTER = 1
SERVER_ACCESS_ENUMERATE = 2
SERVER_ALL_ACCESS = 983043
SERVER_EXECUTE = 131074
SERVER_READ = 131074
SERVER_WRITE = 131075