Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1743 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores
Postado

O que é o ACBrPosPrinter ?

O ACBrPosPrinter permite o envio de comandos em EscPos, direto para a porta da Impressora. Ele é excelente para criação de relatórios complexos em impressoras de bobina, executando tarefas como Impressão de QRCode, Cod.Barras, alinhamento, Expandido, Negrito, Invertido, etc...

Você pode baixar uma apresentação mais completa do ACBrPosPrinter,  abaixo:

Apresentação - ACBr - Elgin - ACBrPosPrinter.pdf

  • Se você usa o ACBr no seu Delphi, poderá encontrar o componente ACBrPosPrinter, na Palheta ACBrSerial...
  • Para quem não usa Delphi, o ACBrPosPrinter pode ser acessado pela

 

Quais os tipos de portas ?

Você deve configurar a Porta da Impressora no componente, e isso é feito através da propriedade "Porta". Dependendo do valor definido nessa propriedade, o ACBrPosPrinter, irá definir a forma de comunicação com a Impressora. Veja abaixo os tipos permitidos e exemplos de uso.

 

  • Porta Serial, COMxx

Útil se a sua impressora tem uma Porta Serial, ou ainda se o Driver USB da Impressora, cria uma COM Virtual no seu Windows. Apenas informa o nome da porta,

Exemplos Windows: 

  • COM1, COM2, COM17

Exemplos Linux:

  • /dev/ttyS0
  • /dev/ttyUSB0

Para lista todas as portas Seriais, disponíveis na máquina, use o método abaixo:

  procedure AcharPortasSeriais(const AStringList: TStrings; UltimaPorta: Integer = 64 );

Exemplo:
  cbxPorta.Items.Clear;
  ACBrPosPrinter1.Device.AcharPortasSeriais( cbxPorta.Items );   

A porta Serial, PERMITE a leitura de informações , usando os métodos LerStatusImpressora, e LerInfoImpressora

 

 

  • Porta USB

SIM !!! O ACBrPosPrinter, tem suporte Nativo a USB (apenas no Windows), sem precisar da DLLs dos fabricantes, na maioria dos casos, basta definir "USB" na propriedade Porta.

saiba mais nesse tópico:

Para lista todas as portas USB, disponíveis na máquina, use o método abaixo:

  procedure AcharPortasUSB(const AStringList: TStrings);

Exemplo:
  ACBrPosPrinter1.Device.AcharPortasUSB( cbxPorta.Items );   

A porta USB, PERMITE a leitura de informações , usando os métodos LerStatusImpressora, e LerInfoImpressora

 

 

  • Porta TCP/IP

Se a sua impressora tem uma porta Ethernet, então ela é um Servidor de Impressão,  e o ACBrPosPrinter pode se conectar a ela, diretamente usando o protocolo TCP/IP. Ou seja, basta plugar a sua impressora em algum cabo RJ45 da sua Rede, configurar o IP nela, e do ACBrPosPrinter na propriedade Porta, usar a sintaxe: "TCP:IP_MAQUINA:Porta".

Geralmente esses equipamentos abrem a porta 9100, então ela pode ser omitida...

Exemplos:

  • TCP:192.168.0.20:9100    -> Conecta na Impressora que foi previamente configurada para o IP 192.168.0.20, usando a porta 9100
  • TCP:192.168.0.20   -> tem o mesmo efeito do comando anterior, pois usa a porta padrão (9100)

A porta TCP, PERMITE a leitura de informações , usando os métodos LerStatusImpressora, e LerInfoImpressora

 

 

  • Impressoras BlueTooth

Com a migração dos fontes do ACBr para Android, foi adicionado o suporte a portas BlueTooth, entretanto esse suporte está disponível apenas para Delphi XE8 ou superior, e em Windows ou Android.

Os equipamentos devem ser previamente pareados, para que eles sejam listados e acessíveis

Nota: Para acessar dispositivos BlueTooth no Android é necessário que a aplicação solicite permissões, BLUETOOTH, BLUETOOTH_ADMIN e BLUETOOTH_PRIVILEGED ao Sistema Operacional...

Você deverá usar a sintaxe: "BTH:Nome da Impressora"

Exemplos:

  • BTH:RM22   -> Conecta na Impressora chamada RM22, que foi previamente pareada
  • BTH -> Tenta conectar na primeira impressora BlueTooth pareada encontrada

Para lista todas as impressoras BlueTooth, disponíveis na máquina/dispositivo, use o método abaixo:

  procedure AcharPortasBlueTooth(const AStringList: TStrings);

Exemplo:
  {$IfDef HAS_BLUETOOTH}
   ACBrPosPrinter1.Device.AcharPortasBlueTooth( cbxPorta.Items );
  {$EndIf}   

A porta BTH, PERMITE a leitura de informações , usando os métodos LerStatusImpressora, e LerInfoImpressora

 

 

  • RAW (Spooler)

Se a sua impressora está instalada e é listada no Windows, ou no Linux/CUPS... então o ACBrPosPrinter, pode acessar ela, através do Spool. O método RAW, instrui o Spool a não interpretar os comandos enviados, ou seja, ele usará o Spool apenas para fazer um Túnel até a impressora. Você deverá usar a sintaxe: "RAW:Nome da Impressora"

Exemplo Windows

  • RAW:Bematech MP4200  -> Conecta na Impressora previamente instalada no Windows, e listada com o nome "Bematech MP4200"

Exemplo Linux

  • RAW:bema1 ->  Conecta na Impressora previamente instalada no CUPS, e listada com o nome "bema1"

Para listar todas as portas Instaladas no Spool, use o método abaixo:

    procedure AcharPortasRAW(const AStringList: TStrings);

Exemplo:
   ACBrPosPrinter1.Device.AcharPortasRAW( cbxPorta.Items );
 

A porta RAW, NÃO permite  a leitura de informações

 

 

  • Arquivo TXT

Pode ser útil para alguma situação, capturar a saída de impressão em um arquivo. Como por exemplo, Debug, estudo do EscPos, ou ainda encaminhar o arquivo para a Impressão por uma rede, através de um Script.

Para isso, apenas defina o nome do arquivo que você quer criar, em "Porta"

Exemplo Windows

  • c:\temp\printer.txt   ->  Irá desviar toda a impressão para o arquivo "c:\temp\printer.txt"

Exemplo Linux

  • /tmp/printer.txt  -

A porta Arquivo, obviamente NÃO permite  a leitura de informações

 

  • Porta em Rede (UNC)

Se a impressora está Instalado no Windows, e foi compartilhada na Rede, e portanto disponibiliza um Nome de Compartilhamento, então você pode usar a sintaxe "\\Nome_ou_IP_maquina\Compartilhamento". O ACBrPosPrinter usará a mesma classe de impressão em Arquivo (descrita acima), para suportar as portas UNC

Exemplo:

  • \\127.0.0.1\EPSON   -> Irá acessar a impressora cujo nome de compartilhamento é "EPSON", e está conectada a máquina local
  • \\192.168.0.10\EPSON   -> o mesmo que acima, porém acessa a impressora da máquina cujo IP é "192.168.0.10"

A conexão por Porta UNC, NÃO permite  a leitura de informações

 

 

  • Hook, DLLs

A Impressão por "hook" foi criada antes do ACBrPosPriniter, ter suporte nativo a USB, portanto hoje está obsoleta. O truque era usar a DLL dos Fabricantes da Impressora, para acessar o equipamento pela USB. Ou seja, o ACBrPosPrinter faz a carga da DLL do Fabricante, e utiliza a mesma, para enviar e ler comandos da USB.  A Sintaxe é: "DLL:MARCA"...  Você pode saber mais, no tópico abaixo:

 

Disponível apenas no Windows, e apenas implementado para Impressoras da Epson e Elgin... Exemplos:

  • DLL:EPSON
  • DLL:ELGIN

Nota: antigamente a sintaxe "USB:MARCA", poderia ser usada para portas Hook, mas atualmente o prefixo "USB", é reservado apenas para as portas de acesso nativo a USB (conforme descrito no inicio do tópico)

A porta Hook, DLL, PERMITE a leitura de informações , usando os métodos LerStatusImpressora, e LerInfoImpressora

 

 

  • Portas Paralelas (LPT)

Uso legado, pois atualmente poucos equipamentos possuem portas Paralelas ou LPT.  Internamente, o ACBrPosPrinter usará a mesma classe de impressão em Arquivo (descrita acima), para suportar as portas LPT

Exemplo Windows

  • LPT1, LPT2 

Exemplo Linux

  • /dev/lp0,   /dev/lp1

A porta LPTNÃO permite a leitura de informações

 

  • Curtir 7
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.