É possível imprimir via rede utilizando a Classe MSCBprinter ou apenas via LPT ou COM*?

Ao lidar com a impressão térmica em ambientes TOTVS Linha Protheus, surge frequentemente a pergunta sobre a possibilidade de imprimir via rede utilizando a Classe MSCBprinter, em vez das tradicionais portas LPT ou COM*. Para contornar essa limitação, podemos empregar uma solução alternativa paliativa, que consiste na emulação da porta via NET USE do Windows.

Aqui estão as orientações passo a passo para configurar essa solução:

  1. Instalação da Impressora e Drivers:
    • Instale a impressora desejada e seus drivers no servidor de impressão.
  2. Compartilhamento da Impressora:
    • Compartilhe a impressora na rede para torná-la acessível a partir de outras máquinas.
  3. Instalação da Impressora nas Máquinas Clientes:
    • Em cada máquina que enviará a impressão, instale a impressora compartilhada na rede.
  4. Mapeamento da Impressora via CMD.exe:
    • Na máquina que enviará a impressão, abra o prompt de comando (CMD.exe) e mapeie a impressora na porta LPT* usando o seguinte comando:
      NET USE * \\IP\IMPRESSORA

      Onde '' é a porta que será mapeada (por exemplo, LPT1, LPT2, COM1, COM2). Posteriormente, teste a impressão das etiquetas, passando como porta o nome '' que foi mapeado (ex: LPT1).

Exemplo de Código ADVPL:

#Include "Protheus.ch"
#INCLUDE "TBICONN.CH" 

User Function Impressora()
    Local cPorta := "LPT1" // Mapeamento feito através de NET USE
    Local cModelo := "ZEBRA"

    MSCBPRINTER(cModelo, cPorta,,10,.F.,,,,,,.F.,)

    MSCBCHKSTATUS(.F.)

    MSCBBEGIN(1,6)
    MSCBSAY(10,10,"TESTE IMPRESSAO EM REDE", "N","A","040,030")
    MSCBEND()

    MSCBCLOSEPRINTER()

    Return

 

Ressaltamos que essa solução é considerada paliativa. Caso ela não funcione com determinado modelo de impressora, a equipe ADVPL realizará testes apenas na porta direta, conforme homologado. Essa abordagem proporciona uma alternativa viável para imprimir via rede em ambientes que demandam flexibilidade nas configurações de impressão.