Protected Sub convertToPdfButton_Click(ByVal sender As Object, ByVal e As EventArgs) ' Save variables in Session object Session("firstName") = firstNameTextBox.Text Session("lastName") = lastNameTextBox.Text Session("gender") = If(maleRadioButton.Checked, "Male", "Female") Session("haveCar") = haveCarCheckBox.Checked Session("carType") = carTypeDropDownList.SelectedValue Session("comments") = commentsTextBox.Text ' Execute the Display_Session_Variables.aspx page and get the HTML string ' rendered by this page Dim outTextWriter As TextWriter = New StringWriter() Server.Execute("Display_Session_Variables.aspx", outTextWriter) Dim htmlStringToConvert As String = outTextWriter.ToString() ' Create a HTML to PDF converter object with default settings Dim htmlToPdfConverter As New HtmlToPdfConverter() ' Set license key received after purchase to use the converter in licensed mode ' Leave it not set to use the converter in demo mode htmlToPdfConverter.LicenseKey = "fvDh8eDx4fHg4P/h8eLg/+Dj/+jo6Og=" ' Set an adddional delay in seconds to wait for JavaScript or AJAX calls after page load completed ' Set this property to 0 if you don't need to wait for such asynchcronous operations to finish htmlToPdfConverter.ConversionDelay = 2 ' Use the current page URL as base URL Dim baseUrl As String = HttpContext.Current.Request.Url.AbsoluteUri ' Convert the page HTML string to a PDF document in a memory buffer Dim outPdfBuffer() As Byte = htmlToPdfConverter.ConvertHtml(htmlStringToConvert, baseUrl) ' Send the PDF as response to browser ' Set response content type Response.AddHeader("Content-Type", "application/pdf") ' Instruct the browser to open the PDF file as an attachment or inline Response.AddHeader("Content-Disposition", String.Format("attachment; filename=Convert_Page_in_Same_Session.pdf; size={0}", outPdfBuffer.Length.ToString())) ' Write the PDF document buffer to HTTP response Response.BinaryWrite(outPdfBuffer) ' End the HTTP response and stop the current page processing Response.End() End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) If Not IsPostBack Then firstNameLabel.Text = If(Session("firstName") IsNot Nothing, CType(Session("firstName"), String), String.Empty) lastNameLabel.Text = If(Session("lastName") IsNot Nothing, CType(Session("lastName"), String), String.Empty) genderLabel.Text = If(Session("gender") IsNot Nothing, CType(Session("gender"), String), String.Empty) Dim iHaveCar As Boolean = If(Session("haveCar") IsNot Nothing, CBool(Session("haveCar")), False) haveCarLabel.Text = If(iHaveCar, "Yes", "No") carTypePanel.Visible = iHaveCar carTypeLabel.Text = If(iHaveCar AndAlso Session("carType") IsNot Nothing, CType(Session("carType"), String), String.Empty) commentsLabel.Text = If(Session("comments") IsNot Nothing, CType(Session("comments"), String), String.Empty) End If End Sub