ZXing  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Naruto
Virtual Machine Man
[Avatar]

Membro desde: 20/12/2007 10:21:07
Mensagens: 524
Offline

Boa noite, galera alguem sabe como usar o ZXing para escrever e ler QRcode no JSP ????

vlwwwww


Obrigado
[Email]
_Zell_
Debugger
[Avatar]

Membro desde: 21/07/2010 15:44:12
Mensagens: 66
Offline

Vou desenterrar o tópico e responder só para caso alguém encontre essa página via google. Afinal eu apanhei um monte pra descobrir como fazer essa joça. Não seria legal mais uma cambada apanhar também -.-


Então segue o código:


Espero ter ajudado.
Abraço!
_Zell_
Debugger
[Avatar]

Membro desde: 21/07/2010 15:44:12
Mensagens: 66
Offline

castrohenrique9
What is classpath?
[Avatar]

Membro desde: 25/09/2011 10:27:44
Mensagens: 8
Offline

e ai _Zell_, tudo blz?

jovem, preciso criar uma aplicação web para codificar e decodificar um qrCode.
pra fazer isso eu baixo as lib zxing.zip e qrcode.zip disponiveis no site da zxing e da sourceforge, né?!

após isso eu faço o que?
importo os .zip pro projeto?
o da zxing ainda estou baixando. a da sourceforge já baixei e vi que tem 2 .jar: qrcode.jar e qrcode-cui.jar.
eu só coloco os .jar?

desde ja muito obrigado por postar esses códigos.
vou começar os testes agora mesmo e volto a postar
_Zell_
Debugger
[Avatar]

Membro desde: 21/07/2010 15:44:12
Mensagens: 66
Offline

Olá castrohenrique9.

Bom o esquema é o seguinte. Você vai usar o qrcode (qrcode.jar) para fazer a leitura (decodificar) os QRCodes e usar o core do zxing para criar (codificar) QRCodes. O zxing é uma API feita para dispositivos móveis. Porém da pra usar o seu core para criar RQCodes com aplicações java desktop e Web.

Bom, para que tudo funcione corretamente é bem simples. Vou te explicar como tu prepara o projeto Web (JSP) para as implementações Web. Os passos a seguir é utilizando o Eclipse:

1. Crie o projeto web: File > New > Dynamic Web Project.
2. No projeto, jogue na pasta /WebContent/WEB-INF/lib/ o jar do qrcode (qrcode.jar).
3. Crie uma nova pasta no seu projeto (na raiz) chamada "zxing".
4. Baixe o código fonte da API zxing e pegue todos os fontes do CORE da API e jogue dentro da pasta "zxing" criada. No meu arquivo .zip com os fontes que baixei do zxing o core fica em ZXing-1.7.zip - zxing\core\src\. É o conteudo da pasta src que vai pra pasta "zxing" criada.
5. Vá nas propriedades de seu projeto e em seguida em Java Build Path. Vá para a aba Source, clique em Add Folder e selecione a pasta "zxing" criada. Isso vai dizer pro eclipse que essa pasta também deve considerar na compilação do projeto.

Depois disso, se você tiver feito tudo certo, podes criar um main e colocar o exemplo de código que eu postei ai que ele vai funcionar. Observe que o meu código é um main bem simples e desktop. Com base nele você começa as suas implementalções JSP (Web).

Se tiver mais alguma dúvida responde ai que eu tento sanar o quanto antes.

Espero ter ajudado! Boa sorte! Abraço!

castrohenrique9
What is classpath?
[Avatar]

Membro desde: 25/09/2011 10:27:44
Mensagens: 8
Offline

_Zell_ wrote:Olá castrohenrique9.

Bom o esquema é o seguinte. Você vai usar o qrcode (qrcode.jar) para fazer a leitura (decodificar) os QRCodes e usar o core do zxing para criar (codificar) QRCodes. O zxing é uma API feita para dispositivos móveis. Porém da pra usar o seu core para criar RQCodes com aplicações java desktop e Web.

Bom, para que tudo funcione corretamente é bem simples. Vou te explicar como tu prepara o projeto Web (JSP) para as implementações Web. Os passos a seguir é utilizando o Eclipse:

1. Crie o projeto web: File > New > Dynamic Web Project.
2. No projeto, jogue na pasta /WebContent/WEB-INF/lib/ o jar do qrcode (qrcode.jar).
3. Crie uma nova pasta no seu projeto (na raiz) chamada "zxing".
4. Baixe o código fonte da API zxing e pegue todos os fontes do CORE da API e jogue dentro da pasta "zxing" criada. No meu arquivo .zip com os fontes que baixei do zxing o core fica em ZXing-1.7.zip - zxing\core\src\. É o conteudo da pasta src que vai pra pasta "zxing" criada.
5. Vá nas propriedades de seu projeto e em seguida em Java Build Path. Vá para a aba Source, clique em Add Folder e selecione a pasta "zxing" criada. Isso vai dizer pro eclipse que essa pasta também deve considerar na compilação do projeto.

Depois disso, se você tiver feito tudo certo, podes criar um main e colocar o exemplo de código que eu postei ai que ele vai funcionar. Observe que o meu código é um main bem simples e desktop. Com base nele você começa as suas implementalções JSP (Web).

Se tiver mais alguma dúvida responde ai que eu tento sanar o quanto antes.

Espero ter ajudado! Boa sorte! Abraço!



vou testar agora.
estou usando jsf2 com primefaces.
castrohenrique9
What is classpath?
[Avatar]

Membro desde: 25/09/2011 10:27:44
Mensagens: 8
Offline

_Zell_
fiz o teste e funcionou, porém, para isso foi preciso fazer algumas adaptações.

de acordo com seu código, na linha 27 da classe Exemplo, tem um "new MyImage", daí fiz o import dela.
na linha 70 o projeto não conseguia encontrar a classe MatrixToImageWriter, e realmente não havia a mesma na pasta CORE do zXing.zip que baixei.
no que baixei ela fica na pasta \ZXing-1.7\zxing\javase\src\com\google\zxing\client\j2se. Assim, criei o pacote client.j2se e copiei a classe pra ele.
dai funcionou blz.

no site da refinery encontrei SKD que também funciona, muito mais simples, basta copiar o .jar pra pasta lib e no código, faz o import do pacote e instancia um tipo QRCode.
só que não é Open Source e ao gerar, as vezes eles colocam uma marca d'agua com uma frase.
http://www.businessrefinery.com/products/barcode/barcodes/java-qr-code.html.

no site http://www.primefaces.org/showcase-labs/ui/dynamicImage.jsf também tem exemplos.

....
agora você sabe como faço pra ler esse qrCode com, por exemplo, uma WebCam?
no caso de já possuir o qrCode impresso e querer ler o mesmo com auxílio de JMF (Java Media Framework).

This message was edited 2 times. Last update was at 28/09/2011 22:25:55

_Zell_
Debugger
[Avatar]

Membro desde: 21/07/2010 15:44:12
Mensagens: 66
Offline

Vix, é vero, eu esqueci de falar da classe MatrixToImageWriter =P A minha classe MatrixToImageWriter eu reescrevi ela completamente, porque eu to fazendo a minha aplicação para Android. Mas que bom que apesar de tudo conseguisse fazer funca a budega xD

Bacana essa API da Refinery, é bem completa. O chato mesmo é esse esquema de código fechado, pois, pelo menos eu, as vezes quero custumizar algumas coisas e gosto de mexer nas classes da API. Fora que pra usar o SDK da Refinery em aplicações comerciais teríamos que comprar a licença. Como eu sou fã de APIs open source e totalmente gratuitas os exemplos que eu posto aqui no GUJ eu só utilizo APIs free e open source =)

Bom, para fazer a leitura de QRcode via WebCam utilizando JMF não é muito difícil. A API qrcode faz isso e forcene um exemplo bem legal. É claro, o exemplo dos desenvolvedores da API é um exemplo a grosso modo, apenas pra mostrar como funciona. Então você pega ele e customiza como for melhor para a sua aplicação. Lembrando também que esse exemplo é de uma aplicação Desktop e não Web. O exemplo com JMF está no seu arquivo .zip do qrcode: qrcode.zip - qrcode\example\jmf\ .
Lá tem uma classe chamada jmfexample, é essa classe que contem o método main. Executa essa classe que ela vai abrir um exemplo que lé QRCodes de sua WabCam. Mas é claro, para que ela funcione corretamente você deve ter o JMF instalado e devidamente configurado em seu projeto, se não nem compila.
Eu tive alguns problemas no inicio porque a WebCam do meu note é meio "diferente", então tive que mexer na classe que carrega a minha WebCam para funcionar. Se você tiver algum problema nisso também posta aqui, quem sabe seja o mesmo problema que eu tive. Assim no que eu puder ajudar eu ajudo.

É isso ai. Good Luck!
Abraço!
castrohenrique9
What is classpath?
[Avatar]

Membro desde: 25/09/2011 10:27:44
Mensagens: 8
Offline

estou tentando testar a JFM pra ler o qrCode, só que ao executar o projeto aparece uma mensagem falando que não há câmera conectada.

sabe como posso resolver isso?
_Zell_
Debugger
[Avatar]

Membro desde: 21/07/2010 15:44:12
Mensagens: 66
Offline

Sei, eu tive esse mesmo problema. Só que pra arrumar isso eu mexi nas classes. Agora eu não lembro tudo o que eu fiz nelas pra te explica, ainda mais que ando meio sem tempo (To fazendo TCC -.-). Faz assim... me manda um e-mail que eu te passo as minhas classes funcionando certinho.

Meu e-mail: zell.ruskea@gmail.com

Abraço! o/
castrohenrique9
What is classpath?
[Avatar]

Membro desde: 25/09/2011 10:27:44
Mensagens: 8
Offline

te adicionei no gtalk. manda o email
castrohenrique9

meu tcc é o q estou fazendo com qrCode.
cybernet
Entusiasta Java

Membro desde: 17/08/2006 08:38:14
Mensagens: 23
Offline

aproveitando o topico, queria tirar uma duvida referente ao QR Code

O problema é o seguinte, seguindo o exemplo acima, eu coloco o texto e coloco um caractere de quebra de linha \n, ao ler o qrcode gerado, ele não exibe as linhas acima do \n, somente a ultima. Exemplo



Ao visualizar só aparece o seguinte

Nova linha

Já tentei usando \n <br> e até mesmo o codigo ASCII e não da certo, só exibe a ultima linha. Necessito exibir as informações em varias linhas

Desde já agradeço a ajuda
castrohenrique9
What is classpath?
[Avatar]

Membro desde: 25/09/2011 10:27:44
Mensagens: 8
Offline

jovem,

até hoje tenho problemas com a leitura do qrCode co webCam.

alguma dica??

preciso com urgência.
castrohenrique9
What is classpath?
[Avatar]

Membro desde: 25/09/2011 10:27:44
Mensagens: 8
Offline

creio q o qrCode não identifica o "\n"
regismagnus
Smalltalk

Membro desde: 14/09/2009 15:44:33
Mensagens: 3
Offline

Ola. Esta tentado executar seu código, mas obtenho erro de tipos diferentes, ocorrido na linha 61 da classe Exemplo. O write retorna um ByteMatrix, e a variavel matrix é do tipo BitMatrix. Como posso fazer para contornar este problema?
Vlw
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team