由于项目需要,最近找了不少关于二维码生成的方法。有zxing,有一些dll,OCX之类的。最后在git上找到了pxQRcode这个项目。
下载pxQRcode.pas后使用demo中的方法,可以生成二维码,但是,手机不能识别。研究了半天,做如下改动:
第23行:
QR_DEFAULT_MASK = 2;
改为:
QR_DEFAULT_MASK = 0;
就可以了。
我是用在打印里面的,使用的是QuickReport
使用方法:
新建一个QRimage1:TQRImage,QRLabel1:TQRLabel
procedure TFormPrint.FormShow(Sender: TObject); var ms: TMemoryStream; s2: string; i: Integer; begin ms := TMemoryStream.Create; try s2 := QRCode; QRLabel1.Caption:=s2; CreateQRCodeBMP(s2, ms, QR_ECLEVEL_H, 10); ms.Position := 0; QRImage1.Picture.Bitmap.LoadFromStream(ms); finally ms.Free; end; end;