-
Total de ítens
27.633 -
Registro em
-
Última visita
-
Days Won
767
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Daniel Simoes postou
-
Você usa o ACBrECF ? Como está configurada a propriedade "ACBrECF1.Porta" ?
-
Se a DLL for 32 Bits copie ela para Windows\SysWow64
-
Hummm... bem lembrado... Se SIM, já foi para o SVN...
-
As DLLs do OpenSSL estão muito antigas... Você pode baixar novas aqui: http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.0.2.21/ Use x86, se você compila a sua aplicação em 32 bits
-
Problemas no envio ACBrMail Delphi 10.3.3 Linux 64-bit
Daniel Simoes replied to automacaosamos's tópico in ACBrTCP
Conseguiu rodar o Exemplo em FireMonkey ... Mandei um teste no seu e-mail -
Verifique os Packages que sua IDE está carregando.. repare bem no "Path" deles.. provavelmente você tem um BPL antigo do Fortes Report, sendo carregado na sua IDE
-
Assinatura de arquivos. não carrega a chave de criptografia
Daniel Simoes replied to Jefferson Damian's tópico in ACBrSerial
O ACBrEAD, usa o OpenSSL... então formatar a máquina não deve ajudar muito Verifique se você está com as DLLs do OpenSSL atualizadas, http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/ -
https://github.com/fortesinformatica/fortesreport-ce
-
Veja o Demo na pasta Exemplos\ACBrDFe
-
O ACBr não usa essa DLL...
-
Assinatura de arquivos. não carrega a chave de criptografia
Daniel Simoes replied to Jefferson Damian's tópico in ACBrSerial
A chave do componente ACBrEAD, é informada em um Evento... abaixo o exemplo do demo... procedure TForm1.ACBrEAD1GetChavePrivada(var Chave : AnsiString) ; begin mResp.Lines.Add(' Lendo Chave Privada'); Chave := mPrivKey.Lines.Text; end; Então provavelmente é algo no lado da sua aplicação, no escopo desse evento... -
tm-t900f TM-T900F Parou de comunicar na USB
Daniel Simoes replied to Jefferson Damian's tópico in ACBrSerial
Troque "USB:" por "DLL:" Fique atento às notícias do ACBr, para saber a respeito de modificações com essa -
Como criar relatórios com o ACBrPosPrinter ?
Daniel Simoes replied to Daniel Simoes's tópico in Base de Conhecimento
E como faço para Gravar um Logotipo ou imprimir imagens ?- 1 reply
-
- 4
-
-
I/O ERROR 103 após atualização ACBr em 2020
Daniel Simoes replied to aocampioni's tópico in ACBrSerial
Apliquei um possível ajuste, nos fontes do SVN... Commit [r19109] Aparentemente, a única coisa que estava faltando, era chamar IOResult, após fechar o arquivo, pois esse método Zera o último Erro de I/O -
I/O ERROR 103 após atualização ACBr em 2020
Daniel Simoes replied to aocampioni's tópico in ACBrSerial
@Waldir Paim, você tem alguma sugestão de onde as checagens de Erro de I/O devem ser desabilitadas ? Usar ela em excesso, pode ocultar erros que deveriam ser informados, como Path inválido, falta de permissão, etc https://www.freepascal.org/docs-html/rtl/system/ioresult.html -
Correto, isso é uma boa prática Isso não é legal.. Pode confundir o ACBrSAT com os metodos da DLL que já foram carregados na memória... O Inicializar do ACBrSAT apenas carrega a DLL na memória, ele não tem relação direta com o SAT Verifique esse relatório em Anexo, devemos publica-lo em breve Relatorio.pdf
-
Que tipos de Porta o ACBrPosPrinter suporta ?
Daniel Simoes replied to Daniel Simoes's tópico in Base de Conhecimento
Nosso commiter, @Régys Silveira, gravou um excelente vídeo, sobre esse assunto... Leia também:- 1 reply
-
- 4
-
-
- escpos
- acbrposprinter
- (e 5 mais)
-
Como criar relatórios com o ACBrPosPrinter ?
um tópico no fórum postou Daniel Simoes Base de Conhecimento
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 724 kB · 0 downloads 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 ACBrLibPosPrinter , uma biblioteca compartilhada (DLL/SO), compilada em 32 e 64 bits ACBrMonitorPLUS, pelo Objeto ESCPOS... veja nesse link, a tela de configuração. Com o ACBrPosPrinter, você pode criar relatórios complexos, usando até mesmo o bloco de notas, bastando para isso, conhecer a sintaxe das Tags que o mesmo suporta... (leia mais abaixo) Características do ACBrPosPrinter Usa linguagem nativa da Impressora “Esc/Pos” Suporta vários protocolos “Esc/Pos”, cobrindo praticamente todas as Impressoras do Mercado Brasileiro Permite o uso de Tags, para geração de relatórios complexos. (Fonte, Alinhamento, Cod.Barras, QRCode, Imagens) Permite acesso aos dispositivos ligados a Impressora (Gaveta, Guilhotina, Sensores de Papel/Tampa) Permite vários tipos de Porta (COM, RAW, TCP, File) (veja essa Post) Como usar o ACBrPosPrinter ? De forma muito resumida, seguem os passos necessários Verifique o protocolo suportado pela Impressora e configure em ACBrPosPrinter.Modelo Verifique a Porta disponível na Impressora e configure em ACBrPosPrinter.Porta Ative a comunicação com a Impressora, chamando: ACBrPosPrinter.Ativar Gere seu relatório usando as Tags suportadas e imprima usando: ACBrPosPrinter.Imprimir(Relatorio: String) Quais impressoras o ACBrPosPrinter suporta ? Praticamente todas, uma vez que a maioria dos equipamentos existentes no mercado, tenta mimetizar o protocolo Epson Esc/Pos... Portanto se a sua impressora não está listada na lista de Protocolos suportados, faça um teste definido: ACBrPosPrinter1.Modelo := ppEscPosEpson; Conheça também os relatórios de equipamentos homologados https://www.projetoacbr.com.br/forum/forum/63-equipamentos-testados/ Conhecendo melhor as Tags O ACBrPosPrinter, usa uma linguagem de Tags, que se assemelha as Tags de HTML. Exemplo, para imprimir um texto em expandido, podemos usar a Tag <e> <e>EXPANDIDO Existem 2 conjuntos de Tag, no ACBrPosPrinter. Tag de Linha São Tags que tem efeito imediato, e não precisam ser fechadas por uma Tag de Fechament. Após a interpretação e envio da Tag, a Impressão será afetada imediatamente, até a Tag ser desligada ou substituída por outra. Alguns comandos entretanto, são desligados automaticamente pela impressora, após uma quebra de Linha. As Tags de Alinhamento e as Tags de formatação de caracteres, são exemplos desse tipo de Tag Tags de Bloco São Tags que necessariamente precisam ser fechadas, ou seja, se não houver um inicio e fim da Tag, o ACBrPosPrinter não será capaz de interpreta-la As tags de Cod.Barras e QRCode, são exemplos desse tipo de Tag A maneira mais simples de conhecer TODAS as tags, é pedir para o próprio ACBrPosPrinter imprimi-las, usando o comando: ACBrPosPrinter1.ImprimirTags; Isso produzirá a saída do seguinte relatório: <e> - Liga Expandido </e> - Desliga Expandido <a> - Liga Altura Dupla </a> - Desliga Altura Dupla <n> - Liga Negrito </n> - Desliga Negrito <s> - Liga Sublinhado </s> - Desliga Sublinhado <c> - Liga Condensado </c> - Desliga Condensado <i> - Liga Italico </i> - Desliga Italico </fn> - Fonte Normal </fa> - Liga Fonte Tipo A (normal) </fb> - Liga Fonte Tipo B (condensada) <in> - Liga Fonte Invertida (Fundo Preto) </in> - Desliga Fonte Invertida </ae> - Liga Alinhamento a Esquerda </ce> - Liga Alinhamento ao Centro </ad> - Liga Alinhamento a Direita </linha_simples> - Imprime Linha Simples </linha_dupla> - Imprime Linha Dupla </pular_linhas> - Pula N Linhas de acordo com propriedade do componente </logo> - Imprime Logotipo já gravado na Impressora (use utilitário do fabricante) </corte> - Efetua Corte, conforme configuração de "TipoCorte" </corte_parcial> - Efetua Corte Parcial no Papel (não disponivel em alguns modelos) </corte_total> - Efetua Corte Total no papel </abre_gaveta> - Aciona a abertura da Gaveta de Dinheiro </beep> - Emite um Beep na Impressora (não disponivel em alguns modelos) </zera> - Reseta as configurações de Fonte Alinhamento.<LF>Ajusta Página de Código e Espaço entre Linhas </lf> - Pula para a própxima linha </cr> - Retorna para o Inicio da Linha </reset> - Reseta as configurações de Fonte Alinhamento <ad> - Bloco - Texto Alinhado a Direita <ae> - Bloco - Texto Alinhado a Esquerda <ce> - Bloco - Texto Centralizado <ean8> - Bloco - Cod.Barras EAN8 - 7 numeros e 1 dig.verificador <ean13> - Bloco - Cod.Barras EAN13 - 12 numeros e 1 dig.verificador <std> - Bloco - Cod.Barras "Standard 2 of 5" - apenas números, tamanho livre <inter> - Bloco - Cod.Barras "Interleaved 2 of 5" - apenas números, tamanho PAR <code11> - Bloco - Cod.Barras Code11 - apenas números, tamanho livre <code39> - Bloco - Cod.Barras Code39 - Aceita: 0..9,A..Z, ,$,%,*,+,-,.,/, tamanho livre <code93> - Bloco - Cod.Barras Code93 - Aceita: 0..9,A..Z,-,., ,$,/,+,%, tamanho livre <code128> - Bloco - Cod.Barras Code128 - Todos os caracteres ASCII, tamanho livre <upca> - Bloco - Cod.Barras UPCA - 11 numeros e 1 dig.verificador <upce> - Bloco - Cod.Barras UPCE - 11 numeros e 1 dig.verificador <codabar> - Bloco - Cod.Barras CodaBar - Aceita: 0..9,A..D,a..d,$,+,-,.,/,:, tamanho livre <msi> - Bloco - Cod.Barra MSI - Apenas números, 1 dígito verificador <code128a> - Bloco - Cod.Barras Code128 - Subtipo A <code128b> - Bloco - Cod.Barras Code128 - Subtipo B (padrão) = <code128> <code128c> - Bloco - Cod.Barras Code128 - Subtipo C (informar valores em BCD) <qrcode> - Bloco - Cod.Barras QrCode <abre_gaveta> - Bloco - Abertura de Gaveta Específica (1 ou 2) <barra_mostrar> - Bloco - Configura se deve exibir conteudo abaixo do Cod.Barras: 0-NAO; 1-SIM <barra_largura> - Bloco - Configura a Largura das Barras do Cod.Barras: 0 a 5. (0=default) <barra_altura> - Bloco - Configura a Altura do Cod.Barras: 0 a 255. (0=default) <qrcode> - Bloco - Imprime QRCode de acordo com "ConfigQRCode" <qrcode_tipo> - Bloco - Configura o Tipo de QRCode: 1,2 <qrcode_largura> - Bloco - Configura a Largura do QRCode: 1 a 16 <qrcode_error> - Bloco - Configura o Error Level do QRCode: 0 a 3 <bmp> - Bloco - Imprime Imagem BMP monocromática. Conteúdo pode ser: Path da Imagem, Stream em Base64 ou AscII Art (0 e 1) <mp> - Liga Modo de Impressão em Página (em memória) </mp> - Desliga Modo de Impressão Página (em memória) </mp_imprimir> - Comanda a Impressão da Página na memória <mp_direcao> - Bloco - Direção Texto no Modo Página: 0-Esquerda/Direta, 1-Topo/Baixo, 2-Direita/Esquerda, 3-Baixo/Topo <mp_esquerda> - Bloco - Posição Inicial Horizontal Modo Página (Esquerda) <mp_topo> - Bloco - Posição Inicial Vertical Modo Página (Topo) <mp_largura> - Bloco - Largura da Região no Modo Página <mp_altura> - Bloco - Altura da Região no Modo Página <mp_espaco> - Bloco - Espaço entre Linhas na Região no Modo Página </mp_configurar> - Envia a configuração de Coordenadas da Região e direção do Modo Página <logo_imprimir> - Bloco - Configura a Impressão ou não do Logo Tipo: 0-NÃO, 1-SIM (default = 1) <logo_kc1> - Bloco - Configura a posição KC1 do Logo a ser impresso. Ex: 0=48 <logo_kc2> - Bloco - Configura a posição KC2 do Logo a ser impresso. Ex: 1=49 <logo_fatorx> - Bloco - Configura o aumento Horizonal do Logo, de 1 a 4 <logo_fatory> - Bloco - Configura o aumento Vertical do Logo, de 1 a 4 <ignorar_tags> - Bloco - Ignora todas as Tags contidas no Bloco Printing like a Pro Para aprender de forma profissional, como usar o ACBrPosPrinter, e gerar relatórios complexos, como o Extrato do SAT ou o DANFCe da NFCe, é fundamental estudar os Fontes e exemplos disponíveis no Demo. Você pode encontrar os fontes do Demo na pasta \ACBr\Exemplos\ACBrSerial\ACBrPosPrinter Se quiser baixar e testar uma versão já compilada, use o Donwload abaixo: Configurações Úteis do ACBrPosPrinter Propriedade Descrição Exemplo Colunas Define o máximo de Caracteres, em uma linha, usando a Fonte Normal 48, 42, 40 EspacoEntreLinhas Espaço em DPI entre as Linhas. (permite economia de Papel) 0 (default), 10, 40, 50 LinhasEntreCupons Define o Pulo de Linhas para o comando </pular_linhas> 7, 5 ArqLog Arquivo de Log detalhando tradução de Tags e Dump para Porta C:\temp\PosPrinter.log PaginaDeCodigo Define a Página de Código usada pela Impressora, para a impressão correta de acentos pc850, pc852, pcUTF8 ControlePorta Se Ligado, Abre e Fecha a Porta a cada envio de Comandos para a Impressora True, False ConfigQRCode Configurações do QRCode: Tipo, Largura, ErroLevel, etc Exemplo de Tags de Formatação de Caracteres Tags enviadas Relatório Gerado </linha_dupla> FONTE NORMAL: 42 Colunas ....+....1....+....2....+....3....+....4.. <e>EXPANDIDO: 21 Colunas ....+....1....+....2. </e><c>CONDENSADO: 56 Colunas ....+....1....+....2....+....3....+....4....+....5....+. </c><n>FONTE NEGRITO</N> <in>FONTE INVERTIDA</in> <S>FONTE SUBLINHADA</s> <i>FONTE ITALICO</i> FONTE NORMAL </linha_simples> <n>LIGA NEGRITO <i>LIGA ITALICO <S>LIGA SUBLINHADA <c>LIGA CONDENSADA <e>LIGA EXPANDIDA <a>LIGA ALTURA DUPLA </fn>FONTE NORMAL </linha_simples> <e><n>NEGRITO E EXPANDIDA</n></e> <c><n>NEGRITO E CONDENSADA</n></c> <e><a>EXPANDIDA E ALT.DUPLA</a></e> </fn>FONTE NORMAL <in><e>INVERTIDA E EXPANDIDA</e></in> <in><c>INVERTIDA E CONDENSADA</c></in> <in><a>INVERTIDA E ALT.DUPLA</a></in> </fn>FONTE NORMAL </linha_simples> </FB>FONTE TIPO B <n>FONTE NEGRITO</N> <e>FONTE EXPANDIDA</e> <a>FONTE ALT.DUPLA</a> <in>FONTE INVERTIDA</in> <S>FONTE SUBLINHADA</s> <i>FONTE ITALICO</i> </FA>FONTE TIPO A </FN>FONTE NORMAL </corte_total> Reparem que no exemplo acima, o comando Itálico não funcionou. Isso é uma característica do equipamento que usamos nesse teste, (Epson Esc/Pos)... Ou seja, algumas Tags, podem não funcionar em alguns protocolos. O Demo ACBrPosPrinter é indicado para testar a compatibilidade da Impressora, com os protocolos suportados... Exemplo de Tags de Alinhamento Texto em conjunto com Formatação de Caractere Tags enviadas Relatório Gerado </zera> </linha_dupla> TEXTO NORMAL </ae>ALINHADO A ESQUERDA <bmp>C:\ACBrPosPrinter\acbrmono.bmp</bmp> 1 2 3 TESTANDO <n>FONTE NEGRITO</N> <e>FONTE EXPANDIDA</e> <a>FONTE ALT.DUPLA</a> <c>FONTE CONDENSADA</c> <in>FONTE INVERTIDA</in> <S>FONTE SUBLINHADA</s> <i>FONTE ITALICO</i> </fn></ce>ALINHADO NO CENTRO <bmp>C:\ACBrPosPrinter\acbrmono.bmp</bmp> 1 2 3 TESTANDO <n>FONTE NEGRITO</N> <e>FONTE EXPANDIDA</e> <a>FONTE ALT.DUPLA</a> <c>FONTE CONDENSADA</c> <in>FONTE INVERTIDA</in> <S>FONTE SUBLINHADA</s> <i>FONTE ITALICO</i> </fn></ad>ALINHADO A DIREITA <bmp>C:\ACBrPosPrinter\acbrmono.bmp</bmp> 1 2 3 TESTANDO <n>FONTE NEGRITO</N> <e>FONTE EXPANDIDA</e> <a>FONTE ALT.DUPLA</a> <c>FONTE CONDENSADA</c> <in>FONTE INVERTIDA</in> <S>FONTE SUBLINHADA</s> <i>FONTE ITALICO</i> </ae></fn>TEXTO NORMAL </corte_total> Exemplo de Tags de QRCode e Cod.Barras Tags enviadas Relatório Gerado </zera> </linha_dupla><qrcode_tipo>2</qrcode_tipo><qrcode_largura>4</qrcode_largura><qrcode_error>0</qrcode_error><qrcode>http://projetoacbr.com.br</qrcode> </ce><qrcode>http://www.projetoacbr.com.br/</qrcode> <barra_mostrar>0</barra_mostrar><barra_largura>0</barra_largura><barra_altura>0</barra_altura> </Linha_Simples> EAN13: 123456789012 <ean13>123456789012</ean13> </Linha_Simples> CODE128C: 3515071111111111111159 <code128c>3515071111111111111159</code128c> </corte_total> No exemplo acima, demonstramos as tags que permitem configurar algumas características do QRCode e Cod.Barras, essas tags são opcionais, e você também pode configurar o ACBrPosPrinter, pelas propriedades do componente Acionando a Guilhotina e Gaveta de dinheiro: Moleza... basta enviar as Tags... </corte> - Efetua Corte, conforme configuração de "TipoCorte" </corte_parcial> - Efetua Corte Parcial no Papel (não disponivel em alguns modelos) </corte_total> - Efetua Corte Total no papel </abre_gaveta> - Aciona a abertura da Gaveta de Dinheiro Exemplo: ACBrPosPrinter1.Imprimir('</abre_gaveta>'); Lendo as informações da Impressora Alguns tipos de Porta, permite receber informações da Impressora. Os Tipos de Portas que o ACBrPosPrinter consegue ler informações da Impressora são: Serial, USB, TCP, BTH, Hook O exemplo abaixo, imprime em um memo, o Status da Impressora procedure TFrPosPrinterTeste.bLerStatusClick(Sender: TObject); var Status: TACBrPosPrinterStatus; i: TACBrPosTipoStatus; AStr: String; begin Status := ACBrPosPrinter1.LerStatusImpressora; if Status = [] then mImp.Lines.Add('Nennhum Erro encontrado') else begin AStr := ''; For i := Low(TACBrPosTipoStatus) to High(TACBrPosTipoStatus) do begin if i in Status then AStr := AStr + GetEnumName(TypeInfo(TACBrPosTipoStatus), integer(i) )+ ', '; end; mImp.Lines.Add( AStr ); end; end; O Exemplo abaixo, retorna as informações da Impressora procedure TFrPosPrinterTeste.bLerInfoClick(Sender: TObject); begin mImp.Lines.Add( ACBrPosPrinter1.LerInfoImpressora ); end; Exemplo de retorno Como a mágica do ACBrPosPrinter funciona ? As Tags são interpretadas e traduzidas pelo ACBrPosPrinter, para a Linguagem EscPos, que a linguagem nativa do Firmware da Impressora... ou seja, o ACBrPosPrinter enviará comandos no Protocolo EscPos, para que a impressora interprete-os e faça o Trabalho.... então quando enviamos por exemplo, o comando de QRCode, abaixo: <qrcode>http://www.projetoacbr.com.br</qrcode> O ACBrPosPrinter irá traduzir isso para uma sequencia de comandos, em EscPos, que quando interpretados pela Impressora, fará com que a mesma calcule e imprima um QRCode. Então o ACBrPosPrinter não se preocupa com a parte visual da Impressão, isso é tarefa do Firmware da Impressora, que suporta a poderosa linguagem EscPos Complexo não ? melhor deixar o ACBrPosPrinter cuidar dessa tarefa e gerar o EscPos Leia Também- 1 reply
-
- 10
-
-
-
Provavelmente isso foi uma modificação Local... ou através de um Class Helper, nos seus fontes... Você pode ver nos Logs do SVN dessa Unit, que aparentemente essa Propriedade nunca existiu Em todo caso, esse código parece muito, muito errado.. Verificar pela String da Mensagem é uma péssima prática... você deveria verificar pelo valor do "cStat"
-
Erro na instalação dos Componentes
Daniel Simoes replied to CristianoDB's tópico in Dúvidas Gerais sobre o ACBr
as DLLs do OpenSSL na versão 1.1.1 mudaram de nome... o instalador antigo, copia as DLLs erradas -
Envie a Exata mensagem do erro...
-
Você precisa nos informar a Exata mensagem de erro...
-
Que tipos de Porta o ACBrPosPrinter suporta ?
um tópico no fórum postou Daniel Simoes Base de Conhecimento
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 ACBrLibPosPrinter , uma biblioteca compartilhada (DLL/SO), compilada em 32 e 64 bits ACBrMonitorPLUS, pelo Objeto ESCPOS... veja nesse link, a tela de configuração. 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 LPT, NÃO permite a leitura de informações- 1 reply
-
- 7
-
-
- escpos
- acbrposprinter
- (e 5 mais)
-
Oi @Leandro Cavalieri, muito bacana o seu tópico... obrigado por sua ajuda e parabéns pelo empenho... Já estamos analisando, suas sugestões...