Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 2346 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...

 

  • 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.

The popup will be closed in 10 segundos...