Bom dia Senhoras e Senhores.
Estou tentando criar um codigo para instalar automaticamente uma impressora no computador, informando o IP, porém esta apresentando um erro que ao rodar o codigo informar que "O nome da impressora é invalido" porém não consegui corrigir isso.
alguém poderia me ajudar?
Erro:
pywintypes.error: (1801, 'OpenPrinter', 'O nome da impressora é inválido.')
Codigo:
import win32print
import win32con
import win32ui
import ipaddress
def install_printer(ip_address):
# Nome da impressora
printer_name = f"Impressora{ip_address.replace('.', '_')}"
# Abre o manipulador da impressora
printer_handle = win32print.OpenPrinter(printer_name, {"DesiredAccess": win32print.PRINTER_ALL_ACCESS})
try:
# Define as informações da impressora
printer_info = {
'pPrinterName': printer_name,
'pPortName': f"IP_{ip_address}",
'pDriverName': "Generic / Text Only",
'pPrintProcessor': "WinPrint",
'pDatatype': "RAW"
}
PRINTER_INFO_2 = win32print.PRINTER_INFO_2
pinfo = PRINTER_INFO_2()
# Define as informações da impressora
for key, value in printer_info.items():
setattr(pinfo, key, value)
# Instala a impressora
win32print.SetPrinter(printer_handle, 2, pinfo, 0)
finally:
win32print.ClosePrinter(printer_handle)
if __name__ == "__main__":
ip = input("Digite o endereço IP da impressora: ")
try:
ipaddress.ip_address(ip)
install_printer(ip)
print(f"Impressora instalada com sucesso!")
except ValueError:
print("Endereço IP inválido.")