Libraries Required.
Install these packages into project file or service file using NuGet Package manager.
using System;using System.Drawing.Imaging;
using System.IO;
using System.Web;
using System.Web.Mvc;
using ZXing;
using ZXing.Common;
//Helper class file for generate QR code
namespace QRHelper
{
public static class QRHelper
{
public static IHtmlString GenerateQrCode(this HtmlHelper html, string Content, string alt = "QR code", int height = 150, int width = 150, int margin = 0)
{
var qrWriter = new BarcodeWriter();
qrWriter.Format = BarcodeFormat.QR_CODE;
qrWriter.Options = new EncodingOptions() { Height = height, Width = width, Margin = margin };
using (var q = qrWriter.Write(Content))
{
using (var ms = new MemoryStream())
{
q.Save(ms, ImageFormat.Png);
var img = new TagBuilder("img");
img.Attributes.Add("src", String.Format("data:image/png;base64,{0}", Convert.ToBase64String(ms.ToArray())));
img.Attributes.Add("alt", alt);
return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
}
}
}
public static IHtmlString GenerateQrCode(string Content, string alt = "QR code", int height = 150, int width = 150, int margin = 0)
{
var qrWriter = new BarcodeWriter();
qrWriter.Format = BarcodeFormat.QR_CODE;
qrWriter.Options = new EncodingOptions() { Height = height, Width = width, Margin = margin };
using (var q = qrWriter.Write(Content))
{
using (var ms = new MemoryStream())
{
q.Save(ms, ImageFormat.Png);
var img = new TagBuilder("img");
img.Attributes.Add("src", String.Format("data:image/png;base64,{0}", Convert.ToBase64String(ms.ToArray())));
img.Attributes.Add("alt", alt);
return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
}
}
}
}
}
----------------------------------------------View Part(CShtml page)--------------------------------------------
@using QRHelper
<!--Directly call from Html elements it will call first function-->
@Html.GenerateQrCode("{\"BookingID\":\"2541-12454-0154-545121855\"}", "QR code", 150, 150)<span>QR Code</span>
---------------------------------------------Call from controller--------------------------------------------
using System.Web;
public class HomeController : Controller
{
public ActionResult Index()
{
//It will second method in helper class
IHtmlString _qrCode=
GenerateQrCode("Your text here", "QR code", 150, 150);
}
}