Question

J'ai TCPDF installé dans CakePHP 1.3 et je l'utilise pour générer un PDF d'un code QR. Il est une fonction très simple qui crée une page de taille A9, deux chaînes et un code QR. Le code QR est une url simple ( 'example.com/12345'.).

Je peux charger la page dans un navigateur (Safari en utilisant il est construit dans le lecteur de PDF.) Et chaque fois que je le recharger, le code QR change légèrement. Les dimensions du module sont les mêmes, mais les éléments de données changent considérablement. J'utilise le réglage de la redondance des données « L ». La chaîne est exactement le même chaque appel, mais les changements de QR. Après avoir vu un certain nombre de rechargements Je crois que les cycles à travers seulement 3 ou 4 variations.

Maintenant, voici la partie vraiment super, il scanne correctement. Chaque permutation des résultats de QR exactement de la même URL dans le QR Reader (i-nigma sur un iPhone4)

Toutes les idées? Est-ce que je fais ou manque quelque chose vraiment stupide et évident? Merci à l'avance!

Était-ce utile?

La solution

Il semble que la bibliothèque de génération Code QR utilisée par TCPDF utilise une méthode légèrement « paresseux » de créer le code QR. Il choisit au hasard de l'un des motifs 8 « masque » pour voir si elle rend le code mieux. Si elle répond à certains critères, il utilise le masque choisi au hasard. Cela se traduit par éventuellement différents codes QR à chaque fois.

Apparemment, Google utilise un meilleur algorithme pour choisir le masque. Probablement vérifie tous les masques et choisit le meilleur. Cela aboutirait à un résultat prévisible au lieu d'un choisi au hasard.

Je vais appeler Google Chart API pour récupérer un PNG, puis placez dans mon PDF au lieu d'utiliser le générateur intégré QR.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top