1
resposta

Como enviar comandos para uma impressora usando C#

Bom dia a todos, estou com uma questão que preciso enviar alguns dados a serem impressos em uma impressora térmica, fucei na internet e encontrei um codigo utilizando c#, porém ainda não tenho conhecimento suficiente para interpretar da maneira correta o codigo e fazer imprimir, o que acontece e que trava meu Form quando executo a função. o Codigo que encontrei é :

sing System.Data.Common; using LATROMI.Extensions;

var ip = (string)Variables["ip"].Value; var porta = (int)Variables["porta"].Value; var temperatura = (string)Variables["temperatura"].Value; var comando = (string)Fields["txtComando"].Value;

if (string.IsNullOrEmpty(ip)) throw new InvalidOperationException("Impressora não informada.");

if (string.IsNullOrEmpty(temperatura)) throw new InvalidOperationException("Temperatura não informada.");

if (string.IsNullOrEmpty(comando)) throw new InvalidOperationException("Informe um comando para enviar para a impressora.");

using (var client = new System.Net.Sockets.TcpClient()) { var serverEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ip), porta); client.Connect(serverEndPoint);

using (var clientStream = client.GetStream()) { var encoder = new System.Text.ASCIIEncoding(); byte[] buffer = encoder.GetBytes(comando); clientStream.Write(buffer, 0, buffer.Length); clientStream.Flush(); } }

Coloquei esse codigo na opção de click do botao que fiz em meu formulario, transformei minha placa de rede na mesma faixa de IP da impressora e executei o programa, mas nao funciona

1 resposta

Eduardo,

Então, né?

Nunca tinha ouvido falar de impressora térmica da marca "LATROMI". A muito tempo atrás trabalhei com uma Zebra, mas, se não me engano, usei a linguagem Visual Basic 6.0 para me comunicar com ela.

Eu acho muito difícil algum instrutor responder você aqui, pois se trata de uma pergunta extremamente específica. Você quer saber sobre as referências (USING) de drivers da LATROMI.

Eu recomendo você colocar sua pergunta no fórum específico dela (Latromi Community) ou em fóruns mais genéricos como de Hardware ou Software (que discute de tudo um pouco), você colocar os links abaixo:

==========================================================

LATROMI COMMUNITY

https://community.latromi.com.br/

https://community.latromi.com.br/tag/csharp

==========================================================

ELETRONICA BR

Impressoras e Copiadoras

https://eletronicabr.com/forums/

==========================================================

CLUBE DO HARDWARE

Periféricos / impressoras

C/C#/C++

https://www.clubedohardware.com.br/forums/

==========================================================

VBMANIA - VB e C#

https://www.vbmania.com.br/index.php

==========================================================

MSDN - Microsoft Developer Network

https://social.msdn.microsoft.com/forums/pt-BR/home

==========================================================

STACKOVERFLOW (esse é nojento... se colocar a pergunta fora de padrão toma "toco"... KKKKK!!!)

https://pt.stackoverflow.com/

==========================================================

De qualquer forma achei o tutorial bacana para que você começou a brincar:

==========================================================

Enviar comandos para impressoras de etiquetas usando C#

Tutoriais - form - csharp

daniel.giacomelli - Líder - out '21

Neste tópico vou mostrar como enviar comandos para uma impressora de etiquetas usando o Código C# do Formulário Dinâmico.

...

Código C#

O código C# abaixo deve ser executado através da ação “Executar Código C#” no procedimento “btnExecutar_Click”:

using System.Data.Common;
using LATROMI.Extensions;

var ip = (string)Variables["ip"].Value;
var porta = (int)Variables["porta"].Value;
var temperatura = (string)Variables["temperatura"].Value;
var comando = (string)Fields["txtComando"].Value;

if (string.IsNullOrEmpty(ip))
    throw new InvalidOperationException("Impressora não informada.");

if (string.IsNullOrEmpty(temperatura))
    throw new InvalidOperationException("Temperatura não informada.");

if (string.IsNullOrEmpty(comando))
    throw new InvalidOperationException("Informe um comando para enviar para a impressora.");

using (var client = new System.Net.Sockets.TcpClient())
{
   var serverEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ip), porta);
   client.Connect(serverEndPoint);

   using (var clientStream = client.GetStream())
   {
       var encoder = new System.Text.ASCIIEncoding();
       byte[] buffer = encoder.GetBytes(comando);
       clientStream.Write(buffer, 0, buffer.Length);
       clientStream.Flush();
   }
}

https://community.latromi.com.br/t/enviar-comandos-para-impressoras-de-etiquetas-usando-c/699

==========================================================

Eu não tenho acesso a impressora para colocar seu código... e duvido que alguém aqui tenha essa impressora disponível para testar.

Achei interessante:

==========================================================

Instalando o LATROMI Client

Requisitos mínimos

  • .NET Framework 4.5
  • Banco de dados do sistema LATROMI

https://docs.latromi.com.br/index.php?title=Instalando_o_LATROMI_Client

==========================================================

LATROMI Client

  • HTML
  • CSS
  • JavaScript
  • C#

https://docs.latromi.com.br/index.php?title=LATROMI_Client

==========================================================

[]'s,

Fabio I.