All Tools / Blog / Como Gerar um QR Code (Grátis)

Como Gerar um QR Code (Grátis)

3 min read

QR codes codificam texto em um padrão 2D que câmeras de celular leem sem nenhum aplicativo. A maioria das pessoas os usa para URLs, mas funcionam para credenciais WiFi, cartões de contato, endereços de e-mail, números de telefone e texto simples.

No navegador

Cole um texto ou URL no gerador de QR code e baixe o resultado. A ferramenta roda inteiramente no navegador — nada é enviado a um servidor.

Para impressão: baixe em 1000×1000 px ou maior. Para uso digital (site, apresentação): 300×300 px é suficiente.

O que você pode codificar

Tipo de conteúdo Formato para inserir
URL https://example.com
Texto simples Qualquer string de texto
E-mail mailto:usuario@exemplo.com
Número de telefone tel:+5511999999999
SMS SMSTO:+5511999999999:Sua mensagem
WiFi WIFI:T:WPA;S:NomeDaRede;P:senha;;
Localização geo:-23.5505,-46.6333
vCard (contato) BEGIN:VCARD...END:VCARD

QR codes de WiFi são os mais práticos — os convidados se conectam sem precisar ler a senha em voz alta.

Python: qrcode

pip install qrcode[pil]
import qrcode

# URL básica
qr = qrcode.make("https://example.com")
qr.save("qr.png")

Com correção de erro e tamanho personalizados:

import qrcode
from qrcode.constants import ERROR_CORRECT_H

qr = qrcode.QRCode(
    version=None,                       # tamanho automático
    error_correction=ERROR_CORRECT_H,   # recuperação de 30% de dano
    box_size=10,                        # pixels por módulo
    border=4,                           # largura da zona silenciosa (módulos)
)
qr.add_data("https://example.com")
qr.make(fit=True)

img = qr.make_image(fill_color="black", back_color="white")
img.save("qr.png")

Os níveis de correção de erro controlam quanto do código pode ser danificado e ainda ser lido:

Nível Dano máximo Quando usar
L 7% Telas digitais limpas
M 15% Uso geral
Q 25% Superfícies levemente desgastadas
H 30% Impressão em objetos físicos

JavaScript: qrcode

npm install qrcode
const QRCode = require('qrcode');

// Salvar como arquivo PNG
QRCode.toFile('qr.png', 'https://example.com', { width: 300 }, err => {
    if (err) throw err;
});

// Obter como data URL (para embutir em HTML/e-mail)
const url = await QRCode.toDataURL('https://example.com', { width: 300 });
// url = "data:image/png;base64,..."

// Obter como string SVG (melhor para impressão)
const svg = await QRCode.toString('https://example.com', { type: 'svg' });
require('fs').writeFileSync('qr.svg', svg);

Use SVG para materiais impressos — escala para qualquer tamanho sem pixelação.

Formato WiFi QR

O formato completo:

WIFI:T:WPA;S:MinhaRede;P:MinhaSenha123;;

Campos:

  • T: Tipo de segurança (WPA, WEP ou vazio para redes abertas)
  • S: SSID (nome da rede, sensível a maiúsculas)
  • P: Senha
  • H:true opcional — adicione se a rede estiver oculta

As câmeras de Android e iOS leem isso nativamente. Nenhum aplicativo necessário.

Tamanho do QR code e distância de leitura

Um código muito pequeno não lê com confiança em má iluminação ou em ângulo.

Tamanho impresso Distância confiável de leitura
2 × 2 cm Até 20 cm
4 × 4 cm Até 40 cm
8 × 8 cm Até 80 cm
20 × 20 cm Até 2 m

A regra geral: a distância de leitura é cerca de 10× o tamanho impresso. Um QR code em um pôster precisa ser muito maior que um em um cartão de visita.

Pontos principais

  • URLs, credenciais WiFi, cartões de contato e texto simples se codificam em QR codes padrão.
  • Use saída SVG para materiais impressos — escala sem pixelação.
  • Correção de erro H (30% de recuperação) para impressão física; L para uso só digital.
  • Formato WiFi: WIFI:T:WPA;S:NomeDaRede;P:senha;;
  • A distância de leitura é aproximadamente 10× o tamanho do código impresso.