Hi,
refer the follwing link
https://www.aspsnippets.com/Articles/Print-functionality-in-ASP.Net-GridView-control.aspx
I am using this code to print documents but when Click the print button blank page is being printed. the values in the grid is not being printed.
Pls help me
 <asp:GridView ID="grid1" runat="server" AutoGenerateColumns="false" CellPadding="3" OnPageIndexChanging="OnPageIndexChanging" AllowPaging="true" CssClass="table table-bordered"  PageSize="10"  >
<Columns>
    <asp:BoundField HeaderText="Number" DataField="no" />  
                    <asp:BoundField HeaderText="Name" DataField="name" />  
                    <asp:BoundField HeaderText="Email" DataField="email" />  
                    <asp:BoundField HeaderText="Subject" DataField="subject" />  
                     <asp:BoundField HeaderText="Message" DataField="message" /> 
                    <asp:TemplateField>  
                        <ItemTemplate>  
                            <asp:HiddenField ID="hdnEmpId" runat="server" Value='<%#Eval("no") %>'/>
                            <asp:LinkButton ID="btnDelete" Text="Delete" runat="server" /> 
                        </ItemTemplate>  
                    </asp:TemplateField>  
   <%-- <asp:BoundField DataField="CustomerId" HeaderText="Id" HeaderStyle-Width="30"/>
    <asp:BoundField DataField="Name" HeaderText="Name" HeaderStyle-Width="150"/>
    <asp:BoundField DataField="Country" HeaderText="Country" HeaderStyle-Width="150"/>
    <asp:TemplateField HeaderStyle-Width="50">
        <ItemTemplate>
            <asp:HiddenField ID="hfCustomerId" runat="server" Value='<%# Eval("CustomerId") %>'/>
            <asp:LinkButton ID="lnkDelete" Text="Delete" runat="server"/>
        </ItemTemplate>
    </asp:TemplateField>--%>
</Columns>
    </asp:GridView>
<asp:Button ID="btnExport" runat="server" Text="Export To PDF" OnClick = "ExportToPDF" />
   <asp:Button ID="btnPrintAll" runat="server" Text="Print All Pages" OnClick = "PrintAllPages" />
        <asp:Button ID="btnPrintCurrent" runat="server" Text="Print Current Page" OnClick = "PrintCurrentPage" />
 
<script type="text/javascript">
$(function () {
    $("[id*=grid1] [id*=btnDelete]").click(function () {
        if (confirm("Do you want to delete this feedback?")) {
            //Determine the GridView row within whose LinkButton was clicked.
            var row = $(this).closest("tr");
 
            //Look for the Hidden Field and fetch the CustomerId.
            var no = parseInt(row.find("[id*=hdnEmpId]").val());
 
            //Make an AJAX call to server side and pass the fetched CustomerId.
            $.ajax({
                type: "POST",
                url: "feedback.aspx/DeleteCustomer",
                data: '{no: ' + no + '}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (r) {
                    if (r.d) {
                        //Remove the row from the GridView.
                        row.remove();
                        //If the GridView has no records then display no records message.
                        if ($("[id*=grid1] td").length == 0) {
                            $("[id*=grid1] tbody").append("<tr><td colspan = '4' align = 'center'>No records found.</td></tr>")
                        }
                        alert("Customer Feedback has been deleted.");
                    }
                }
            });
        }
        return false;
    });
});
</script>  
 
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.Page.User.Identity.IsAuthenticated)
            {
                FormsAuthentication.RedirectToLoginPage();
            }
            if (!IsPostBack)
            {
                this.BindGrid();
            }
        }
        private void BindGrid()
        {
            string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            using (SqlConnection con = new SqlConnection(conString))
            {
                using (SqlCommand cmd = new SqlCommand("SELECT * FROM feedback"))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter())
                    {
                        cmd.Connection = con;
                        sda.SelectCommand = cmd;
                        DataTable dt = new DataTable();
                        sda.Fill(dt);
                        grid1.DataSource = dt;
                        grid1.DataBind();
                    }
                }
            }
        }
        [WebMethod]
        public static bool DeleteCustomer(int no)
        {
            string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            using (SqlConnection con = new SqlConnection(conString))
            {
                using (SqlCommand cmd = new SqlCommand("DELETE FROM feedback WHERE no = @no"))
                {
                    cmd.Connection = con;
                    cmd.Parameters.AddWithValue("@no", no);
                    con.Open();
                    int rowsAffected = cmd.ExecuteNonQuery();
                    con.Close();
                    return rowsAffected > 0;
                }
            }
        }
        protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            grid1.PageIndex = e.NewPageIndex;
            this.BindGrid();
        }
  public override void VerifyRenderingInServerForm(Control control)
        {
            /* Verifies that the control is rendered */
        }
        protected void ExportToPDF(object sender, EventArgs e)
        {
            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                {
                    //To Export all pages
                    grid1.AllowPaging = false;
                    this.BindGrid();
                    grid1.RenderControl(hw);
                    StringReader sr = new StringReader(sw.ToString());
                    Document pdfDoc = new Document(PageSize.A4);
                    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                    pdfDoc.Open();
                    htmlparser.Parse(sr);
                    pdfDoc.Close();
                    Response.ContentType = "application/pdf";
                    Response.AddHeader("content-disposition", "attachment;filename=Feedback Report.pdf");
                    Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    Response.Write(pdfDoc);
                    Response.End();
                }
            }
        }
        protected void PrintCurrentPage(object sender, EventArgs e)
        {
            grid1.PagerSettings.Visible = false;
            grid1.DataBind();
            StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            grid1.RenderControl(hw);
            string gridHTML = sw.ToString().Replace("\"", "'")
                .Replace(System.Environment.NewLine, "");
            StringBuilder sb = new StringBuilder();
            sb.Append("<script type = 'text/javascript'>");
            sb.Append("window.onload = new function(){");
            sb.Append("var printWin = window.open('', '', 'left=0");
            sb.Append(",top=0,width=1000,height=600,status=0');");
            sb.Append("printWin.document.write(\"");
            sb.Append(gridHTML);
            sb.Append("\");");
            sb.Append("printWin.document.close();");
            sb.Append("printWin.focus();");
            sb.Append("printWin.print();");
            sb.Append("printWin.close();};");
            sb.Append("</script>");
            ClientScript.RegisterStartupScript(this.GetType(), "GridPrint", sb.ToString());
            grid1.PagerSettings.Visible = true;
            grid1.DataBind();
        }
        protected void PrintAllPages(object sender, EventArgs e)
        {
            grid1.AllowPaging = false;
            grid1.DataBind();
            StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            grid1.RenderControl(hw);
            string gridHTML = sw.ToString().Replace("\"", "'")
                .Replace(System.Environment.NewLine, "");
            StringBuilder sb = new StringBuilder();
            sb.Append("<script type = 'text/javascript'>");
            sb.Append("window.onload = new function(){");
            sb.Append("var printWin = window.open('', '', 'left=0");
            sb.Append(",top=0,width=1000,height=600,status=0');");
            sb.Append("printWin.document.write(\"");
            sb.Append(gridHTML);
            sb.Append("\");");
            sb.Append("printWin.document.close();");
            sb.Append("printWin.focus();");
            sb.Append("printWin.print();");
            sb.Append("printWin.close();};");
            sb.Append("</script>");
            ClientScript.RegisterStartupScript(this.GetType(), "GridPrint", sb.ToString());
            grid1.AllowPaging = true;
            grid1.DataBind();
        }
    }
}