Ir para conteúdo
  • Cadastre-se

dev botao

Impressão QRCode


  • Este tópico foi criado há 2807 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Estou tentando imprimir QRCode por comunicação direta em uma Daruma DR700, mas não estou obtendo sucesso.

Estou utilizando java, fiz assim:


 

String s = "StringParaImpressaoQRCode";

int iQtdBytes = s.length();
int bMenos = iQtdBytes >> 8;
int bMais = (iQtdBytes & 255) + 2

byte[] qrCode = {(byte) 27,
    (byte) 129,
    (byte) bMais,
    (byte) bMenos,
    (byte) 0, // largura modulo
    (byte) 0}; //nivel correcao

String qrCodeFinal = new String(qrCode) + s;

Mas é impresso a String do QRCode e não a imagem dele.

Não é problema com a impressora, pois pela DLL da daruma o QRCode imprime normalmente.

Também não é problema a forma que faço a comunicação direta, pois consigo imprimir negrito, expandido, código de barras...

Por exemplo, código de barras imprimo assim pela comunicação direta, e sai perfeitamente:
 

String s = "StringParaCodBarra";

int largura = 3;
int altura = 70;
int mostrarCod = 0;

byte[] codBarra = {27,
    98,
    5,
    (byte) largura,
    (byte) altura,
    (byte) mostrarCod};

byte[] fimCodBarra = {00};

String stringCodBarra = new String(codBarra) + s + new String(fimCodBarra);

O que estou fazendo de errado na impressão do QRCode?

 

Editado por Rodrigo1895
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde

aqui são tratados componentes para Delphi/Lazarus!

para seu problema sugiro procurar a empresa que fornece a impressora para maiores esclarecimento e ajuda!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
14 horas atrás, Rodrigo1895 disse:

Entrei em contato, mas eles não souberam me dizer como faço em java sem utilizar a DLL...

Vish nem o fabricante?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Veja como foi feito em Pascal... pode lhe ajudar em uma tradução para Java

https://svn.code.sf.net/p/acbr/code/trunk2/Fontes/ACBrSerial/ACBrEscDaruma.pas

procure por: "function TACBrEscDaruma.ComandoQrCode"

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Daniel Simoes e Juliomar Marchetti

Já olhei este exemplo e um em C# também.

Fiz assim em java:
 

String s = "StringdoQRCode";

int iQtdBytes = s.length();
int bMenos = iQtdBytes >> 8;
int bMais = (iQtdBytes & 255) + 2;

try {
   FileWriter out = new FileWriter("COM3");
   out.write(27); //0x1B
   out.write(129); //0x81
   out.write(bMais);
   out.write(bMenos);
   out.write(5); //0x005
   out.write(0); //0x000
   out.write(s);
    out.close();
} catch (IOException e) {
   e.printStackTrace();
}

// Tentei assim também:

try {
   FileWriter out = new FileWriter("COM3");
   out.write(0x1B);
   out.write(0x81);
   out.write(bMais);
   out.write(bMenos);
   out.write(0x005);
   out.write(0x000);
   out.write(s);
    out.close();
} catch (IOException e) {
   e.printStackTrace();
}

// E assim:

char[] qrCode = {27,
         (char) 129,
         (char) bMais,
         (char) bMenos,
         (char) 5,
         (char) 0};

String qrCodeFinal = new String(qrCode) + s 

Mas o QRCode não é impresso, o que sai impresso é a String do QRCode.

Pela DLL o QRCode funciona, então não é problema na impressora.

E pela comunicação direta consigo imprimir negrito, expandido, código de barras, etc. Só QRCode que não deu certo.

Entrei em contato com o suporte da Daruma.

Disseram que eles só tem exemplo em Delphi e C#, não conseguiram me ajudar.

 

 

Editado por Rodrigo1895
Link para o comentário
Compartilhar em outros sites

16 minutos atrás, Daniel Simoes disse:

tente declarar os tipos como "byte" e não "int"

Tentei fazer assim:
 

byte iQtdBytes = (byte) qrCodeString.length();
byte bMenos = (byte) (iQtdBytes >> 8);
byte bMais = (byte) ((iQtdBytes & 255) + 2);

byte[] qrCode = {27,
   (byte) 129,
   (byte) bMais,
   (byte) bMenos,
   (byte) 5,
   (byte) 0};

return new String(qrCode) + qrCodeString;

 

Mas não deu...

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2807 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...