Sandeep Kumar

Sandeep Kumar

  • 860
  • 630
  • 50.7k

How to show code At Above QR CODE like attached image

Nov 2 2023 6:57 AM
<script type="text/javascript">
    function PrintPanel() {
        var panel = document.getElementById("<%=pnlContents.ClientID %>");
        var printWindow = window.open('', '', 'height=500,width=800');
        printWindow.document.write('<html><head><title>DIV Contents</title>');
        printWindow.document.write('</head><body >');
        printWindow.document.write(panel.innerHTML);
        printWindow.document.write('</body></html>

 <div class="container" style="text-align: center">
        <h2>QR Code Print</h2>
        <div class="row">
            <div class="col-4"></div>
            <div class="col-4">
                <div class="form-group">
                    <asp:Panel ID="pnlContents" runat="server">
                       <asp:Label ID="lblJobcode" runat="server" />
                       
                        <asp:PlaceHolder ID="plBarCode" runat="server" />
                    </asp:Panel>
                    <div class="input-group">
                        <div class="input-group-append">
                            <asp:Button ID="BtnGenerateQRCode" runat="server" Text="Print QR Code" CssClass="btn btn-primary" OnClientClick="return PrintPanel();"/>

                        </div>
                    </div>
                </div>
            </div>
            <div class="col-4"></div>
        </div>
    </div>

CS

if (Request.QueryString["GenSampleCode"] != null)
{
    int GenSampleCode = Convert.ToInt32(Request.QueryString["GenSampleCode"]);

    DataTable aDtGenSampleCode = new DataTable();
    DataTable PivotDatatable = new DataTable();
    aDtGenSampleCode = QualityReport.SP_TruckWiseSampleDtlsQrPrint_V2(GenSampleCode);
    aDtGenSampleCode.Columns.Cast<DataColumn>()
    .ToList()
    .ForEach(c => c.ColumnName = aDtGenSampleCode.Rows[0][c.Ordinal].ToString());

    aDtGenSampleCode.Rows.RemoveAt(0);


    PivotDatatable = GenerateTransposedTable(aDtGenSampleCode);//PivoteDataTable.Pivot(aDtGenSampleCode);

    foreach (DataRow dtRow in PivotDatatable.Rows)
    {

        foreach (var item in dtRow.ItemArray)
        {
            System.Web.UI.WebControls.Image imgbarcode = new System.Web.UI.WebControls.Image();
            System.Web.UI.WebControls.Label lblcode = new System.Web.UI.WebControls.Label();
            string code = item.ToString();
            imgbarcode.Height = 175;
            imgbarcode.Width = 175;
            var writer = new BarcodeWriter();
            writer.Format = BarcodeFormat.QR_CODE;
            var result = writer.Write(code);

            string path = Server.MapPath("~/Images/QRImages.jpg");
            var barcodeBitmap = new Bitmap(result);

            using (MemoryStream memory = new MemoryStream())
            {
                using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.ReadWrite))
                {
                    barcodeBitmap.Save(memory, ImageFormat.Jpeg);

                    byte[] bytes = memory.ToArray();

                    imgbarcode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(bytes);


                }
                lblJobcode.Text = code;
                plBarCode.Controls.Add(imgbarcode);
            }
            
        }
    }

}

private DataTable GenerateTransposedTable(DataTable inputTable)
{
    DataTable outputTable = new DataTable();

    // Add columns by looping rows

    // Header row's first column is same as in inputTable
    outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString());

    // Header row's second column onwards, 'inputTable's first column taken
    foreach (DataRow inRow in inputTable.Rows)
    {
        string newColName = inRow[0].ToString();
        outputTable.Columns.Add(newColName);
    }

    // Add rows by looping columns        
    for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++)
    {
        DataRow newRow = outputTable.NewRow();

        // First column is inputTable's Header row's second column
        newRow[0] = inputTable.Columns[rCount].ColumnName.ToString();
        for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
        {
            string colValue = inputTable.Rows[cCount][rCount].ToString();
            newRow[cCount + 1] = colValue;
        }
        outputTable.Rows.Add(newRow);
    }

    return outputTable;
}


Answers (5)