Je vous propose un code pour générer le QrCode dans un rapport RDLC sans avoir à le stocker dans un endroit précis
Pour Cela on utilise l'outil QrCode.net , on insére le code suivant;
Au niveau du RDLC :
on insére une image
on met dans le mimetype : image/gif
dans Source: Database
dans value: = System.Convert.FromBase64String(Parameters!QR_IMG.Value)
pour plus de détails laissez un commentaire.
Pour Cela on utilise l'outil QrCode.net , on insére le code suivant;
ReportDataSource rds = new ReportDataSource();
rds = new ReportDataSource("MyDataSet", list);
Bitmap BitmapCaptcha = GenerateQrCode("HelloWord", Brushes.Black, Brushes.White, 200);
MemoryStream ms = new MemoryStream();
BitmapCaptcha.Save(ms, ImageFormat.Gif);
var base64Data = Convert.ToBase64String(ms.ToArray());
string QR_IMG = base64Data;
ReportParameter parameter = new ReportParameter("QR_IMG", QR_IMG, true);
ReportViewer1.LocalReport.EnableExternalImages = true;
ReportViewer1.LocalReport.ReportPath = Page.Server.MapPath("~/rdlc/Fiche.rdlc");
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { parameter });
ReportViewer1.LocalReport.DataSources.Add(rds);
public static Bitmap GenerateQrCode(string url, Brush darkColor, Brush lightColor, int size)
{
var encoder = new QrEncoder(ErrorCorrectionLevel.L);
var code = encoder.Encode(url);
var renderer = new GraphicsRenderer(new FixedCodeSize(size, QuietZoneModules.Zero), darkColor, lightColor);
using (var ms = new MemoryStream())
{
renderer.WriteToStream(code.Matrix, ImageFormat.Png, ms);
return new Bitmap(ms);
}
}
Au niveau du RDLC :
on insére une image
on met dans le mimetype : image/gif
dans Source: Database
dans value: = System.Convert.FromBase64String(Parameters!QR_IMG.Value)
pour plus de détails laissez un commentaire.
Aucun commentaire:
Enregistrer un commentaire