24 de jun. de 2015

Impressão de QR Code MP-2500 TH

Bom dia galera,

Ultimamente ando num projeto de criação de uma camada para impressão na Bematech MP-2500 TH e passei por um problema para impressão de QRCode no formato que deve ser impresso nos cupons do SAT, utilizando a dll mp2032.dll.
Com o código gerado pela função de impressão de QrCode da própria dll, depois de um determinado número de caracteres não conseguia mais ler pelos aplicativos.





Passei um bom tempo fazendo testes e tentando contato com o suporte ao desenvolvedor da Bematech (que por sinal está bem complicado rsrs), mas finalmente consegui e vou abaixo a forma como fiz a impressão e testei o código em aplicativos do celular e deu certo.

Procedure ImprimirQrCode();
var
  Arq : TextFile;
  cCaracter, Linha : AnsiString;
  I, iTam1, iTam2 : integer;
begin
  AssignFile(Arq, 'COM1');
  Rewrite(Arq);
  Writeln(Arq, #27'@'#29#249#32#48);

  for J := 1 to length(Linha) do
    cCaracter := cCaracter + AnsiChar(chr(Ord(Linha[J])));

  if (length(Linha) > 255) then
  begin
    iTam1 := length(Linha) mod 255;
    iTam2 := length(Linha) div 255;
  end
  else
  begin
    iTam1 := length(Linha);
    iTam2 := 0;
  end;
  Writeln(Arq, #27+ #97 +#49 + #1 + #29 + #107 + #81 + #0 + #0 + #4 + #2 + AnsiChar(chr(iTam1)) + AnsiChar(chr(iTam2)) + cCaracter);
  CloseFile(Arq);
end;

Nenhum comentário: