Por padrão, o QR code consiste em módulos quadrados (pontos). Na versão nova do FastReport .NET, foi adicionada a personalização.
Vejamos como substituir os módulos padrão por figuras decorativas. Depois, vamos analisar as propriedades necessárias para a configuração, que são apenas algumas opções para um resultado único.
Para alterar a aparência dos módulos, são usadas três propriedades: Shape, Angle e UseThinModules. Vejamos cada um delas.

Propriedade Shape do QR code
A primeira e principal propriedade é Shape. Ele determina o formato dos módulos. Agora estão disponíveis 10 tipos de figuras:
1. Rectangle – tipo padrão de QR code

2. Circle

3. Diamond

4. Rounded Square

5. PillHorizontal

6. PillVertical

7. Plus

8. Hexagon

9. Star

10. Snowflake

Os exemplos de QR codes com todas as figuras decorativas suportadas estão disponíveis na segunda página do relatório de demonstração Qr-Codes.frx.
Propriedade Angle do QR code
Esta propriedade define o ângulo de rotação (em graus) para cada módulo do QR code. Isso funciona apenas para as seguintes figuras: Hexagon, Star e Snowflake. Para outras figuras, esta propriedade é ignorada.
Propriedade UseThinModules do QR code
Propriedade UseThinModules controla a densidade visual dos módulos (pontos) no QR code. Quando UseThinModules = false (por padrão), os módulos ocupam todo o espaço disponível em sua célula — os pontos se tocam sem deixar espaços, e o QR code parece sólido e denso. Quando UseThinModules = true o tamanho dos módulos é reduzido e aparecem espaços visíveis entre eles, que cria efeito de “grade” ou “padrão de pontos”.
O que influencia a leitura do QR code
-
FinderPatterns — grandes quadrados nos cantos do QR code que ajudam o scanner a determinar a posição, o tamanho e a orientação do código. Eles NÃO são alterados ao usar a propriedade UseThinModules. Sempre permanecem em tamanho real para que o scanner possa reconhecer o código de forma confiável.
-
Módulos decorativos melhoram a aparência do QR code, mas podem afetar a confiabilidade da leitura. Nem todos os scanners reconhecem bem os módulos com formas personalizadas – os módulos quadrados padrão são suportados por todos os scanners, enquanto formas decorativas (especialmente as complexas, como Snowflake e Star) podem ser mal lidas por modelos antigos de scanners e alguns aplicativos móveis. Sempre teste a leitura de código em diferentes dispositivos.
-
Para uma leitura confiável, é necessário um contraste nítido entre os módulos e o fundo. Módulos pretos sobre fundo branco ou azul-escuro sobre fundo cinza-claro funcionam bem. Módulos cinza-claro sobre fundo branco ou módulos coloridos sobre fundo colorido com baixo contraste são mal lidos. Lembre-se da regra: os módulos devem ser significativamente mais escuros que o fundo.
-
As figuras Snowflake e Star têm geometria complexa com pequenos detalhes. Quando o tamanho é pequeno, esses detalhes se misturam e o scanner não consegue reconhecer os módulos corretamente. Use Snowflake e Star para códigos grandes. Para códigos pequenos, escolha Square, Circle ou RoundedSquare. Use a propriedade UseThinModules com cuidado – os espaços entre os módulos podem prejudicar a leitura em tamanhos pequenos.
-
O nível de correção de erros (propriedade ErrorCorrection) também afeta a confiabilidade. Para módulos decorativos, recomenda-se o nível Q ou H. Lembre-se de que um alto nível de correção aumentará o tamanho do código, mas melhorará a confiabilidade da leitura.
Vamos resumir. Os módulos decorativos são o equilíbrio entre beleza e funcionalidade. Quanto mais complexa a figura, maiores serão as exigências em relação ao tamanho, contraste e qualidade de impressão. Também é importante lembrar que você sempre precisa testar o QR code finalizado antes do uso em massa.