Olá pessoal,
Acabo de enviar para o SVN, modificações em ACBrDevice, para permitir que os componentes que fazem uso dele, possam Imprimir em modo "Raw", usando as Impressoras instaladas no Sistema Operacional.
Isso na prática, permite definir ACBrPosPrinter.Porta como o exemplo abaixo...
Exemplo:
Supondo que no Sistema Operacional, exista uma impressora instalada com o nome "SWEDA SI-300S"... então poderíamos imprimir na mesma usando.
ACBrPosPrinter1.Porta := 'SWEDA SI-300S';
ou
ACBrPosPrinter1.Porta := 'RAW:SWEDA SI-300S'; // O Prefixo "RAW:", ajuda o ACBrDevice a detectar o tipo de porta
Com isso o ACBrPosPrinter irá enviar sua saída contendo comandos "EscPos", diretamente para a porta da Impressora (modo Raw), usando o Driver da mesma.
A principal vantagem desse novo método, é permitir um melhor suporte a Impressoras USB e cujos drivers, não criam uma COM virtual..
Lembrando que a melhor maneira de se comunicar com uma impressora PosPrinter é usando portas Seriais... pois este é o único modo de lermos os Status da Impressora, suportado pelo "ACBrPosPrinter".
Também fique atento ao fato, de que isso NÃO significa, que você poderá usar o PosPrinter em qualquer Impressora que não suporte EscPos... como por exemplo, uma impressora Lazer ou uma impressora que crie PDFs...
O ACBrPosPrinter, apenas transforma as tags de impressão, em comandos EscPos. É a impressora EscPos, quem faz a "mágica" de transformar os comandos EscPos em QRCode, BarCode, etc.... Ou seja, se a impressora destino, não compreender "EscPos", ela apenas imprimirá lixo, quando receber os comandos...
Segue abaixo o "Change-Log.txt"
Atualizei o Demo do PosPrinter (Lazarus e Delphi), para melhor demonstrar e testar o suporte a portas "RAW"
O executável já compilado, pode ser baixado em: