2010-08-26 22 views
5

CakePHP 1.3'te TCPDF yüklü var ve bir QR kodu oluşturmak için kullanıyorum. A9 boyutlu bir sayfa, iki dizgi ve bir QR kodu oluşturan çok basit bir işlev. QR kodu basit bir URL içindir (yani 'example.com/12345').TCPDF QR Kodu her zaman farklıdır

Sayfayı bir tarayıcıya yükleyebilirim (PDF okuyucuda yerleşik olanağını kullanarak Safari.) Ve her yeniden yüklediğimde QR kodu biraz değişiyor. Modül boyutları aynıdır ancak veri elemanları önemli ölçüde değişir. "L" veri yedekleme ayarını kullanıyorum. Dize her aramada aynıdır, ancak QR değişir. Birkaç yeniden yüklemeyi izledikten sonra, bunun sadece 3 veya 4 varyasyondan geçtiğine inanıyorum.

Şimdi burada düzgün tarandığını, gerçekten büyük bir parçası. QR'nin her bir permütasyonu, QR Reader'da tam olarak aynı url ile sonuçlanır (iPhone4 üzerindeki i-Nigma)

Herhangi bir fikir? Gerçekten aptal ve açık bir şey mi yapıyorum ya da eksik miyim? Şimdiden teşekkürler!

+0

Güncelleme: PHP 5.2.5 çalıştıran bir Win 2K3 sisteminde barındırılıyor. Bununla ilgili olabileceğinden şüphelenmeye başladım. Bir TCPDF destek forumunda benzer bir şeyden bahsettim. Sunucularında demo betiği vardı ve aynı QR modellerini veriyordu. Ancak, diğer birçok sunucuda çalışan aynı kod iyi çalışır. –

cevap

4

TCPDF tarafından kullanılan QR Kodu oluşturma kitaplığının, QR kodunu oluşturma konusunda hafif 'tembel' yöntemi kullandığı gözüküyor. Kodu daha iyi hale getirip getirmediğini görmek için rasgele 8 'maske' desenlerinden birini seçer. Belli bir kriteri karşılarsa, rastgele seçilen maskeyi kullanır. Bu muhtemelen her defasında farklı QR kodları ile sonuçlanır.

Anlaşılan Google maskesini seçmek için daha iyi bir algoritma kullanır. Muhtemelen tüm maskeleri kontrol eder ve en iyisini seçer. Bu rastgele seçilen bir yerine öngörülebilir bir sonuçla sonuçlanacaktır.

Bir PNG'yi almak için Google Grafik API'sını arayacağım ve bunu yerleşik QR üretecini kullanmak yerine PDF'ye yerleştireceğim.

+0

TcPDF'den emin değilim, ancak * bu davranışı değiştirebilmeniz gerekir. Jeneratörün dahili olarak en iyi uygulaması, sekiz QR kodunun tamamını oluşturmak ve nihai ceza puanına (ISO standardında tanımlanan) dayanarak hangisinin en iyisi olduğuna karar vermektir. Bu, TcPDF ile mümkün değilse, PHP QR Kodunu (http://phpqrcode.sourceforge.net/) kullanabilir ve TcPDF'den kullanmak için buradaki bağlamayı kullanabilirsiniz. – Bell

+0

Tüm durumlarda Google'ın istek ve kaprislerine bağımlı olmak istemezsiniz. – Bell