Hi HarishHG,
Refer the below sample code.
HTML
<asp:TextBox ID="txtCode" runat="server"></asp:TextBox>
<asp:Button ID="btnGenerate" runat="server" Text="Generate QR Code" OnClick="GenerateQRCode" />
<asp:Button ID="btnGeneratePDF" runat="server" Text="Generate PDF" OnClick="GeneratePDF" />
<hr />
<asp:PlaceHolder ID="plBarCode" runat="server" />
Namespaces
C#
using System.Drawing;
using System.IO;
using QRCoder;
VB.Net
Imports System.Drawing
Imports System.IO
Imports QRCoder
Code
C#
static byte[] byteImage;
protected void GenerateQRCode(object sender, EventArgs e)
{
string code = txtCode.Text;
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
imgBarCode.Height = 150;
imgBarCode.Width = 150;
using (Bitmap bitMap = qrCode.GetGraphic(20))
{
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byteImage = ms.ToArray();
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
plBarCode.Controls.Add(imgBarCode);
}
}
protected void GeneratePDF(object sender, EventArgs e)
{
string base64 = Convert.ToBase64String(byteImage);
byte[] imageBytes = Convert.FromBase64String(base64);
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(imageBytes);
using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
{
Document document = new Document(PageSize.A4, 0f, 0f, 0f, 0f);
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();
document.Add(image);
document.Close();
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=Image.pdf");
Response.ContentType = "application/pdf";
Response.Buffer = true;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(bytes);
Response.End();
}
}
VB.Net
Shared byteImage As Byte()
Protected Sub GenerateQRCode(ByVal sender As Object, ByVal e As EventArgs)
Dim code As String = txtCode.Text
Dim qrGenerator As QRCodeGenerator = New QRCodeGenerator()
Dim qrCode As QRCodeGenerator.QRCode = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q)
Dim imgBarCode As System.Web.UI.WebControls.Image = New System.Web.UI.WebControls.Image()
imgBarCode.Height = 150
imgBarCode.Width = 150
Using bitMap As Bitmap = qrCode.GetGraphic(20)
Using ms As MemoryStream = New MemoryStream()
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
byteImage = ms.ToArray()
imgBarCode.ImageUrl = "data:image/png;base64," & Convert.ToBase64String(byteImage)
End Using
plBarCode.Controls.Add(imgBarCode)
End Using
End Sub
Protected Sub GeneratePDF(ByVal sender As Object, ByVal e As EventArgs)
Dim base64 As String = Convert.ToBase64String(byteImage)
Dim imageBytes As Byte() = Convert.FromBase64String(base64)
Dim image As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(imageBytes)
Using memoryStream As System.IO.MemoryStream = New System.IO.MemoryStream()
Dim document As Document = New Document(PageSize.A4, 0F, 0F, 0F, 0F)
Dim writer As PdfWriter = PdfWriter.GetInstance(document, memoryStream)
document.Open()
document.Add(image)
document.Close()
Dim bytes As Byte() = memoryStream.ToArray()
memoryStream.Close()
Response.Clear()
Response.ContentType = "application/pdf"
Response.AddHeader("Content-Disposition", "attachment; filename=Image.pdf")
Response.ContentType = "application/pdf"
Response.Buffer = True
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.BinaryWrite(bytes)
Response.End()
End Using
End Sub