Jump to content

Search the Community

Showing results for tags 'epson'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

There are no results to display.

Forums

  • Fórum Aberto - ACBr
    • ACBr News
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrMonitor PLUS
    • ACBrDFe
    • ACBrTEFD e Dúvidas sobre TEF
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
    • Dia do ACBr
  • Suporte Pago - SAC
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • ACBr's Pub
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Data Base
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categories

  • ACBrLib
  • Suporte Pago - SAC
    • ACBrMonitorPLUS - SAC
    • Utilitários - SAC
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
  • Free Download
    • ACBrMonitorPLUS
    • Demos / Testes / Utilitários
    • Apresentações - Palestras

Calendars

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Community Calendar
  • Feriados Nacionais

Blogs

  • Daniel Simoes' Blog
  • André Ferreira de Moraes
  • Moderadores ACBr
  • Teste de Blog
  • Notícias do ACBr

Categories

  • Suporte Pago - SAC
    • Curso Dominando o ACBrMonitor
    • Webinars
    • Video Aulas
    • Palestras - Dia do ACBr 2a Ediçao
  • Vídeos Abertos
    • Video Aulas
    • Comunicados
    • Dia do ACBr 2a Ediçao
    • Dia do ACBr 1a Ediçao
    • Homologação ACBr
  • Campanhas promocionais

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Skype


Localização


Interesses


CNPJ da Empresa


CPF

Found 59 results

  1. Já imaginou receber uma nova TM-T20X diretamente da EPSON para homologar com seu sistema? Clique no botão acima e solicite um modelo Demo gratuito, exclusivo para desenvolvedores/software houses! Aproveite! Oferta válida por tempo limitado. A Epson está lançando a impressora térmica TM-T20X, e nos enviou as 2 novas versões (Vesão USB/Serial e Versão Ethernet) deste equipamento para homologarmos com os componentes do Projeto ACBr. Assista ao vídeo abaixo para conhecer a nova impressora: Apresentação do equipamento. Download e instalação de drivers. Rápida configuração no SATTeste e impressão. Ambiente Computador Desktop Sistema Operacional Windows 10 64Bit Processador Intel Core 2 Duo E4500 2.20GHz Memória 2GB USB 2.0 Características Técnicas da Impressora Método de impressão Impressão térmica em linhas Velocidade de impressão Aprox. 200 mm/s (Textos e gráficos) Guilhotina Corte parcial ao centro Opções de Comunicação USB 2.0 Full-speed (12 Mbps) Ethernet: 10BASE-T/100BASE-TX Serial: RS-232 Pontos por polegadas 203 × 203 dpi Caixa registradora Suporte a 2 gaveteiros Fonte de alimentação 100-240V 50/60Hz, Corrente nominal: 1.0 A Dimensões W:149 × D:192 × H:140 mm Peso Approx. 1.5 kg Código de barras UPC-A UPC-E JAN 8 (EAN 8 ) JAN 13 (EAN 13) CODE 39 ITF CODABAR (NW-7) CODE 93 CODE 128 GS1-128 GS1 DataBar (Omnidirectional, Truncated, Stacked, Stacked Omnidirectional, Limited, Expanded, Expanded Stacked. Código Bidimensional PDF417 QR CODE, MaxiCode Composite Symbology Vida útil Mecanismo de Impressão 15 milhões de linhas Cabeça térmica de impressão 100 KM Guilhotina 1,5 milhões de cortes Tempo médio antes da falha (MTBF): 360.000 horas Média de ciclos antes da falha(MCBF): 60.000.000 linhas Download de Drivers e manuais No link abaixo você encontra todos os drivers disponíveis para a nova TM-T20X. https://download.epson-biz.com/modules/pos/?page=prod&pcat=3&pid=6073 Drivers utilizados durante os testes: Driver de Spooler do Windows Bibliotecas Epson (.dll .lib e .so) Software Utilitario TM Virtual Port Driver (Emula Porta COM) Driver Linux Impressão de Autoteste O autoteste fornece as configurações atuais da impressora, e por ele também é possível alterar estas configurações. Siga os passos abaixo para realizar a impressão do Autoteste. Com a impressora desligada, mantenha pressionado o botão Avanço de Papel (manter pressionado até o início da impressão) e ligue a impressora Quando a impressora parar de imprimir, a luz Paper ficará piscando; Pressione o botão Avanço de Papel para imprimir a segunda parte do teste e finalizar; Caso queira alterar alguma configuração, no passo 2 descrito acima, pressione o botão Avanço de Papel por 1 segundo, será impresso as opções, selecione a opção que deseja pressionando o botão Avanço de Papel na quantidade de vezes requerido pela opção e em seguida o botão Avanço novamente pressionado por 1 segundo para confirmar. Interfaces de comunicação Com os dois modelos da TM-T20x, foi possível testar todos os tipos de comunicação possíveis, acompanhe na tabela abaixo quais são e como configurá-las. Tipo Configuração (Exemplo) USB/RAW RAW:EPSON TM-T20X USB/Com Emulada COM 4 USB/DLL USB:EPSON saCOM FÍSICA COM 1 Ethernet TCP:192.168.20.27:9100 Configurações de comunicação USB – Spooler do Windows Para instalar o driver em ambiente Windows, basta fazer o download de acordo com Sistema Operacional e executá-lo, ao fim da instalação, será aberto uma janela para adicionar a impressora, escolha o 1- tipo de comunicação e clique em 2- Save Settings, clique em 3- Test Print para imprimir uma página de teste . A impressora aparecerá em “Dispositivos e Impressoras”. Na imagem abaixo é possível verificar os passos descritos: USB – COM Emulada Para comunicação via COM Emulada, após a instalação como mostrado acima, faça o download e execute o instalador do TM Virtual Port Driver. Ao finalizar a instalação, execute o aplicativo Epson TM Virtual Port Assignment Tool Escolha uma porta para vincular a impressora e clique em “Assign Port” Na janela que abrirá, selecione a aba “Command Emulation” e habilite a opção “Enabled ESC/POS Command Emulation”. Selecione OK para salvar, pronto será criada uma porta com virtual e sua impressora estará vinculada a ela. USB/DLL Neste tipo de comunicação não é necessário realizar a instalação de driver, basta fazer o download da DLL e copia-lo para a pasta do componente. No demo PosPrinterTeste por exemplo basta configurar a comunicação como USB:EPSON, observe o exemplo na imagem abaixo: Serial RS-232 A comunicação com porta COM Física também não depende de instalação de driver. Veja em Cabo Serial deste relatório, o cabo correto para a comunicação. Para configurar a porta serial no componente ACBrPosPrinter realize as configurações a seguir. Selecione a Porta COM Selecione a opção de Configurações da Porta Realize os ajustes Baud rate: 38400 – Este é o padrão de fábrica desta impressora. Data Bits: 8 Parity: None Stop Bits: 1 Handshaking: DTR/DSR Buffer de Envio: 3000 Espera de Buffer: 200 Salve as configurações Os ajustes de Buffer são necessários para impressões de extratos com grande quantidades de itens, caso não configurados corretamente a impressão pode não ocorrer por completo. Ethernet A configuração da TM-T20X em rede é muito simples, conecte um cabo de rede na porta Ethernet e ligue a impressora, aguarde por aproximadamente 10 segundos, pois será impresso o IP que a impressora obteve do servidor DHCP. Para fixar um IP, abra o navegador e digite o IP impresso para acessar as configurações da impressora, será solicitado um usuário e senha, o padrão de fábrica é “epson” para ambos. No menu de configuração, selecione a opção TCP/IP. Na opção “Acquiring the IP Address” altere para “Manual” e em seguida, realize as configurações conforme sua rede. Para finalizar clique em SEND e em seguida clique em RESET, para enviar e reiniciar a impressora. Exemplo dos passos citados: No PosPrinter configure a porta de comunicação TCP com o IP fixado na impressora, EX: TCP: 192.168.20.27 Veja o exemplo de configuração na imagem abaixo: Gravação de Logo Esta impressora permite gravar múltiplos logos em sua memória, gravamos então um logo do ACBR para ser utilizado durante os testes de impressões, veja abaixo como gravar um logo utilizando o PosPrinterTeste.exe. Selecione a opção Carregar Imagem e escolha a imagem que deseja gravar (Formato BMP) Selecione a posição onde será gravado. (Os valores utilizados abaixo são um exemplo, é possível definir valores diferentes, onde cada imagem fique em uma posição.) Ex: KC1: 32 KC2: 32 Selecione a opção Gravar Logo Para verificar se gravou com sucesso, selecione IMPRIMIR Acompanhe na imagem abaixo o exemplo dos passos citados: Testes de Impressões Os testes de impressões tem como objetivo verificar se o equipamento pode imprimir todas as “Tags” possíveis. Para a realização destes testes utilizamos os componentes e demos do ACBr. Acompanhe as configurações utilizadas para a realização dos testes de impressão. Configurações utilizadas no demo PosPrinterTeste.exe para os testes de impressão das tags. Modelo: ppEscPosEpson; Porta RAW:EPSON TM-T20X Receipet Colunas: 48; Espaços: 40; Linhas Pular: 5; Pag. codigo: pc860; Logo: KC1: 32; KC2: 32; FatorX: 1; FatorY: 1; Exemplo de configuração no demo PosPrinterTeste: Resultados das impressões Formatação de carácter: Todas as propriedades funcionaram corretamente, exceto a fonte itálico (Já não era suportada na TM-T20). Alinhamento: Os alinhamentos foram impressos corretamente. QRCode: Todos QRCode impressos corretamente. Código de Barras: Os tipos std25, CODE11 e MSI não foram impressos (Mesmo comportamento da TM-T20). Logotipo: Logo impresso corretamente. Page Mode: Como podemos observar o Page Mode é suportado. Testes de Acentuação Utilizando um pantograma da língua portuguesa, realizamos diversas impressões com diferentes páginas de código, usando as fontes do Tipo A e B. Pantograma utilizado: À noite, vovô Kowalsky vê o ímã cair no pé do pingüim queixoso e vovó põe açúcar no chá de tâmaras do jabuti feliz. ÁÉÍÓÚáéíóúçÇãõÃÕÊêÂâÔôÀà Resultados obtidos: pc437: Todos os til foram ignorados; pc850: Todos os acentos foram impressos corretamente; pc852: Alguns acentos circunflexos, todas as crases e o til foram ignorados; pc860: Todos os acentos foram impressos corretamente; pcUTF8: Esta impressora não suporta UTF8; pc1252: Todos os acentos foram impressos corretamente; Impressão de extratos do SAT Utilizando o demo SATTeste, testamos a impressão de extratos de venda com 3 itens, as impressões foram realizadas em Fortes Report e em EscPOS, com as opções Logo Lateral e QRCode Lateral, desativadas e posteriormente ativadas. Tela de configuração de Impressão do SATTeste: Cupom Fortes: Cupom Esc/POS: QRCode e Logo Lateral ativados: Cupom Fortes: Cupom Esc/POS: Leitura de Status Realizamos testes de “Leitura de Status” através das conexões de porta COM Física e COM/Emulada, veja abaixo os resultados das leituras realizadas. Status Porta COM/Emulada Porta COM Física Pronta par uso Nenhum erro Encontrado Nenhum erro Encontrado Tampa Aberta StOffline, stTampaAberta StOffline, stTampaAberta Pouco Papel Nenhum erro Encontrado Nenhum erro Encontrado Sem Papel StSemPapel, stOffline StSemPapel, stOffline Gaveta Aberta stGavetaAberta stGavetaAberta Leitura de Informações O resultado do comando para Leitura de Informações, foi retornado corretamente nos três tipos de conexões testados. COM FÍSICA COM EMULADA ETHERNET Fabricante=EPSON Firmware=10.01 ESC/POS Modelo=TM-T20X Serial=X5Z7000035 Guilhotina=1 Fabricante=EPSON Firmware=10.01 ESC/POS Modelo=TM-T20X Serial=X5Z7000035 Guilhotina=1 Fabricante=EPSON Firmware=13.02 ESC/POS Modelo=TM-T20X Serial=X5Z8000018 Guilhotina=1 TAG de Gaveta Abertura de gaveta funcionou como esperado, através da conexão com RJ11. TAGS ENVIADAS: Abertura da Gaveta padrão </abre_gaveta> Abertura da Gaveta específica <abre_gaveta>1</abre_gaveta> </corte_total> Teste de Desempenho Utilizando o demo SATTeste calculamos o tempo médio que o equipamento leva para imprimir extratos de venda, é cronometrado desde que se inicia a impressão do extrato até o corte final do mesmo, incluímos também neste relatório a quantidade de papel impresso para cada quantidade de itens. ATENÇÃO: Este teste difere dos realizados anteriormente, onde era calculado o tempo de envio da impressão do componente para o equipamento e não o tempo de impressão propriamente. Configuração de impressão do SATTeste: Tipo de conexão: USB/RAW Logo Lateral: Ativo Espaços entre linhas: 40 QRCode Lateral: Ativo Linhas à pulas: 5 Colunas: 48 Logo Lateral: Ativo Espaços entre linhas: 40 QRCode Lateral: Ativo Tabela de Resultados: NOTA: Resultados em milisegundos. Em uma comparação com o modelo TM-T20, imprimindo extratos de 100 e 200 itens, é possível observar o quanto a TM-T20X é mais rápida que sua antecessora. Ambas impressoras com a configuração “Printing Speed” em Level 13 (Fast). A nova TM-T20X foi desenvolvida com foco em performance, elevando sua velocidade de impressão. Em uma comparação com sua antecessora, é possível observar que o novo modelo diminui um pouco a nitidez da impressão, o que não atrapalha a leitura do cupom, esta diferença é perceptível quando ambas são impressas em modo Default (Padrão de Fábrica), porém se este for um fator crucial para sua operação, é possível diminuir o Printing Speed para 5 com uma densidade de impressão para 7, melhorando a nitidez. Veja como realizar esta alteração seguindo as orientações descritas em Autoteste, ou altere direto pelo software Epson TM-T20X Utility. Veja abaixo a alteração da velocidade de impressão e densidade mencionadas acima, no software utilitário Epson. Considerações Esta nova impressora da Epson se diferencia nos seguintes aspectos da TM-T20. Tamanho um pouco menor Mais leve Design moderno e atualizado Velocidade de impressão Porta serial RS-232 O Painel de indicações da impressora saiu da parte superior e foi para a parte frontal, próximo ao botão power, uma vantagem nesta linha de impressoras é a característica da fonte (Bivolt) ser embutida no equipamento, não sendo necessário uma fonte externa. Sua instalação e configuração de drivers é simples em Windows ou Linux, basta apenas instalar o driver fornecido pelo fabricante. (Lembrando que a porta de comunicação pode ser escolhida de acordo com o uso aplicado ao equipamento.) A TM-T20X é compatível com o driver da TM-T20, pois em casos onde a TM-T20 já está instalada, basta trocá-la pela TM-T20X. Tanto a porta COM FÍSICA quanto a EMULADA retornaram os “Status de Impressora” corretamente, é preciso se atentar as configurações de buffer, pois extratos com grande quantidade de itens é necessário configurar o Buffer de Envio e Espera de Buffer, caso contrário a impressão não será completa. Nos testes de impressões a impressora se comportou muito bem, imprimindo várias páginas de código, formatação de carácter, alinhamento, page mode e todos os qrcodes, na impressão de código de barras seu comportamento foi semelhante ao da TM-T20 não imprimindo os tipos std25, CODE11 e MSI. Nas impressões de acentuação foi possível observar que a impressora não suporta UTF8. Analisando os testes de velocidade de impressão, podemos ver que este equipamento se sai muito bem neste quesito levando apenas 4 segundos para imprimir um cupom de 200 itens, diferença de quase 1s se comparada com o modelo TM-T20, é importante também se atentar a quantidade de papel gasto em cada teste aplicado. A impressora TM-T20X será comercializada em 2 modelos, com conexões USB/Serial e outra versão somente Ethernet. Porém a Versão com USB/Serial só contém o cabo USB, o cabo serial não acompanha o equipamento. Outras especificações Fontes de impressão: Fonte A: 12 pts. x 24 pts. | Fonte B: 9 pts. x 17 pts. (largura x altura) Capacidade de colunas: Padrão: largura do papel 80 mm: Fonte A: 48 colunas | Fonte B: 64 colunas; Modo de 42 colunas: largura do papel 80 mm: Fonte A: 42 colunas | Fonte B: 60 colunas Tamanho dos caracteres: Fonte A: 1,25 mm x 3 mm | Fonte B: 1,88 mm x 2,13 mm (largura x altura) Conjunto de caracteres: 95 alfanumérico, 18 conjuntos de caracteres internacionais, 128 x 43 gráficos estendidos. Instalação Linux Testamos também a impressora em ambiente Linux OpenSuse Tumbleweed versão 20190810. Veja abaixo como configurar a impressora neste ambiente: 1- Abra um terminal e digite o comando a seguir: dmesg –follow 2- Conecte a impressora ao computador. É possível observar como será reconhecida a impressora, em nosso exemplo foi reconhecida como “usblp0” 3- Verifique no diretório dev se foi criado o arquivo de comunicação com a impressora. ls /dev/usb/ 4- Para testar envie um teste direcionando para a porta criada. echo “Teste de Impressão Projeto ACBr” > dev/usb/lp0 5- Basta configurar a porta /dev/usb/lp0 no componente. Veja na imagem abaixo o comandos citados acima: Anexos Cabo Serial Para quem deseja utilizar comunicação serial, segue esquema de pinagem para compra ou confecção do cabo, observe que as duas pontas são fêmeas. Já imaginou receber uma nova TM-T20X diretamente da EPSON para homologar com seu sistema? Clique no botão acima e solicite um modelo Demo gratuito, exclusivo para desenvolvedores/software houses! Aproveite! Oferta válida por tempo limitado.
  2. Bom dia pessoal Estou usando o ACBrMonitor para a emissão de nfe/nfce e a alguns dias recebi a critério de testes o sat da Epson modelo A10, e gostaria de saber se o mesmo é compatível com o ACBr, ou ainda quais os passos para configurá-lo no monitor, pois em minhas tentativas não obtive sucesso. Observei também dentro da pasta do monitor as pastas: DIMEP, Emulador, Kryptus, Sweda e Tanca, seriam somente estes que o ACBr é compatível? Segue a foto dele, mas o que recebi é amarelo ovo, creio que em virtude do mesmo ser para testes
  3. Boa tarde pessoal! Estou tentando usar a impressao da NFCe como o PosPrinter usando a forma "USB:EPSON", mas sempre que ativar aparece a seguinte mensagem de erro "Marca EPSON, não tem suporte em modo USB". Estou usando a seguinte configuração: ACBrPosPrinter1.Modelo := ppEscPosEpson; ACBrPosPrinter1.Device.Porta := 'USB:EPSON'; ACBrPosPrinter1.Ativar; A Dll InterfaceEpsonNF.dll ja a copiei para pasta o meu executavel, mesmo assim a exceção acontece. Alguem ja passou por isso? Grato... Rennes.
  4. O que é o ACBrPosPrinter e Esc/Pos ? Para quem ainda não conhece, o ACBrPosPrinter é o nosso componente para acesso a Impressoras de Bobinas, Não fiscais... Essas impressoras, denominadas Impressoras POS (Point of Sale), contemplam uma linguagem de impressão de linha, interna, onde podemos realizar tarefas como: Modificar os atributos de impressão Imprimir códigos de barras 1D e 2D (QRCode) Acionar dispositivos ligados a Impressora, como Gaveta de Dinheiro, Guilhotina Ler status da Impressora (Tampa aberta, pouco ou sem papel, etc) No mercado brasileiro, há vários modelos, que contemplam várias linguagens, como por exemplo: EscPos, EscBema, EscDaruma, etc... As linguagens são chamadas de "Esc", pois os comandos geralmente iniciam com o caractere não imprimível, ESC ou #27... Exemplo: se enviarmos para a Impressora a String: chr(27) + 'E' + chr(01), ligaremos o modo Negrito A grande maioria dos fabricantes, procurou seguir o padrão Epson, que é a marca mundialmente líder nesse segmento, e a sua linguagem Epson Esc/Pos... O componente ACBrPosPrinter suporta a grande maioria das linguagens e modelos existentes no mercado brasileiro... mas nem todos os recursos, estão disponíveis em todas as linguagens... Usar o ACBrPosPrinter é extremamente simples, e não requer o conhecimento de Esc/Pos... Através de suas Tags, você pode construir ricos relatórios, com várias formatações de fontes, alinhamento, Imagens, códigos de barra e QRCode... A título de Exemplo, usamos o próprio componente ACBrPosPrinter, para criar o Extrato do SAT, Unit ACBrSATExtratoESCPOS.pas e o DANFCe, unit ACBrNFeDANFeESCPOS.pas Se você usa o ACBrMonitorPLUS, poderá acessar o ACBrPosPrinter pelo objeto ESCPOS... Veja no manual: https://acbr.sourceforge.io/ACBrMonitor/ESCPOSImprimirTags.html Você pode baixar um Demo compilado do ACBrPosPrinter em: Você pode baixar uma Apresentação sobre o ACBrPosPrinter em: Se você não programa em ObjectPascal (Delphi/Lazarus), pode baixar a biblioteca (DLL) ACBrLibPosPrinter em: https://www.projetoacbr.com.br/forum/files/category/35-acbrlibposprinter/ Sobre a Impressão de Imagens no ACBrPosPrinter A muito tempo eu sentia falta dos seguintes recursos, no componente ACBrPosPrinter Impressão de Imagens Gravação e manipulação de Logos na memória da Impressora... Agora isso já é possível... Após muita pesquisa, e com a ajuda de vários outros artigos que encontrei na Internet (veja referência nos fontes), consegui implementar a Impressão de Imagens no modo "Raster Image"... Devido a característica desses equipamentos, apenas a impressão de Imagens monocromáticas é suportada. Existem vários sites de conversão de Imagem, para BMP Monocromático, on-line, como por exemplo: https://online-converting.com/image/convert2bmp/ Novos métodos no componente ACBrPosPrinter procedure ImprimirImagemStream(ABMPStream: TStream); // Permite Imprimir uma Imagem, no formato BMP Monocromático, de um Stream procedure ImprimirImagemArquivo(ArquivoBMP: String); // Carrega e imprime uma Imagem de um Arquivo. Em aplicações visuais (não console) será usado o Objeto TPicture, que permite carregar vários formatos de Imagem, podendo ser Colorida ou em Escala de cinza. A Imagem será convertida para BMP Monocromática. Entretanto, procure sempre usar Imagens BMP Moncromáticas, para evitar processamento desnecessário procedure ImprimirImagemRasterStr(const ARasterStr: AnsiString; AWidth, AHeight: Integer); // Imprime uma Imagem a partir de uma String no formato "Raster Image" (veja abaixo) procedure ImprimirLogo(AKC1: Integer = -1; AKC2: Integer = -1; AFatorX: Integer = -1; AFatorY: Integer = -1); // Imprime um Logo préviamente gravado na memória da Impressora. Se os parâmetros não foram informados, serão usados os valores de ACBrPosPrinter.ConfigLogo procedure GravarLogoStream(ABMPStream: TStream; AKC1: Integer = -1; AKC2: Integer = -1); // Grava uma Imagem de Logo, no formato BMP Monocromático, a partir de um Stream, nas posições informadas. Se os parâmetros não foram informados, serão usados os valores de ACBrPosPrinter.ConfigLogo procedure GravarLogoArquivo(ArquivoBMP: String; AKC1: Integer = -1; AKC2: Integer = -1); // Grava uma Imagem de Logo, a partir de um arquivo em Disco, nas posições informadas. Se os parâmetros não foram informados, serão usados os valores de ACBrPosPrinter.ConfigLogo procedure ApagarLogo(AKC1: Integer = -1; AKC2: Integer = -1); // Remove um Logo da memória da Impressora. Se os parâmetros não foram informados, serão usados os valores de ACBrPosPrinter.ConfigLogo Nova Tag de Bloco <bmp> - Imprime Imagem BMP monocromática. Conteúdo pode ser: Path da Imagem, Stream em Base64 ou AscII Art (0 e 1) Veja alguns exemplos de uso: Inicializa </zera>, define o alinhamento no centro </ce>, e efetua a impressão da Imagem em disco, no Path "C:\temp\acbrmono.bmp" </zera></ce><bmp>C:\temp\acbrmono.bmp</bmp> Imprimir uma Imagem de BMP Mono, codificada em Base64 <bmp> Qk3eDQAAAAAAAD4AAAAoAAAA+gAAAG0AAAABAAEAAAAAAKANAAAAAAAAAAAAAAIAAAAAAAAAAAAAAP///wD/////////////////////////////////////////wP/////////////////////////////////////////A/////////////////////////////////////////8D/////////////////////////////////////////wP4AAAAAAAAAAAAAAA8A8AAAAAAAAAAAAAAAAAAAAD/A/AAAAAAAAAAAAAAADwD4AAAAAAAAAAAAAAAAAAAAD8D4AAAAAAAAAAAAAAAPAHwAAAAAAAAAAAAAAAAAAAAHwOAAAAAAAAAAAAAAAA8APgAAAAAAAAAgAAAAAAAAAAHAwAAAAAAAAAAAAAAADwAfAAAAAAAAAcAAAAAAAAAAAcDAAAAAAAAAAAAAAAAPAA+AAAAAAAAfgAAAAAAAAAAAwIAAAAAAAAAAAAADgAQAB8AAAAAAAH+AAAAAAAAAAABAgAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAEAAAAAADDvjnnNn489ngHw4zM+cPM/MD8w7PO4AAAAAAAAAAAAMN+e/c2fn7+/A/nzMz9x+z8wP7Hd27gAAAAAAAAAAAA/2ZnNzZ2YO7ODGxszf3ODOzAxsdx7uAAAAAAAAAAAABmZmc3Nj7gfs4cDGzN/c4MfMDO4ffu4AAAAAAAAAAAAH5mYzd2BmYOzBwObuzNzmxMwPzgdg7gAAAAAAAAAAAAfGb55+5+fHx4HAfP/Pn3zHzAzvvz7uAAAAAAAAAAAAA8AGAAAAAAAAAO4AAAAAAAAMDOAAAA4AAAAAAIAAAAADwAIAAAAAB4AA/AAAMAAAwAwPwAAA7gAAAABAgAAAAAAAAAAAAAAADwA4A+H/4AADwAAAAAAAAAAAAEDAAAAAAAAAAAAAAAAPAAAB//4AAAfAAAAAAAAAAAAAwOAAAAAAAAAAAAAAAA8AAAD/8AAAB4AAAAAAAAAAAAHA8AAAAAAAAAAAAAAADwAAAH/AAAAHAAAAAAAAAAAAA8D4AAAAAAAAAAAAAAAPAAAAPAAAAA4AAAAAAAAAAAAHwP4AAAAAAAAAAAAAAA8AAAAAAAAAHgAAAAAAAAAAAB/A/////////////////////////////////////////8D/////////////////////////////////////////wP/////////////////////////////////////////A/////////////////////////////////////////8D///////gAP///Af////gA//////+Af//4B///////wP///+AAeAB4AB4D+AAB/ADwAAAAf+B4AHgH///////A////4AA4AHgAHgfgAAB+APAAAAAH8HgAeAf//////8D////wADgAeAAeD4AAAB8A8AAAAAHweAB4B///////wP////AAPABwABw+AAAAB4DwAAAAAHx4AHgH///////A////+AA///AAPD4AAAAHwPAAAAAAPHgAeAf//////8D////4AB//8AA4eAAAAAHg8AAAAAAeeAB4B///////wP////wAH//wAHj4AAAAAeDwAAAAAB54AHgH///////A/////AAf/+AAePAAAAAA8PAAAAAADngAeAf//////8D////8AAAAAADx4AAAAAD48AAAAAAPeAB4D///////wP////wAAAAAAPHAAAAAAHjwAAAAAA94AHgP///////A/////gAAAAAA48AAP8AAOPAAP/gAB3gAeA///////8D////+AAAAAADjwAB/4AA48AA//AAH+AB4D///////wP////8AAAAAAe+AAP/wADzwAD/+AAf4AHgf///////A/////wAAAAAB/4AB8PgAPPAAOf4AB/gAeB///////8D/////AAAAAAP/AAHgfAAc8AA7zgAH+AB4H///////wP////+AAAAAA/8AA8A8AP7wAD/+AAd4AHg////////A/////4AAAAAD5wADgBwH/vAAP/4AD3gAeD///////8D/////wAH/AAePAAOAHB/+8AA//AAPeAA4P///////wP/////AAf8ABw8AA4Af/8DwAD/gAA54ADg////////A/////8AB/gAPDwAHgB//APAAAAAAHngAPH///////8D/////4AH+AA8PAAeAD+AA8AAAAAA+eAAf////////wP/////gAf4ADw8AB4APgADwAAAAAHx4AB/////////A/////+AA/gAf7wAHgAwAAPAAAAAA+HgAH////////8D/////8AD8AB//AAeAAAAA8AAAAAfweAAHP///////wP/////wAHwAH/8AB4AAAADwAAAAB+B4AAAf///////A//////gAfAA8fwAHgA4AAPAAAAAB8HgAAA///////8D/////+AB4ADwPAAOAH+AA8AAAAADweAAAD///////wP/////4ADgAeA8AA4Af/gDwAAAAAHh4AAAP///////A//////wAMAB4BwADgB//+PAAP/AAPHgAgAf//////8D//////AAwAHAHAAPAHP/+8AA/+AA8eACAB///////wP/////+ADAA8AcAAfx8A/7wAD/4ADx4AMAD///////A//////4AEADgB4AB//gAPPAAODgAHHgA4AP//////8D//////gAQAOAHgAD/+AA88AA8+AAeeADwB///////wP//////AAAB4AOAAH/gADjwAD/4AB5////////////A//////8AAAHgA8AAP8AAOPAAP/gAHn///////////8D//////wAAA8ABwAAAAAB48AA/wAAef///////////wP//////gAADwAHgAAAAAPDwAAAAABwAAH/////////A//////+AAAOAAOAAAAAA8PAAAAAAPAAAf////////8D//////8AAB4AA+AAAAAHg8AAAAAA8AAD/////////wP//////wAAHgAB4AAAAA8DwAAAAADgAAf/////////A///////AAA8AAD4AAAAHwPAAAAAA/AAD/////////8D//////8AADwAAPgAAAA+A8AAAAAD+AAP/////////wP//////4AAPAAAfgAAAHwDwAAAAAf4AB//////////A///////gAA4AAAfgAAB+APAAAAAHzwAP/////////8D///////AAHgAAA/gAAfwA8AAAAD/PgA//////////wP/////////8AAAB////8AD//////wfAH//////////A//////////wAAAB////gAP//////88A//////////8D//////////gAAAB///4AB////////4H//////////wP//////////AAAAAP/wAAHgAAAAB//w///////////A//////////+AAAAAAHAAA8AAAAAAf/n//////////8D//////////8AAAAAAcAAHwAAAAAAB////////////wP//////////4AAAAABwAAeAAAAAAAAf///////////A///////////wAAAAAHAADwAAAAAAAA///////////8D///////////gAAAAAcAAeAAAAAAAAH///////////wP///////////AAAAABwAD4AAAAAAAA////////////A////////////AAAAAHAAeAAAAAAAAH///////////8D///////////8AAAAAeAD4AAAAAAAA////////////wP///////////4AAAAB4APAAAAAAAAH////////////A////////////4AAAAHgB4AAAAAAAB////////////8D////////////wAAAAeAPAAAAAAAAP////////////wP////////////wAAAB4B8AAAAAAAD/////////////A/////////////gAAAHgHgAAAAAAAf////////////8D/////////////AAAAOA8AAAAAAAD/////////////wP/////////////AAAA4HwAAAAAAA//////////////A//////////////AAADgeAAAAAAAP/////////////8D//////////////AAAPHwAAAAAAD//////////////wP//////////////AAA8eAAAAAAA///////////////A///////////////AADz4AAAAAAH//////////////8D///////////////AAPeAAAAAAD///////////////wP///////////////gA/4AAAAAA////////////////A////////////////wD/AAAAAA////////////////8D////////////////wH4AAAAAP////////////////wP////////////////4fAAAAAH/////////////////A//////////////////8AAAAP/////////////////8D//////////////////8AAA///////////////////wP/////////////////////////////////////////A/////////////////////////////////////////8D/////////////////////////////////////////wA== </bmp> Imprimir uma Imagem, baseado em ASCII ART Na Unit ACBrImage.pas, do pacote ACBrComum, é onde a mágica acontece... essa Unit implementa os seguintes métodos function IsPCX(S: TStream; CheckIsMono: Boolean = True): Boolean; // Retorna True se o Stream contém uma Imagem em PCX function IsBMP(S: TStream; CheckIsMono: Boolean = True): Boolean; // Retorna True se o Stream contém uma Imagem em BMP procedure RasterStrToAscII(const ARasterStr: AnsiString; AWidth: Integer; InvertImg: Boolean; AscIIArtLines: TStrings); // Converte uma String codificada em "Raster Image", para ASCII ART procedure AscIIToRasterStr(AscIIArtLines: TStrings; out AWidth: Integer; out AHeight: Integer; out ARasterStr: AnsiString); // Converte uma String codificada em ASCII ART para "Raster Image" procedure BMPMonoToRasterStr(ABMPStream: TStream; InvertImg: Boolean; out AWidth: Integer; out AHeight: Integer; out ARasterStr: AnsiString); // Converte uma Imagem no formato BMP Monocromático, gravada em um Stream, para uma String codificada em "Raster Image" procedure RasterStrToBMPMono(ARasterStr: AnsiString; AWidth: Integer; InvertImg: Boolean; ABMPStream: TStream); // Converte uma String codificada e "Raster Image", para uma Imagem no formato BMP Monocromático, gravando-a em um Stream {$IfNDef NOGUI} procedure BitmapToRasterStr(ABmpSrc: TBitmap; InvertImg: Boolean; out AWidth: Integer; out AHeight: Integer; out ARasterStr: AnsiString; LuminosityThreshold: Byte = C_LUMINOSITY_THRESHOLD); // Apenas disponível se a aplicação não for console. converte uma Imagem de um TBitMap, para uma String codificada e "Raster Image" {$EndIf} Use a força, leia os fontes Não deixe de estudar os fontes do Projeto Demo, PosPrinterTeste, na pasta: \ACBr\Exemplos\ACBrSerial\ACBrPosPrinter\Delphi Nesse projeto há vários exemplos de como Imprimir Imagens, e manipular Logotipos, usando as Tags e Métodos do componente ACBrPosPrinter O que é o modo "Raster Image" ? O Modo Raster é um fluxo de Bytes que representam os Pixels da Imagem... https://pt.wikipedia.org/wiki/Raster Exemplo: Imagine a Seguinte imagem, de 16 x 16 Pixels... Se fôssemos representá-la em ASCII ART, teríamos: 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 1010101010101010 Para transformá-la em Raster, agrupamos os Bits, em Bytes (8 bits)... portanto a primeira linha ficaria: Em Binário: 10101010 + 10101010 Em Hexa: AA + AA Em Decimal: 170 + 170 Então a String em Raster Image, da Imagem acima seria o equivalente a: #170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170+#170 Para imprimir uma String em Raster, é fundamental sabermos qual a largura em Pixels, da imagem A Epson disponibiliza utilitário, para converter imagens para o formato Raster: Epson BmpToRaster (o estudo do conteúdo do arquivo gerado por esse Utilitário, foi essencial na implementação dos métodos de ACBrImage)
  5. Introdução: Recebemos gentilmente da Epson, a impressora não fiscal TM-T88V, para testes, utilizando os exemplos do ACBr: PosPrinterTeste.exe e SATTeste.exe. Computador Desktop Sistema Operacional Windows 10 64Bit atualizado (12/02/2018) Processador Intel Core 2 Duo E4500 2.20GHz Memória 2 GB USB 2.0 Impressora TM-T88V Protocolo Epson Esc/Pos Meios de comunicação USB Serial física (DB-25) (opcional) TCP/IP (RJ45) (opcional) Impressão do Autoteste: Siga os passos abaixo: Com a impressora desligada, mantenha pressionado o botão Avanço de Papel(1) pressionado e ligue a impressora(2); Mantenha pressionado o botão Avanço de Papel(1) até começar a imprimir o Autoteste; Quando a impressora parar de imprimir, a luz Paper(3) ficará piscando; Pressione o botão Avanço de Papel(1) para imprimir a segunda parte do teste; Após a impressão, a luz Paper(3) continuará piscando. Pressione novamente para finalizar o teste: O GIF animado abaixo exemplifica o procedimento descrito acima: Instalação da TM-T88V: Drivers e tools: Link oficial: https://epson.com.br/Suporte/Ponto-de-venda/Impressoras-térmicas/Epson-TM-T88V/s/SPT_C31CA85011 Link alternativo (inglês): https://download.epson-biz.com/modules/pos/index.php?page=prod&pcat=3&pid=36 USB – Spooler do Windows: Driver: https://download.epson-biz.com/modules/pos/index.php?page=single_soft&cid=5943&pcat=3&pid=36 Para realizar a instalação siga as etapas abaixo: Ligue a impressora e conecte-a porta USB; Será exibido Outros dispositivos/TM-T88V em Gerenciador de Dispositivos: Realize o donwload e descompacte o arquivo APD_510_T20_EWM.zip; Execute o instalador APD_510_T88V.exe; Clique em Next(1) ; Caso concorde com os termos da licença do software, selecione Agree(2) e depois clique em Install(3) : Clique em Next(4) : Na tela para vincular o driver com a impressora, o modelo(5) é selecionado automaticamente pelo software; Selecione a comunicação, em nosso exemplo foi USB(6); Ao clicar em Save Settings(7), será exibido a impressora TM-T20(8) configurada; Para concluir, clique em Next(9) : Após concluir a instalação, será exibida a impressora TM-T20 em Impressoras e Scanners: USB – DLL do fabricante: DLL: https://epson.com.br/peps-drivers-apis-impressoras-nao-fiscais A Epson disponibiliza, às software houses, uma biblioteca (DLL) para comunicação bilateral com suas impressoras. Ela permite ter as mesmas vantagens da comunicação serial, sem a necessidade de uma porta serial física (COMx) ou emulada (USB/Serial). O ACBrPosPrinter tem suporte a esta biblioteca. Há um tópico que explica, com maiores detalhes, esta funcionalidade e sua implementação, e pode ser conferido neste link: Nota: Para melhor utilização da DLL com a impressora, é necessário um ajuste nos Dip-switchs, veja o final do artigo. COM Física - Esc/POS: A TM-T88V que recebemos, utiliza um conector DB25 para comunicar-se com um computador. Portanto, se faz necessário um cabo diferenciado para realizar tal tarefa. O cabo que utilizamos para realizar os testes foi este: Veja a sessão de Dip-Switches para ajustar as configurações da Serial da Impressora, se necessário. Com o utilitário da Epson, podemos configurar a velocidade de impressão da porta Serial. Para realizar tal configuração, siga os passos abaixo: Execute o utilitário como administrador: Clique em Adic. Porta(1); Selecione Série(2); Defina qual a porta COM utilizada. Em nosso exemplo utilizamos a COM1(3); Defina a velocidade para 38400 bps(4); Caso deseje, realize um Teste de comunicação(5) e depois clique em OK(6) na mensagem de sucesso; Clique em OK(7) para vincular a porta COM1 com a TM-T88V(8); Clique em OK(9) para abrir o utilitário: No utilitário, selecione a opção Comunicação I/F(10); Serão exibidos opções da porta serial. Essas opções somente serão exibidas se, a comunicação entre a impressora e o computador, for serial. Defina a velocidade para 115200 bps(11) e depois clique em Definir(12): A impressora reiniciará e o utilitário perderá a comunicação. Conosco, foi necessário desligar e religá-la novamente para efetivar as alterações. Caso deseje utilizar o utilitário novamente, refaça as etapas de 1 até 8, definindo 115200 bps na etapa 5. TCP/IP: Nota: A chave 8 do dip-switch 2 vem desligada de fábrica. Desta forma, a comunicação USB ficará ativa e a ethernet inativa. Para usar a comunicação ethernet, ligue essa chave. Ao ligá-la, o USB ficará inativa e a ethernet ativa. Para maiores detalhes, consulte a sessão Dip-switch no final deste documento. O endereço IP definido de fábrica é: 192.168.192.168. Para alterar esse endereço, é necessário configurar um computador na mesma faixa deste endereço. Em nossos testes, ligamos um cabo diretamente entre o computador e a impressora, e definimos o endereço do computador para 192.168.192.161. Para definir estas configurações, realize os passos abaixo: Clique com o botão direito no ícone de rede(1) e depois Abrir configurações de Rede e Internet(2) : Selecione a opção Ethernet(3) => Alterar opções do adaptador(4); Clique com o botão direito na placa de rede de seu computador(5) =>Propriedades(6); Selecione Protocolo IP Versão 4 (TCP/IPv4)(7) => Propriedades(8); Defina as configurações de IP(9) conforme abaixo: - IP: 192.168.192.161 - Mascara: 255.255.255.0 - Gateway: 192.168.192.1 - DNS: 8.8.8.8 Para aplicar as configurações, clique em OK(10) => OK(11): À partir deste ponto será possível acessar a TM-T88V pelo navegador web. O portal exibido, parecido com o de um roteador, permite realizar a troca do endereço IP. Para realizar tal configuração, siga os passos abaixo: No navegador web, acesse o endereço http://192.168.192.161(12); Clique em Avançado(13) => Adicionar exceção(14) => Confirmar exceção de segurança(15) : Na autenticação(16), digite: - Usuário: epson - Senha: epson Selecione IPv4 Address(17); Altere o Endereço IP e mascara(18) conforme seu ambiente. Em nossos testes, usamos: - IP:192.168.15.31 - Mascara: 255.255.255.0 - Demais configurações não alteramos; Ao clicar em Send(19), a impressora estará com o novo endereço de rede configurado: USB – COM Emulada: Driver: https://ftp.epson.com/drivers/TM-VPD_8.60a.exe A Epson disponibiliza um software que simula uma porta serial COM. Através dele, é possível enviar comandos Esc/POS e receber informações da impressora pelo porta USB. Para realizar a instalação siga as etapas abaixo: Realize o download e execute o programa TM-VPD_8.60a.exe; Siga os passos da instalação até a sua conclusão: Ao finalizar a instalação será exibida a tela para vincular a TM-T88V em uma porta serial; Para realizar a vinculação, selecione uma porta serial. Em nosso exemplo usamos a COM3(1); Clique em Assign Port(2); Na aba Assign Port(3) selecione a impressora TM-T88V(4); Selecione a aba Command Emulation(5); Habilite a opção Enabled ESC/POS Command Emulation(6) e depois clique em OK(7); A impressora EPSON(8) será vinculada com a porta que selecionamos, ou seja, COM3(1); Clique em Exit(9) para sair: No Gerenciador de dispositivos será exibida a porta adicionada, no nosso exemplo a COM3: Testes usando os componentes e Demos do ACBr: Utilizamos a versão 3.2.1 do PosPrinterTeste.exe, demo do ACBrPosPrinter, parte do projeto ACBr, para efetuar testes na impressora. A ultima versão do PosPrinterTeste.exe está disponível neste link: https://www.projetoacbr.com.br/forum/files/file/364-posprintertesteexe/ Durante os testes deixamos as configurações desta forma: Modelo: ppEscPosEpson; Porta: COM1; Colunas: 42; Espaços: 40; Linhas Pular: 5; Pag. codigo: pc860; KC1: 48; KC2: 48; FatorX: 2; FatorY: 2; Demais configurações não alteramos; Meios de comunicação utilizados: Usando o campo Porta, testamos os 5 meios de comunicação possíveis com a impressora: USB - COMxx (Emulada)– Para comunicação serial. No nosso ambiente definimos a porta serial do computador como COM3, através do software da Epson; RAW:nome da instalação da impressora (USB)– Para enviar a impressão ao Spool do Windows em modo RAW. (exemplo: RAW:TM-T88V); COMxx (Física)– Também para comunicação serial. No nosso exemplo usamos a COM1; TCP/IP – Para envios de comandos Esc/POS diretamente para a impressora usando TCP/IP. (Exemplo: TCP:192.168.15.31:9100); Biblioteca (DLL)– Também utilizada para comunicação serial. No nosso exemplo definimos USB:Epson ; Armazenar o Logotipo na impressora: A partir da revisão 16349 do SVN oficial do ACBr, foi implementada uma nova funcionalidade no componente ACBrPosPrinter, permitindo gravar e apagar o logotipo na impressora, descartando a necessidade de usar um utilitário do fabricante. Para saber mais, acesse este link: Resultado: A impressora suportou a gravar um logotipo, apagar e imprimir um logotipo existente na memória, usando comandos Esc/POS. Normal: KC1: 48 KC2: 48; FatorX: 2; FatorY: 2; Reduzido: KC1: 48 KC2: 48; FatorX: 1; FatorY: 1; Demais testes: As imagens abaixo, exemplificam a compatibilidade da impressora com o componente ACBrPosPrinter. Com algumas pequenas ressalvas, observe que o equipamento se saiu muito bem, efetuando a impressão de acordo com os comandos suportados pelo protocolo Epson Esc/Pos: Formatação de carácter: Com exceção da fonte itálico, todas as demais propriedades funcionaram perfeitamente: Alinhamento + Impressão direta de imagens: O texto e a imagem foram impressas corretamente, respeitando o alinhamento: QR Code: Todos os códigos utilizados foram impressos corretamente: Código de Barras: Os tipos std25, CODE11 e MSI não foram impressos: Leitura de Status: A impressora retornou o Status pela porta COM1, USB/Com emulada (COM3), TCP/IP e via biblioteca do fabricante: Page Mode: Funcionou conforme o esperado. Entretanto, não permite o uso de DANFCe com QRCode Lateral devido ao tamanho reduzido de colunas: 42 ao invés de 48. Campainha: Alguns modelos da TM-T88V tem campainha interna. O modelo que temos em mãos, M244A, não tem. Existe a opção de uma campainha externa, ligada na mesma conexão da gaveta de dinheiro (RJ11), porém, somente é possível usar um dos dispositivos: gaveteiro ou campainha. Teste de acentuação: Para realizarmos os testes de acentuação com diferentes páginas de código, procedemos da seguinte forma: Inserimos um pantograma da língua portuguesa, contendo todas as letras e acentos(1) usando as fontes do Tipo A e B; No cabeçalho foi colocado a tag </zera>(2) para limpar as configurações a cada teste; Foi realizada uma impressão por página de código disponível na impressora(3); Resultados: pc473: Alguns acentos circunflexos, todas as crases e o til foram ignorados; pc850: Todos os acentos foram impressos corretamente; pc852: Alguns acentos circunflexos, todas as crases e o til foram ignorados; pc860: Todos os acentos foram impressos corretamente; pc1252: Todos os acentos foram impressos corretamente; Leitura de Status: A leitura do estado da impressora é funcional através dos meios de comunicação: Serial física (COM1), rede (TCP/IP), Serial virtual (COM3) e biblioteca (DLL). Abaixo alguns status retornados pela impressora: Pronta para uso: “Nenhum Erro encontrado”; Tampa aberta: “stErroLeitura,”; *Pouco papel: “Nenhum Erro encontrado”; Sem papel: “stSemPapel, stOffLine”; Gaveta de dinheiro aberta: “stGavetaAberta, stErroLeitura,” *Nota: A leitura de pouco papel não funcionou pela biblioteca. Já entramos em contato com o fabricante para informar o problema. Impressão de extratos do SAT com SATTeste: O SATTeste é um demo do ACBrSAT, parte do projeto ACBr. Realize o download neste link: https://www.projetoacbr.com.br/forum/files/file/316-sattesteexe/ Testamos a impressão usando o Spool do Windows através do Gerador de Relatórios Fortes Report, e também usando a impressão em ESC/POS. As configurações utilizadas foram as seguintes: Fortes EscPOS Largura: 289 Topo: 0 Fundo: 0 Esquerda: 4 Direita: 0 Impressora: TM-T88V Colunas: 42 Espaço Linhas: 40 Linhas Pular: 4 Pag.codigo: pc860 Modelo: ppEscEpson Porta: COM1 Logotipo: Habilitado KC1: 48 KC2: 48 FatorX: 1 FatorY: 1 Exemplo de um cupom fiscal impresso pela TM-T88V, usando Esc/POS (Esquerda) e Fortes(Direita) : Conforme citamos, a impressora não suporta cupons com QRCode e Logotipo lateral usando Esc/POS. Neste caso, realizamos apenas o teste com Fortes Report: Teste de desempenho: Através de comandos EscPOS, realizamos a impressão de vários extratos de SAT com diversas quantidades de itens, coletando os tempos de impressão. Para medição mais precisa do tempo de impressão do equipamento nos testes envolvendo o Spooler do Windows (RAW:TM-T88V), não usamos o gerenciamento de fila de impressões do próprio serviço de Spooler, devido o uso da memória do computador para gerenciar a fila de impressões. Portanto, habilitamos a opção Imprimir diretamente na impressora na aba Avançado nas Propriedades da impressora. Desta forma, o serviço de Spooler apenas repassa a impressão diretamente para a impressora, não gerenciando a fila de impressões para o equipamento. Todas as formas de comunicação disponibilizada pela TM-T88V foram testadas: Serial Física: As configurações foram as seguintes: Modelo: ppEscEpson Porta: COM1 Colunas: 42 Espaços Linhas: 40 Linhas Pular: 5 Pag. codigo: pc860 Resultados: Nota: Verificamos que ao enviar impressões em Esc/Pos, usando extratos com 100 itens ou mais, a impressora não finaliza a impressão. Acreditamos que seja algo relacionado com ao tamanho do buffer. Porém, como a impressão é feita através da porta COM, foi possível contornar esta situação, usando uma configuração específica em ACBrPosPrinter.Device, do qual permite configurar o tamanho máximo do buffer nesta porta. ACBrPosPrinter.Device.SendBytesCount: Determina o número máximo de bytes a serem enviados pela porta. ACBrPosPrinter.Device.SendBytesInterval: Determina o número de milissegundos a aguardar, antes de enviar o próximo Buffer de dados. Para efetuar tal configuração no SATTeste, vá na aba Impressão(1), clique no ícone de configuração(2), e defina a seguinte configuração: Handshaking(3): RTS/CTS (HardFlow selecionado); Buffer de Envio(4): 3000; Espera Buffer(5): 10 USB/COM Emulada: As configurações foram as seguintes: Modelo: ppEscEpson Porta: COM3 Colunas: 42 Espaços Linhas: 40 Linhas Pular: 5 Pag. codigo: pc860 Resultados: Nota: Cupons com 300 itens ou mais travam durante a impressão. Testamos, de todas as formas que encontramos de contornar o problema, mas sem sucesso. Informamos a Epson sobre este problema. USB/Spool do Windows: As configurações foram as seguintes: Modelo: ppEscEpson Porta: RAW:TM-T88V Colunas: 42 Espaços Linhas: 40 Linhas Pular: 5 Pag. codigo: pc860 Resultados: TCP/IP: As configurações foram as seguintes: Modelo: ppEscEpson Porta: TCP:192.168.15.31 Colunas: 42 Espaços Linhas: 40 Linhas Pular: 5 Pag. codigo: pc860 Resultados: DLL do fabricante: As configurações foram as seguintes: Modelo: ppEscEpson Porta: USB:EPSON Colunas: 42 Espaços Linhas: 40 Linhas Pular: 5 Pag. codigo: pc860 Resultados: Sobre o equipamento: A TM-T88V tem um gabinete simples, resistente e bem acabado. Robustez, é a mensagem que o seu design passa ao seu observador. Os detalhes são sutis, mas fazem toda a diferença na utilização da impressora em ambientes hostis. A elevação que contorna a abertura da saída de papel, protege a entrada acidental de líquidos em seu interior. O botão liga/desliga, também protegido, evita seu acionamento acidental. Na base, há “pés” de borracha, dificultando o seu deslise. Também na base, ha orifícios para fixação em um suporte, opcional, permitindo seu uso na vertical. As conexões ficam na traseira do gabinete. São elas: USB (Padrão AB), conector de energia e, um pouco mais escondido, o conector da gaveta/campainha. Junto a estes conectores, há um orifício para adição de placas de expansão. As duas disponibilizadas pelo fabricante foram: Serial, qual utiliza um conector DB25, já citado neste documento, e Ethernet, através de uma porta RJ45 para cabos de rede. A interação com o usuário é feita pelo painel. Através de luzes indicativas, o usuário é informado se o papel acabou ou está perto de seu fim, se há algum erro e se a impressora está ligada. O botão “Feed” permite o avanço do papel e a impressão do autoteste. Logo abaixo, ha uma alavanca para acionar a tampa da baia do papel, permitindo sua troca. Sobre a utilização do equipamento: A TM-T88V se demonstrou rápida. Imprimiu o teste de QRCode na mesma velocidade da impressão de textos simples. Achamos importante dar esse destaque porque, em impressoras que não focam em velocidade, comumente ocorre uma breve pausa antes da impressão do QRCode. Ela demonstrou uma alta compatibilidade com o componente. Ela suportou várias páginas de código, formatação de carácter, alinhamento, page mode, todos os qrcodes e a maioria dos tipos de código de barras. Sobre a utilização do software de configuração da impressora: É um software com diversas opções além das relatadas neste documento. Através dele podemos: Reduzir o consumo de papel diminuindo alguns espaçamentos, corte automático do papel, densidade da impressão, velocidade da impressão, etc. Essas e outras opções ajudam a adequar a impressora com as necessidades do cliente. Sobre a comunicação com a porta COM emulada: Verificamos que a compatibilidade da impressora com a porta serial emulada foi muito baixa. Porta esta, totalmente criada por um software, aparenta ter uma terrível limitação: não consegue sincronizar os dados enviados com a impressora. Suspeitamos que, por este motivo, impressões de cupons com 300 itens ou mais, não são impressos legivelmente por completo, resultando na impressão de caracteres inválidos até o seu termino. Conforme já citamos neste documento, a Epson foi informada do problema. Ficha técnica fornecida pelo fabricante: Geral: Método de impressão: Impressão térmica de linhas Fonte de impressão: - A (configurada): 12 x 24 - B: 9 x 17 Capacidade de coluna para rolos de 80 mm: 42/56 colunas; Tamanho de caracteres fonte: - A: 1,41 mm x 3,39 mm - B: 0,99 mm x 2,40 mm Conjuntos de caracteres: 95 Alfanuméricos, 18 Internacionais, 128 x 43 gráficos (incluindo um espaço de página) - Chinês simples/tradicional, Tailandês, Japonês, Coreano Código de Barras: UPC-A/E, CODE 39/93/luir128, EAN 8/13, ITF, CODABAR, símbolos 2D: PDF417, QR - CODE, MaxiCode, Simbologia Composta, GS1-128 Impressora Interface: Interface USB incorporada + outra opção: RS-232C serial, IEEE-1284 paralela, Ethernet 10/100Base-T/TX ou uma interface Connect-It* (Pode-se usar somente uma interface de cada vez). Buffer de dados Recepção: 45 bytes ou 4KB (selecionável) Definido pelo usuário: 12 KB Macro: 2 KB Gráficos NV: 256 KB Usuário NV: 1 KB Modo de área de página: 64 K Velocidade de impressão (máx.): 300 mm/s gráficos e texto Dimensões do papel: - 79,5 ± 0,5 (largura) x 83 mm (diâmetro) - 57,5 ± 0,5 (largura) x 83 mm (diâmetro) Energia: 24 V CC ± 7% Potência consumida: Média aproximada de 1,8A Função Acionador de Gaveta: 2 Controladores Confiabilidade: - MTBF: 360.000 horas - MCBF: 70.000.000 linhas Guilhotina: 2 milhões de cortes Dimensões gerais: 145 mm x 195 mm x 148 mm (5,71” x 7,68” x 5,83”) (L x P x Alt.) Peso: 1,6 kg (3,5 lb) Cor: ECW (Branca), EDG (Cinza Escuro) Dip-Switches: Algumas configurações somente são passíveis de alteração através dos dip-switches presente na impressora. Eles permitem alterar a velocidade da porta serial física, desabilitar ou habilitar a guilhotina e a campainha, definir a densidade da impressão, etc. Um dip-switch é um componente eletrônico com várias chaves liga/desliga numeradas sequencialmente. Na TM-T88V existem dois, DSW1 (dip-switch 1) e DSW2 (dip-switch 2). O acesso a eles é feito por uma tampa na base da impressora. Contudo, na TM-T88V, esses dip-switches tem funcionalidades diferentes conforme a placa de expansão instalada. A Epson nos disponibilizou duas: Serial DB-25 (RS-232) e Ethernet (RJ45). Abaixo, descrevemos, com base no manual da impressora, o comportamento de cada chave do dip-switch conforme a placa de expansão usada: Serial DB-25 (RS-232) DIP-Switch 1 (DSW1) : Chave Função Ligada(on) Desligada Padrão de Fábrica Porta serial física 1 Recepção dados inválidos Ignorar Imprime ‘?’ Desligada Baudrate Chave 7 Chave 8 2 Capacidade do buffer 45 bytes 4kB Desligada 2400, 4800, 9600, 19200, 38400, 57600, 115200 * Ligada Ligada 3 Controle de fluxo XON/XOFF DTR/DSR Desligada 4800 Desligada Ligada 4 Bits de dados 7 bits 8 bits Desligada 9600 (padrão) Ligada Desligada 5 Verificar paridade Sim Não Desligada 19200 Desligada Desligada 6 Paridade Par (Even) Ímpar (Odd) Desligada DIP-Switch 2 (DSW2) Chave Função Ligada(on) Desligada Padrão de Fábrica Densidade de impressão 1 Controle de fluxo (condição: ocupado) Retorna buffer cheio - Retorna buffer cheio; - Retorna offline; Desligada Chave 3 Chave 4 2 Reservado (não alterar) - - Desligada Não define a densidade Ligado Ligado 5 Define quando deve ocorrer o retorno de Buffer BUSY (Só tem efeito se a chave 2 do dip-switch 1 estiver desligada): Retorna Buffer BUSY se atingir 138 bytes livre da capacidade Retorna Buffer BUSY se atingir 256 bytes livre da capacidade Desligada Normal (Padrão) Desligada Desligada 6 Reservado (não alterar) - - Desligada Médio Ligada Desligada 7 I/F pin 6 reset signal Habilitado Desabilitado Desligada Escuro Desligada Ligada 8 IF pin 25 reset signal Habilitado Desabilitado Desligada Nota: Nos testes, definimos a velocidade da porta para 115200. Para tal, foi necessário definir as chaves 7 e 8 como ligadas, e pelo software do fabricante, definir a velocidade para 115200. Essa configuração do software é explicada na sessão Instalação da TM-T88V – COM Física. Ethernet (RJ45) DIP-Switch 1 (DSW1) : Chave Função Ligada(on) Desligada Padrão de Fábrica 1 Auto line feed Sempre habilitado Sempre desabilitado Desligada 2 Capacidade do buffer 45 bytes 4kB Desligada 3 ao 8 Sem definição - - Desligada DIP-Switch 2 (DSW2) Chave Função Ligada(on) Desligada Padrão de Fábrica Densidade de impressão 1 Controle de fluxo (condição: ocupado) Retorna buffer cheio - Retorna buffer cheio; - Retorna offline; Desligada Chave 3 Chave 4 2 Reservado (não alterar) - - Desligada Não define a densidade Ligado Ligado 5 Define quando deve ocorrer o retorno de Buffer BUSY (Só tem efeito se a chave 2 do dip-switch 1 estiver desligada): Retorna Buffer BUSY se atingir 138 bytes livre da capacidade Retorna Buffer BUSY se atingir 256 bytes livre da capacidade Desligada Normal (Padrão) Desligada Desligada 6 e 7 Reservado (não alterar) - - Desligada Médio Ligada Desligada 8 Reservado (não alterar) - - Ligada Escuro Desligada Ligada Nota: Apesar do manual informar para “Não alterar”, a chave 8 do dip-switch 2 vem desligada de fábrica. Desta forma, a comunicação USB ficará ativa e a ethernet inativa. Para usar a comunicação ethernet, ligue essa chave. Ao ligá-la, o USB ficará inativa e a ethernet ativa. Biblioteca Epson: Mude a chave 1 do dip-switch 2 para ligada. Com ela desligada a biblioteca também funciona, porém a aplicação “congela” ao tentar ler o status da impressora com a tampa aberta.
  6. Olá, estou tentando imprimir códigos de barras na impressora Epson TM-T20. Segui o tutorial: https://www.oobj.com.br/bc/article/como-configurar-impressora-epson-tm-t20-para-operar-via-dll-455.html porem ainda não estou conseguindo imprimir nada na impressora. Se eu configuro como "Printer Class" até consigo imprimir, porem não consegui fazer ela imprimir códigos de barras, apenas texto puro. Utilizando o "Vender Class" não consigo imprimir nada, quando chamo os metodos da dll a mesma demora 5 segundos me retorna código 0 porem não faz nada. Segue trecho de código:
  7. Olá pessoal, Introduzi no componente ACBrPosPrinter, um novo mecanismo de acesso a Impressora Agora poderemos acessar algumas impressoras, usando a Sintaxe: ACBrPosPrinter1.Porta := 'USB:MARCA'; Onde MARCA, será o nome da Marca do Fabricante da Impressora... Até o momento, temos suporte para as marcas "ELGIN", e "EPSON" A ideia por traz dessa nova sintaxe de Porta, é permitir usar a DLL/SO do Fabricante, para Imprimir diretamente na Impressora... Ok.. o ACBrPosPrinter, já conseguia acessar impressoras Não Fiscais, pela Porta USB, usando a Sintaxe "RAW:" ACBrPosPrinter1.Porta := 'RAW:Nome da Impressora no Windows'; Mas então porque desenvolvemos essa nova forma de acesso ? A nova sintaxe "USB:", tem algumas vantagens, em relação a sintaxe "RAW:" Não depende da instalação do Driver de Spool da Impressora.. (note porém, que em alguns casos, o Driver de Spool não pode estar instalado, pois ele bloqueia o acesso a USB) Podemos Ler Informações da Impressora (o que não é possível no modo RAW) Entretanto, como foi dito antes, dependemos de DLL exclusiva do fabricante, para o acesso a Impressora pela USB... Quais são essas DLLs ? Para onde eu devo copiá-las ? Vejamos como foi descrito no ACBrSerial-change-Log.txt Creio que isso responde as duas perguntas, correto ? Você pode encontrar as DLLs no nosso SVN, na pasta: \ACBr\DLLs\PosPrinter, ou ainda pela Web: http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/PosPrinter/ Você pode ainda baixar uma versão do Demo PosPrinterTeste, atualizada, compilado em Lazarus/FPC no link abaixo: Como funciona essa nova técnica ? Quem faz todo acesso as Portas suportadas pelo ACBr, é um subcomponente chamado ACBrDevice, e há um bom tempo, esse componente já possui uma possibilidade de Integração por Hooks O que é Hook ? https://pt.wikipedia.org/wiki/Hooking A ideia por trás dos Hooks, é instalar ganchos, em eventos, que nos permitam interceptar algumas ações e chamadas... Veja esse trecho de código FDevice.HookAtivar := PosPrinterHookAtivar; FDevice.HookDesativar := PosPrinterHookDesativar; FDevice.HookEnviaString := PosPrinterHookEnviaString; FDevice.HookLeString := PosPrinterHookLeString; Aqui instruímos o subcomponente ACBrDevice, a chamar nossos eventos, quando ele precisar "Ativar", "Desativar" uma porta e também quando ele for "EnviarString" e "LeString", de uma determinada porta... Então no interior do componente ACBrPosPrinter, implementamos os eventos indicados acima (PosPrinterHookAtivar, PosPrinterHookDesativar, etc) ... Com isso, o ACBrDevice executará um código nosso, ao invés do que ele normalmente executaria... Veja que dentro dos eventos de ativação e desativação usamos uma Classe de Hook (leia mais abaixo) procedure TACBrPosPrinter.PosPrinterHookAtivar(const APort: String; Params: String); begin if Assigned(FHook) then FHook.Open(APort); end; procedure TACBrPosPrinter.PosPrinterHookDesativar(const APort: String); begin if Assigned(FHook) then FHook.Close; end; FHook por sua vez, é uma variável interna ao ACBrPosPrinter, que contem uma Classe de Hook (TACBrPosPrinterHook), e implementa os comandos necessários, para transmitir essas ações, a DLL do fabricante... Veja o exemplo abaixo, como fica a implementação dos Hooks de Ativar e Desativar, da ELGIN... observe que chamamos métodos Externos, da DLL da Elgin, como: "PrtPortOpenW" e "PrtPortClose" procedure TElginUSBPrinter.Open(const APort: String); var errorNo: Integer; begin if Connected then Exit; inherited Open(APort); try errorNo := xPrtPortOpenW(FPrinter, WideString(fpPort)); // <------- A Q U I ------- if (errorNo <> E_SUCCESS) then raise Exception.CreateFmt(CERROR_OPEN, [fpPort, fpPrinterName]); except fpConnected := False; fpPort := ''; raise; end; end; procedure TElginUSBPrinter.Close; var errorNo: Integer; begin if not Connected then Exit; errorNo := xPrtPortClose(FPrinter); // <------- A Q U I ------- if (errorNo <> E_SUCCESS) then raise Exception.CreateFmt(CERROR_CLOSE, [fpPort, fpPrinterName]); inherited Close; end; Com isso, conseguimos usar a DLL do Fabricante, para estabelecer um túnel entre o ACBrPosPrinter e o equipamento... Como posso implementar um Hook para um novo modelo ? Os Primeiros passos, são verificar: Se o Fabricante disponibiliza uma DLL para acesso direto ao equipamento (sem depender do Spooler) Se há nessa DLL, um método que nos permita Escrever e Ler Dados da Porta USB Ou seja, não precisamos de métodos de alto nível, que façam a formatação de caracteres, ou manipulem a impressora... Pois continua sendo o ACBrPosPrinter, quem montará toda a Sintaxe de comandos a serem enviados para a Impressora, usando a linguagem Esc/Pos... e igualmente, será o ACBrPosPrinter que fará a leitura de respostas, quando for necessário... Na DLL da Elgin, temos um ótimo exemplo de método para isso... function PrtDirectIO(printer:Pointer; // Ponteiro com a Impressora instanciada por PrtPrinterCreatorW writeData:PByte; // Buffer com dados a serem enviados writeNum:integer; // Número de Bytes em "writeData" (tamanho do Buffer) readData:PByte; // Ponteiro com o Retorno a ser Lido (Buffer de saída) readNum:integer; // Numero de bytes disponíveis para escrita em "readData" (tamanho disponível no Buffer de Saída) preadedNum:PInteger // Número de bytes realmente escritos em "readData" ): Integer; cdecl; // Status de retorno E_SUCCESS = 0; Tendo isso em mãos, podemos criar uma cópia de uma das Units já existentes, como por exemplo a Unit ACBrEscPosHookElginDLL.pas, e implementar o suporte usando a nova DLL, e efetuar os ajustes referente a nova Marca
  8. Atenção: Há atualizações das informações desta homologação nas respostas deste tópico. Revisão: 1 --- Introdução: Recebemos gentilmente da Epson, a impressora não fiscal TM-T20, para testes. Utilizando os exemplos do ACBr: PosPrinterTeste.exe e SATTeste.exe. Computador Desktop Sistema Operacional Windows 10 64Bit atualizado (21/12/2018) Processador Intel Core 2 Duo E4500 2.20GHz Memória 2 GB USB 2.0 Impressora TM-T20 Protocolo Epson Esc/Pos Meios de comunicação Serial emulada através da porta USB USB Itens que a acompanham Cabo USB padrão B Cabo de alimentação CD de instalação Manual de instalação Tampa do interruptor de alimentação Tampa à prova de água do interruptor de alimentação Bases em borracha para instalação vertical Etiqueta do painel de controle vertical Placa de guia do papel com largura 58mm Braçadeira de suporte de parede Papel em rolo Impressão do Autoteste: Siga os passos abaixo: Com a impressora desligada, mantenha pressionado o botão Avanço de Papel(1) pressionado e ligue a impressora(2); Mantenha pressionado o botão Avanço de Papel(1) até começar a imprimir o Autoteste; Quando a impressora parar de imprimir, a luz Paper(3) ficará piscando; Pressione o botão Avanço de Papel(1) para imprimir a segunda parte do teste; Após a impressão, a luz Paper(3) continuará piscando. Pressione novamente para finalizar o teste: O GIF animado abaixo exemplifica o procedimento descrito acima: Instalação da TM-T20: Drivers e tools: link oficial: https://epson.com.br/Suporte/Ponto-de-venda/Impressoras-t%C3%A9rmicas/Epson-TM-T20/s/SPT_C31CB10023?review-filter=Windows+10+64-bit#drivers Link alternativo (inglês): https://download.epson-biz.com/modules/pos/index.php?page=prod&amp;pcat=3&amp;pid=37 USB – Spooler do Windows: Para realizar a instalação siga as etapas abaixo: Ligue a impressora e conecte-a porta USB; Será exibido Suporte a impressão USB em Gerenciador de Dispositivos: Realize o donwload e descompacte o arquivo APD_510_T20_EWM.zip; Clique em Next(1) : Caso concorde com os termos da licença do software, selecione Agree(2) e depois clique em Install(3) : Clique em Next(4) : Na tela para vincular o driver com a impressora, o modelo(5) é selecionado automaticamente pelo software; Selecione a comunicação, em nosso exemplo foi USB(6); Ao clicar em Save Settings(7), será exibido a impressora TM-T20(8) configurada; Para concluir, clique em Next(9) : Após concluir a instalação, será exibida a impressora TM-T20 em Impressoras e Scanners: USB – COM Emulada: Driver: https://ftp.epson.com/drivers/TM-VPD_8.60a.exe Para realizar a instalação siga as etapas abaixo: Realize o download e execute o programa TM-VPD_8.60a.exe; Siga os passos da instalação até a sua conclusão: Ao finalizar a instalação será exibida a tela para vincular a TM-T20 em uma porta serial; Para realizar a vinculação, selecione uma porta serial. Em nosso exemplo usamos a COM7(1); Clique em Assign Port(2); Na aba Assign Port(3) selecione a impressora TM-T20(4); Selecione a aba Command Emulation(5); Habilite a opção Enabled ESC/POS Command Emulation(6) e depois clique em OK(7); A impressora EPSON(8) será vinculada com a porta que selecionamos, ou seja, COM7(1) : No Gerenciador de dispositivos será exibida a porta adicionada, no nosso exemplo a COM7: Adicionar Logotipo: Tool: https://ftp.epson.com/drivers/pos/TM-T20-Utility_1.50.exe A adição do logotipo é feita pela ferramenta de configuração EPSON TM-T20 Utility. É necessário realizar a instalação antes de usá-la: Realize o download e execute o programa TM-T20-Utility_1.50.exe; Siga os passos da instalação até a sua conclusão: v Execute o programa recém instalado EPSON TM-T20 Utility; Será necessário configurar tipo de comunicação com a impressora. Para tal, clique em Adic. Porta(1); Defina o tipo de comunicação, no nosso ambiente definimos USB(2); Realize um Teste de comunicação(3) ==> OK(4) ==> OK(5); Será exibido a impressora TM-T20(6) usando o meio de comunicação escolhido; Por fim, clique em OK(7) para iniciar o utilitário: Em Guardar logotipo(8), clique em Adicionar(9); Selecione o arquivo do logotipo(10) e depois Abrir(11); Edite a imagem conforme suas necessidades e depois clique em OK(12); Na tela seguinte, defina o endereço de acesso ao logotipo em KC1 e KC2, em seguida clique em OK(13); Será exibido o logotipo(14) selecionado. Alinhe conforme sua necessidade e depois clique em Guardar p/impressora(15) : Testes usando os componentes e Demos do ACBr: Utilizamos o PosPrinterTeste.exe, demo do ACBrPosPrinter, parte do projeto ACBr, para efetuar testes na impressora. O PosPrinterTestes.exe está disponível neste link: https://www.projetoacbr.com.br/forum/files/file/364-posprintertesteexe/ Durante os testes deixamos as configurações desta forma: Modelo: ppEscPosEpson; Porta: COM7; Colunas: 48; Espaços: 40; Linhas Pular: 4; Pag. codigo: pc860; KC1: 32; KC2: 32; FatorX: 1; FatorY: 1; Demais configurações não alteramos; Testes de comunicação: Usando o campo Porta, testamos os 2 meios de comunicação possíveis com a impressora: USB - COMxx (Emulada)– Para comunicação serial. No nosso ambiente definimos a porta serial do computador como COM7 através do software da Epson; RAW:nome da instalação da impressora (USB)– Para enviar a impressão ao Spool do Windows em modo RAW. (exemplo: RAW:TM-T20) Resultados: As imagens abaixo exemplificam a compatibilidade da impressora com o componente ACBrPosPrinter. Com algumas pequenas ressalvas descritas abaixo, observe que o equipamento se saiu muito bem, efetuando a impressão de acordo com os comandos suportados pelo protocolo Epson Esc/Pos: Formatação de carácter: Com exceção da fonte itálico, todas as demais propriedades funcionaram perfeitamente: Alinhamento: Todos os tipos de alinhamento funcionaram conforme o esperado: QR Code: Todos os códigos utilizados foram impressos corretamente: Código de Barras: Os tipos std25, CODE11 e MSI não foram impressos: Logotipo: Para realizar o teste, deixamos a configuração da seguinte forma: KC1: 32 KC2: 32 FatorX: 1 FatorY: 1 Leitura de Status: A impressora retornou o Status pela porta COM7 (Emulada): Page Mode: Funcionou conforme o esperado, permitindo o uso de DANFCe com QRCode Lateral: Teste de acentuação: Para realizarmos os testes de acentuação com diferentes páginas de código, procedemos da seguinte forma: Inserimos um pantograma da língua portuguesa, contendo todas as letras e acentos(1) usando as fontes do Tipo A e B; No cabeçalho foi colocado a tag </zera>(2) para limpar as configurações a cada teste; Foi realizada uma impressão por página de código disponível na impressora(3); Resultados: pc473: Alguns acentos circunflexos e todos os til foram ignorados; pc850: Todos os acentos foram impressos corretamente; pc852: Alguns acentos circunflexos, todas as crases e o til foram ignorados; pc860: Todos os acentos foram impressos corretamente; pc1252: Todos os acentos foram impressos corretamente; Leitura de Status: A leitura do estado da impressora é funcional através da porta serial emulada (COM7). Abaixo alguns status retornados pela impressora: Pronta para uso: “Nenhum Erro encontrado”; Tampa aberta: “stErroLeitura,”; Pouco papel: “Nenhum Erro encontrado”; Sem papel: “stSemPapel, stOffLine”; Gaveta de dinheiro aberta: “stGavetaAberta, stErroLeitura,” Impressão de extratos do SAT com SATTeste: O SATTeste é um demo do ACBrSAT, parte do projeto ACBr. Realize o download neste link: https://www.projetoacbr.com.br/forum/files/file/316-sattesteexe/ Testamos a impressão usando o Spool do Windows através do Gerador de Relatórios Fortes Report, e também usando a impressão em ESC/POS. As configurações utilizadas foram as seguintes: Fortes EscPOS Largura: 277 Topo: 0 Fundo: 0 Esquerda: 0 Direita: 1 Colunas: 48 Espaço Linhas: 40 Linhas Pular: 4 Pag.codigo: pc860 Modelo: ppEscEpson Porta: RAW:TM-T20 Logotipo: Habilitado KC1: 32 KC2: 32 FatorX: 1 FatorY: 1 Exemplo de um cupom fiscal impresso pela TM-T20, usando Esc/POS (Esquerda) e Fortes(Direita) : O mesmo cupom usando logotipo e QRcode lateral, impressos usando Esc/POS (esquerda) e Fortes (direita): Teste de desempenho: Através de comandos EscPOS, realizamos a impressão de vários extratos de SAT com diversas quantidades de itens, coletando os tempos de impressão. Para medição mais precisa do tempo de impressão do equipamento nos testes envolvendo o Spooler do Windows (RAW:TM-T20), não usamos o gerenciamento de fila de impressões do próprio serviço de Spooler, devido o uso da memória do computador para gerenciar a fila de impressões. Portanto, habilitamos a opção Imprimir diretamente na impressora na aba Avançado nas Propriedades da impressora. Desta forma, o serviço de Spooler apenas repassa a impressão diretamente para a impressora, não gerenciando a fila de impressões para o equipamento. Todas as formas de comunicação disponibilizada pela TM-T20 foram testadas: USB/COM Emulada (COM7): As configurações foram as seguintes: Modelo: ppEscEpsonPorta: COM7 Colunas: 48 Espaços Linhas: 40 Linhas Pular: 4 Pag. codigo: pc860 Resultados: USB/Spool do Windows: As configurações foram as seguintes: Modelo: ppEscEpson Porta: RAW:TM-T20 Colunas: 48 Espaços Linhas: 40 Linhas Pular: 4 Pag. codigo: pc860 Resultados: Sobre o equipamento: O gabinete da TM-T20 tem um design tradicional. Ele é feito de um plástico bem resistente e acabado. Seu desenho evita a entrada de sujeiras sólidas e liquidas, permitindo ser usada em locais hostis. No seu topo, há uma alavanca para a abertura da tampa da baia da bobina de papel. Essa tampa é bem grande o que facilita a troca. Em sua base há pés de borracha evitando o seu deslise em uma superfície plana. Há um suporte para fixação que acompanha a impressora. Ele permite alterar a posição de uso da impressora. Há três formas: posição vertical em cima de uma superfície horizontal, como uma mesa ou balcão; posição horizontal fixado em uma parede; posição vertical também fixo em uma parede. Assim, este suporte facilita o uso da TM-T20 para impressão de senhas de atendimento e pedidos para uma cozinha, por exemplo. A interação usuário/impressora é feito através de do painel localizado na tampa da baia da bobina de papel. Através de luzes, ele sinaliza quando a impressora está ligada, em erro, falta de papel e modo de espera. O botão “Feed” realiza o avanço do papel. Sobre a utilização do equipamento: Da instalação ao seu uso, a TM-T20 foi muito fácil de manusear. Em poucos minutos ela estava pronta para uso. Ela se saiu muito bem nos testes. Ela suportou várias páginas de código, formatação de carácter, alinhamento, page mode, todos os qrcodes e a maioria dos tipos de código de barras. Sobre a utilização do software de configuração da impressora: É um software com diversas opções além das relatadas neste documento. Através dele podemos: Reduzir o consumo de papel diminuindo alguns espaçamentos, corte automático do papel, densidade da impressão, velocidade da impressão, etc. Essas e outras opções ajudam a adequar a impressora com as necessidades do cliente. Sobre a comunicação com a porta COM emulada: A configuração da porta virtual descrita na sessão “USB – COM Emulada”, foi a melhor maneira que encontramos para a impressora se comportar como o esperado, usando este meio de comunicação. Com esta configuração, a impressora imprimiu todos os cupons por completo. Entretanto, ao realizar uma nova impressão logo na sequência, o Windows informou que o dispositivo COM7 (nosso exemplo) estava com erro e precisou ser reiniciado. Após 4 reinicializações, o Windows desativou a COM7. As informações sobre essas configurações não foram localizadas no manual do fabricante nem do software de virtualização da porta COM. É importante destacar que a impressora se saiu muito bem na comunicação via Spooler do Windows, realizando todas as tarefas sem problema algum. Contudo, não há como coletar o status da TM-T20 ao usar esse meio de comunicação. Ficha técnica fornecida pelo fabricante: Geral Método de impressão: Impressão térmica em linhas Velocidade do alimentador de papel: Aprox. 150 mm/s (mantendo o botão Feed pressionado) Guilhotina: Corte parcial (ponto para destaque na lateral esquerda) Pontos por polegadas: 203 × 203 dpi Conexão: USB 2.0 (12 Mbps) Caixa registradora: suporte a 2 gaveteiros Fonte de alimentação: 100-240V 50/60Hz, Corrente nominal: 1.0 A Temperatura / umidade em uso: 5 to 45°C, 10 to 90% RH Dimensões: 146 × 140 × 199 mm (A × L × C) Peso (massa): Cerca de 1,7 kg Código de barras: UPC-A, UPC-E, JAN13 (EAN13), JAN8 (EAN), CODE39, ITF, CODABAR (NW-7), CODE93, CODE128, GS1-128, GS1 DataBar (Expanded / Limited / Expanded Stacked) . Código bidimensional: PDF417, QRCode, MaxiCode, 2D GS1 DataBar, simbologia composta Espaçamento entre linhas (padrão): 3,75 mm Velocidade de impressão Caracteres: 150 mm/s máx. / 40 lps Cód. Barras e Bidimensional: 100 mm/s Vida útil Mecanismo de impressão: 15.000.000 linhas (impressão + avanço do papel); Cabeça térmica de impressão: 100 millions pulses, 100km Guilhotina: 1.500.000 cuts Tempo médio entre falhas (MTBF): 360.000 horas Média de ciclos entre falhas(MCBF): 60.000.000 linhas Caracteres de impressão: Caracteres alfanuméricos: 95 Páginas de código: 18 tipos Gráficos: 128x43 páginas Impressão com bobinas de 80 mm Largura da impressão: - 48 colunas: 72,1 mm / 576 pontos - 42 colunas: 68,3 mm / 546 pontos Caracteres por linha - 48 colunas: Fonte A=48 / Fonte B=64 - 42 colunas: Fonte A=42 / Fonte B=60 Espaçamento entre caracteres - 48 colunas: Fonte A=0,25 mm / Fonte B=0,25 mm - 42 colunas: Fonte A=0,38 mm / Fonte B=0,25 mm Estrutura dos caracteres - 48 colunas: Fonte A=12x24 / Fonte B=9x17 (ambos incluem 2 pontos para espaçamento horizontal) - 42 colunas: Fonte A=13x24 / Fonte B=9x17 (2 e 3 pontos para espaçamento horizontal respectivamente) Tamanho do carácter (48 colunas) - Normal: Fonte A=1,25 x 3,00 mm / Fonte B=0,88 x 2,14 mm - Altura dupla: Fonte A=1,25 x 6.00 mm / Fonte B=0,88 x 4,26 mm - Largura dupla: Fonte A=2,50 x 3,00 mm / Fonte B=1,76 x 3,00 mm - Altura dupla: Fonte A=2,50 x 6,00 mm / Fonte B=1,76 x 4,26 mm Tamanho do carácter (42 colunas) - Normal: Fonte A=1,25 x 3,00 mm / Fonte B=0,88 x 2,13 mm - Altura dupla: Fonte A=1,25 x 6,00 mm / Fonte B=0,88 x 4,26 mm - Largura dupla: Fonte A=2,50 x 3,00 mm / Fonte B=1,76 x 2,13 mm - Altura dupla: Fonte A=2,50 x 6,00 mm / Fonte B=1,76 x 4,26 mm Impressão com bobinas de 58 mm Largura da impressão: - 48 colunas: 52,6 mm / 420 pontos - 42 colunas: 47,3 mm / 378 pontos Caracteres por linha - 48 colunas: Fonte A=35 / Fonte B=46 - 42 colunas: Fonte A=42 / Fonte B=31 Espaçamento entre caracteres - 48 colunas: Fonte A=0,25 mm / Fonte B=0,25 mm - 42 colunas: Fonte A=0,25 mm / Fonte B=0,25 mm Estrutura dos caracteres - 48 colunas: Fonte A=12x24 / Fonte B=9x17 (ambos incluem 2 pontos para espaçamento horizontal) - 42 colunas: Fonte A=9x17 / Fonte B=12x24 (ambos incluem 2 pontos para espaçamento horizontal) Tamanho do carácter (48 colunas) - Normal: Fonte A=1,25 x 3,00 mm / Fonte B=0,88 x 2,14 mm - Altura dupla: Fonte A=1,25 x 6.00 mm / Fonte B=0,88 x 4,26 mm - Largura dupla: Fonte A=2,50 x 3,00 mm / Fonte B=1,76 x 3,00 mm - Altura dupla: Fonte A=2,50 x 6,00 mm / Fonte B=1,76 x 4,26 mm Tamanho do carácter (42 colunas) - Normal: Fonte A=0,88 x 2,13 mm / Fonte B=1,25 x 3,00 mm - Altura dupla: Fonte A=0,88 x 4,26 mm / Fonte B=1,25 x 6,00 mm - Largura dupla: Fonte A=1,76 x 2,13 mm / Fonte B=2,50 x 3,00 mm - Altura dupla: Fonte A=1,76 x 4,26 mm / Fonte B=2,50 x 6,00 mm Especificações da papel Diâmetro da bobina: Máximo 83 mm Largura: - Papel de 80mm: 79,5 mm ± 0,5 mm - Papel de 58mm: 57,5 mm ± 0,5 mm Tipo de papel térmico - Papel de 80mm: NTP080-80 - Papel de 58mm: NTP058-80
  9. until
    https://register.gotowebinar.com/register/7672755373375116301
  10. Graças ao fórum e essa turma mais que competente consegui fazer a geração da venda. Porem a impressão ainda não. Associei o ACBrSATExtratoFortes1 mas não consigo imprimir Estou usando como linha para impressão ACBrSAT1.ImprimirExtrato; A impressora é uma Epson TM Gera o PDF normal, mas não imprime
  11. Boa noite estou com um problema no fechamento do XML Retorna no Log |06010|1999|Rejeição: Erro não identificado|| Segue em anexo o LOG e o XML gerado Podem me ajudar? ACBrSATLOG.log AD20181120182323-972979-env.xml
  12. Boa tarde, estou com um problema. Quando tento configurar uma gaveta no ACBrGAV, conectada na impressora não fiscal epson tm-t20, toda vez que envio o comando de abrir gaveta, me retorna o erro: Mas a porta está funcionando normalmente, e quando eu configuro para abrir a porta com o acbrPosPrintes, funciona normalmente. O StrComando utilizado é o da própria bematech, que funciona com a impressora Bematech. Teria algo que possa ser feito para resolver essa questão? A porta utilizado é a COM5 no caso.
  13. Olá pessoal, Implementamos um novo recurso, na impressão do DANFCe usando Esc/Pos. Trata-se da Impressão do Cupom com o QRCode e LogoTipo lateral, gerando uma imensa economia de papel, em um layout bastante agradável... Veja a imagem abaixo: Tal recurso, já existia para quem fazia a impressão do DANFCe em Fortes Report... porém é novidade para a impressão em Esc/Pos. Em quais impressoras posso usar esse recurso ? Esse novo recurso é compatível apenas com as Impressoras que são 100% compatíveis com Epson Esc/Pos, e que permitem a impressão de até 48 caracteres, por linha, em fonte Normal. Exemplos de impressoras já testadas: Epson TM-T20 Elgin I9/I7 Qual a vantagem de usar Esc/Pos ? Há inúmeras vantagens em usar Esc/Pos para impressão do DANFCe em relação a impressão usando Geradores de Relatório, como por exemplo o Fortes Report, como por exemplo: Velocidade: pois muito menos dados são transmitidos a impressora (apenas comandos em Esc/Pos) Uso de características nativa da impressora: É a própria impressora que gera o QRCode e demais formatações de caractere, liberando a CPU dessas tarefas, Pode funcionar em aplicações Console (Serviços, Servidores, etc): Não precisamos de um complexo gerador de Relatórios para formatação das fontes e do QRCode, é a própria impressora que executa essas tarefas. Zero configuração: Com Esc/Pos você não precisa instalar o Driver de Spool da Impressora no Windows... basta configurar a porta de impressão no componente e pronto... Acesso a Guilhotina e Gaveta: Com simples tags, você consegue acionar esses dispositivos ligados a impressora Leitura de Status da Impressora: A gaveta está aberta ? Acabou o papel ? com a impressão em Esc/Pos você consegue essas informações Como a mágica funciona ? Para que a impressão com o QRCode lateral usando Esc/Pos seja possível, nós implementamos novos recurso e Tags ao componente ACBrPosPrinter, para permitir o uso da impressão em Modo Página da Epson Esc/Pos O Modo página, permite criar um buffer de impressão na memória, que só é enviado para a Impressora, após o mesmo ser finalizado... Ou seja, usando as tags do ACBrPosPrinter, efetuamos as seguintes tarefas: Ativamos o modo página Definimos uma região de impressão a esquerda, Enviamos o comando de QRCode nessa região Definimos uma região de impressão a direita Enviamos o texto Lateral nessa região Finalizamos o modo página As novas Tags do ACBrPosPrinter são as seguintes: <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 Você pode verificar o uso dessas Tags no fonte ACBrNFeDANFeESCPOS.pas Veja na imagem abaixo, o resultado do teste efetuado no Demo, PosPrinterTeste. Observe como é interessante e curioso, o uso do Modo Página
  14. Olá a todos, Antes de mais nada, fiz a consulta no fórum para não ter problema de estar abrindo um tópico já existente; (Desculpe-me caso já exista) Bom vamos ao caso: Estou fazendo a impressão do extrato sat em uma Epson TM-T20; Configurei o tipo de extrato em Fortes. No meu CF-e tenho 60 Itens, mas na hora de imprimir o extrato imprimi até o item 037, demais itens, forma de pagamento e QRCode não chegam a imprimir. Simplesmente a impressora ativa o corte. Tentei olhar o fonte, fazer alguns testes mudar o tamanho da variável [TotalPaginaPixel] mas mesmo assim persistiu em cortar o extrato. Segue abaixo os arquivos para teste. Caso precisar de algo mais por favor me avise. Desde já agradeço pela ajuda. CFe-35150561099008000141599000016110001348291090-rec.xml
  15. Bom dia Pessoal, Já li alguns tópicos comentando sobre, mais gostaria de reforçar essa questão para ver se mais alguém passa por esse problema. Tenho várias ECFs do modelo Epson TM-T900F que com o Windows 10 perdem comunicação. Estou utilizando a porta de comunicação por USB, com o controle porta ativado e o SerialParams BAUD=115200 DATA=8 PARITY=N STOP=1 HANDSHAKE=DTR/DSR MAXBANDWIDTH=0 SENDBYTESCOUNT=0 SENDBYTESINTERVAL=0. O driver da USB instalei a ultima versão disponível no site da Epson 7.0.0.0. Desabilitei a opção de suspensão seletiva das USBs e nos USB roots no gerenciamento de dispositivos desabilitei para não desligar a usb para economizar energia. Mesmo assim ocorre frequentemente da ECF perder comunicação e para resolver só desligando a ECF ou a maquina. Em anexo deixo o ACBrlog.txt e as imagens das opções que estou desabilitando no Windows. Também habilitei o log da InterfaceEpson e deixo em anexo, no fim é possível ver que ela retorna 'Restore USB port Fail' acbrlog.txt eplog_07.txt
  16. Bom dia, Após atualização recente dos fontes, começamos a obter erro na função que retorna os dados da redução Z para impressoras Epson T900F. Fiz o teste da função com uma Bematech 4200 FI II e uma Daruma e ambas trouxeram corretamente os dados da última redução, sendo um problema retornado apenas pelo modelo da Epson. Gostaria de saber se alguém teve um problema similar com esse modelo de ECF. Fiz o teste pelo ECF Teste(Variáveis > Mapa Resumo > Dados da última Redução Z) , apenas acionado a função. Verifiquei também que o erro é apresentado a partir da revisão 14219 de 30/11 na unit ACBrECFEscECF. Em anexo log gerado pelo ECF. Desde já agradeço por possíveis sugestões para solução do problema, Att. Scheila acbrlog.txt
  17. Boa tarde, pessoal. Estou tentando instalar a impressora fiscal Epson TM-T900F, porém não consigo fazer reconhecer ela no ECF teste. Já atualizei o driver dela, utilizei o programa TMVirtualPortDriver para emular uma porta serial, ele cria mas não consigo fazer reconhecer no micro. Tenho windows 10 aqui, 64 bits. Alguém consegue me ajudar? Obrigado. Att Douglas Peretti
  18. Olá pessoal. Estou tentando utilizar o acbrMonitor com o Sat-A10 da Epson e estou encontrando algumas dificuldades. Fiz o procedimento padrão de ativação e instalação segundo o fabricante: Até aqui tudo bem, o problema acontece quando tento testar pelo acbrMonitor: Configurei o mesmo da seguinte forma: Pois bem. Consigo inicializar clicando no botão Inicializar, aparentemente inicializa: Arquivo de log: "11/11/17 09:57:38:181 - ACBrSAT.Inicializado" mas quando tento, ativar ou consultar o status a aplicação trava: No arquivo de log a informação: "11/11/17 09:59:18:123 - NumeroSessao: 508953 - Comando: AtivarSAT( 1, 03654119000176, 35 )" mas não obtenho resposta de retorno e simplesmente trava. Já copiei as dll para a pasta do windows, já fiz de tudo, mas nada até agora. Alguém já passou por isso ou tem alguma solução para que eu possa tentar resolver esse problema? Desde já agradeço.
  19. Estou imprimindo via ACBrExtratoESCPOS um extrato de venda SAT, na impressora Epson TM-T20 e o cliente reclamou que as linhas estavam sendo impressas muito "juntas". Alterei a propriedade espacoentrelinhas , tanto em ExtratoESCPOS.PosPrinter.EspacoEntreLinhas=5 como diretamente em .PosPrinter.EspacoEntreLinhas=5 e continuou. Alterei para 6, 10, 50, 200 e nada. Verificando o LOG (anexo) de impressão do ACBrPOSPRINTER, verifiquei que o comando de alteração de Espacamento entre linhas não era enviado. Como proceder para resolver esse caso ? impescpos.log
  20. Boa noite Recebemos para testes o SAT da Epson modelo A10, e vou tentar expor tudo o que foi necessário para habilitar o funcionamento/ativação do SAT da Epson modelo A10. Caso algum moderador ache que deve ser movido para área específica, sinta-se a vontade. Bom vamos lá: O resultado de nossos testes com esse equipamento, utilizando o exemplo do ACBr, SATTeste.exe (compilado com as fontes do dia 12/07/2017), e o programa de Ativação do Fabricante, em um computador com windows 7 profissional. Os procedimentos foram bem tranquilos, visto que ele é um SAT da GERTEC como ja foi exposto pelo colega @André Ferreira de Moraes. Instalação e ativação do SAT Epson A10: O manual com os processos pode ser obtido no endereço: https://goo.gl/a2Kkqz. O driver atualizado do produto está disponível no link: https://goo.gl/NCZDEg. Recomendamos efetuar o download do driver atualizado no link acima, pois tivemos dificuldade na ativação do mesmo, até que o suporte técnico nos informou que a versão que estava dentro do SAT era incompatível com o mesmo. Para a ativação foi utilizado o programa contido dentro da pasta Ativador dentro do SAT (Ativador SAT Setup.exe). Segue o ícone do programa após instalado no computador: Não irei detalhar passo a passo pois os mesmos estão descritos no manual do link acima. Aqui estão os dados para o SAT de Homologação: CNPJ Contribuinte: 03.654.119/0001-76 Código de Ativação SAT: “00000000”(8 digitos 0). IE: 000052619494 (Utilizado para emissão de CFe.xml) CNPJ Software House: 16.716.114/0001-72 Código de Ativação SAT: “00000000”(8 digitos 0) padrão de fábrica. Assinatura AC: SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT *Importante: todos os SATs de Homologação Epson usarão estes dados. Configuração do ACBr SATTeste.exe Para a comunicação foi utilizado a DLL contida dentro do SAT na pasta DllSAT, copiada para dentro do computador. Segue abaixo outras configurações utilizadas: Para associar assinatura: Clicar em Ativação > Associar Assinatura Configurações de rede utilizadas: Sobre a utilização do SAT Não tivemos dificuldade no uso. O tempo de envio de uma venda com três itens foi de 1,15 segundos, uma venda com trinta itens 1,16 segundos, foi cronometrado as venda com a conexão ETHE e não houve diferença em tempo significativa. Isso já era esperado, pois nenhum SAT faz o envio das vendas para Sefaz, de forma concomitante. Segue os comprovantes obtidos durante a comunicação: Tentei detalhar ao máximo a nossa experiência com esse equipamento para uso com o ACBr. Caso algum colega necessite que seja executado mais algum teste que nao foi detalhado entre em contato.
  21. A implementação para checar se a porta é uma DLL não estava funcionando (não reconhecia DLL1). Alterado para: else if (pos(copy(UPorta,1,3),'USB|DLL') > 0) then /// Amarildo Lacerda: correção Result := dtHook ACBrDevice.pas
  22. Alterado o comando de impressão de cheque que não estava imprimindo a palavra "centavos" no extenso do cheque. ACBrECFEpson.pas
  23. Temos um cliente que possui uma EPSON TM-T81 FBIII e o mesmo reporta que está tendo vários problemas. Analisando os logs do ecf, encontramos as seguintes entradas: -- 27/03 12:45:03:474 RX <- ACK = 6 -- 27/03 12:45:04:020 RI+ -- 27/03 12:45:04:020 Resposta Incompleta -- 27/03 12:45:04:020 Pacote Inv[225]lido, NACK enviado: [STX][128][ETX]0085 -- 27/03 12:45:04:347 RI- -- 27/03 12:45:04:472 RX <- [STX][129][16][NUL][FS][192][129][FS][FS][NUL][NUL][FS][ETX]0247 -- 27/03 13:00:36:961 RX <- ACK = 6 -- 27/03 13:00:37:834 RI+ -- 27/03 13:00:37:834 Resposta inválida. CheckSum da Resposta não está correto. -- 27/03 13:00:37:834 Pacote Inv[225]lido, NACK enviado: [STX][128][ETX]0085[STX][236][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][ETX]02A2 -- 27/03 13:00:37:943 RX <- [STX][236][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][ETX]02A2 -- 27/03 13:09:25:955 ----------------- ERRO ----------------- Erro retornado pela Impressora: Epson Erro: 0A26 - Mensagem promocional já impressa. ---------------------------------------- -- 27/03 13:09:28:607 Estado Os erros de checksum ocorrem várias vezes ao longo do dia e o erro da mensagem promocional após uma sequência de erros. Anexei uma parte do log com informações mais detalhadas. Gostaríamos da opinião de vocês, sobre o que pode estar ocasionando estes problemas. Desde já agradecemos a ajuda. Log_ACBr_20170328.TXT
  24. Boa tarde prezados, recentemente um cliente esteve reclamando de um erro que ocorre no PDV ao lançar serviços, então fui avaliar qual era o erro que ele estava dizendo e se trata de Erro: 0205 - Campo não opcional. Dessa forma, parti para a análise do código fonte para identificar o causador do problema, visto que ocorre apenas na impressora EPSON do cliente ao lançar serviços, tenho uma Daruma e consigo lançar normalmente, e não consegui ainda identificar o problema, realizei simulações de vendas com o ECF Teste e com o mesmo conclui normalmente o processo, embora aparentemente esteja igual a chamada do VendeItem(onde ocorre a mensagem de erro). Segue chamada do VendeItem: Minha chamada: DataM.ACBrECF1.VendeItem(DataM.ADQEstoqueCODBARRAS.AsString,DataM.ADQEstoquePRODUTO.AsString, TributacaoCupom, DataM.Qtde,DataM.ADQItemVendaECFVALORUNITARIO.Value, StrToFloatDef( DataM.VlDesconto,0 ), DataM.ADQItemVendaECFUN.AsString,'$', DataM.DescontoAcrescimo); No ECF Teste: Form1.ACBrECF1.VendeItem( edCodigo.Text, edDescricao.Text, edICMS.Text, StrToFloatDef( edQtd.Text, 0 ), StrToFloatDef( edPrecoUnita.Text,0 ), StrToFloatDef( edDesconto.Text,0 ), edUN.Text, Desc ); Estou quebrando a cabeça pra resolver isso, e provavelmente deve ser apenas alguma falta de atenção(deve ser a idade hehe), agradeço se algum colega conseguir me auxiliar nessa questão, estou anexando também o ACBrLog.txt para ajudar na solução. Desde já, agradeço. acbrlog.rar
  25. Pessoal bom dia! Estou começando o meu desenvolvimento para o Sat, antes li alguns tópicos sobre problemas na impressão. Quais modelos de equipamento SAT e impressora vocês usam e poderiam recomendar? Existe alguma lista de equipamentos homologados para o ACBR? Desde já muito obrigado, feliz 2017 para todos.
×
×
  • Create New...