Gerador de QR Codes em Java: biblioteca ZXing (Zebra Crossing)

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Geração de QR Codes em Java com ZXing (Zebra Crossing)

\n\n

Os QR Codes se tornaram parte essencial da web moderna e dos aplicativos móveis. Eles permitem transmitir rapidamente links, dados de contato, informações textuais e muito mais. No mundo Java, uma das bibliotecas mais populares e estáveis para trabalhar com QR Codes é a ZXing (Zebra Crossing).

\n\n

Neste artigo, vamos detalhar como conectar o ZXing ao seu projeto, criar um QR Code simples, configurar sua aparência e salvá-lo em um arquivo. O material será útil tanto para iniciantes quanto para desenvolvedores experientes que desejam adicionar funcionalidade de geração de QR Codes aos seus aplicativos Java.

\n\n

O que é ZXing?

\n\n

ZXing (pronuncia-se "zebra crossing") é uma biblioteca open-source para processamento de códigos de barras unidimensionais e bidimensionais. Escrita em Java, ela suporta diversos formatos: QR Code, Data Matrix, Aztec, PDF417 e outros. Principais recursos:

\n\n
    \n
  • Geração (criação) de QR Codes a partir de texto, URL, contatos, etc.
  • \n
  • Leitura (decodificação) de QR Codes a partir de imagens.
  • \n
  • Configuração de cor, tamanho e nível de correção de erros.
  • \n
  • Saída em vários formatos gráficos (PNG, JPEG, SVG).
  • \n
  • Suporte para Java SE, Android, bem como outras linguagens JVM (Kotlin, Scala).
  • \n
\n\n

A biblioteca é ativamente mantida pela comunidade e usada em milhares de projetos em todo o mundo.

\n\n

Conectando o ZXing ao projeto

\n\n

A maneira mais simples de adicionar o ZXing ao seu projeto é usar o sistema de build Maven ou Gradle. Se você usa Maven, adicione a seguinte dependência ao arquivo pom.xml:

\n\n
<dependency>\n    <groupId>com.google.zxing</groupId>\n    <artifactId>core</artifactId>\n    <version>3.5.3</version>\n</dependency>\n<dependency>\n    <groupId>com.google.zxing</groupId>\n    <artifactId>javase</artifactId>\n    <version>3.5.3</version>\n</dependency>\n
\n\n

Para Gradle (build.gradle):

\n\n
implementation 'com.google.zxing:core:3.5.3'\nimplementation 'com.google.zxing:javase:3.5.3'\n
\n\n

O módulo core contém as classes principais para trabalhar com códigos, e o javase contém utilitários auxiliares para Java SE (por exemplo, para trabalhar com imagens).

\n\n

Criação de um QR Code simples

\n\n

Vamos considerar um exemplo básico: geração de um QR Code contendo a string de texto "Hello, PythonLib!".

\n\n
import com.google.zxing.BarcodeFormat;\nimport com.google.zxing.WriterException;\nimport com.google.zxing.common.BitMatrix;\nimport com.google.zxing.qrcode.QRCodeWriter;\n\nimport javax.imageio.ImageIO;\nimport java.awt.image.BufferedImage;\nimport java.io.File;\nimport java.io.IOException;\n\npublic class QRCodeGenerator {\n    public static void main(String[] args) {\n        String text = "Hello, PythonLib!";\n        int width = 300;\n        int height = 300;\n\n        QRCodeWriter qrCodeWriter = new QRCodeWriter();\n        try {\n            BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);\n\n            BufferedImage qrImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);\n            for (int x = 0; x < width; x++) {\n                for (int y = 0; y < height; y++) {\n                    qrImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);\n                }\n            }\n\n            File outputFile = new File("qrcode.png");\n            ImageIO.write(qrImage, "png", outputFile);\n            System.out.println("QR Code salvo no arquivo: " + outputFile.getAbsolutePath());\n\n        } catch (WriterException | IOException e) {\n            e.printStackTrace();\n        }\n    }\n}\n
\n\n

Este código cria um QR Code preto e branco de 300x300 pixels e o salva no arquivo qrcode.png.

\n\n

Con

Recommendations