Ir ao conteúdo

Posts recomendados

Postado

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.")

  • Curtir 1
Postado

@Rodrigo Lazarotto como você disse "informando o ip", acredito que ela está na rede, correto?

Se sua rede for estática e você já setou ip e máscara na impressora, você já consegue pingar ela na rede, correto?

as formas que achei de fazer isso é usando rundll32 para printui.dll

aqui vai os links:
tutorial do suporte da microsoft

tutorial direto e pouco explicado

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!