Para crear la imagen QR utilizo el componente TDelphiZXingQRCode
Lo puedes descargar en
https://github.com/foxitsoftware/DelphiZXingQRCode
Luego hice un procedimiento que me devuelve un TBitmap del mismo
Código Delphi
[-]
procedure CrearCodigoQR(Bitmap: TBitmap; s: string; Factor: integer = 1);
var
QRCode : TDelphiZXingQRCode;
Row, Column : integer;
begin
QRCode := TDelphiZXingQRCode.Create;
try
QRCode.Data := s;
QRCode.Encoding := qrAuto;
QRCode.QuietZone := 4;
Bitmap.Height := QRCode.Rows * Factor;
Bitmap.Width := QRCode.Columns * Factor;
for Row := 0 to QRCode.Rows - 1 do
begin
for Column := 0 to QRCode.Columns - 1 do
begin
if (QRCode.IsBlack[Row, Column]) then
Bitmap.Canvas.Brush.Color := clBlack
else
Bitmap.Canvas.Brush.Color := clWhite;
Bitmap.Canvas.FillRect(Classes.Rect((Factor * Column), (Factor * Row), (Factor * Column) + Factor, (Factor * Row) + Factor));
end;
end;
finally
QRCode.Free;
end;
Y lo utilizo para la imagen que voy a imprimir.
Código Delphi
[-]
[...]
Imagen := TImage.Create(nil);
try
CrearCodigoQR(Imagen.Picture.Bitmap, xCabecera.FieldByName('SFV_CODIGO_RESPUESTA_RAPIDA').AsString, 3);
TfrPictureView(View).Picture.Assign(Imagen.Picture);
finally
Imagen.Free;
end;
[...]