由於項目需要,最近找了不少關於二維碼生成的方法。有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;