protected void convertToPdfButton_Click(object sender, EventArgs e)
{
    // Create a HTML to PDF converter object with default settings
    HtmlToPdfConverter htmlToPdfConverter = 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;

    Document pdfDocument = null;
    try
    {
        string htmlWithButton = htmlStringTextBox.Text;
        string baseUrl = baseUrlTextBox.Text;

        // Convert a HTML string with a button to a PDF document object
        pdfDocument = htmlToPdfConverter.ConvertHtmlToPdfDocumentObject(htmlWithButton, baseUrl);
                
        // Get the button location in PDF
        HtmlElementMapping buttonMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("javascript_button");
        if (buttonMapping != null)
        {
            PdfPage buttonPdfPage = buttonMapping.PdfRectangles[0].PdfPage;
            RectangleF buttonRectangle = buttonMapping.PdfRectangles[0].Rectangle;
                    
            // The font used for buttons text in PDF document
            PdfFont buttonTextFont = pdfDocument.AddFont(new Font("Times New Roman", 8, FontStyle.Regular, GraphicsUnit.Point));

            // Create a PDF form button
            PdfFormButton pdfButton = pdfDocument.Form.AddButton(buttonPdfPage, buttonRectangle, "Execute Acrobat JavaScript", buttonTextFont);

            // Set JavaScript action to be executed when the button is clicked
            string javaScript = null;
            if (alertMessageRadioButton.Checked)
            {
                // JavaScript to display an alert mesage 
                javaScript = String.Format("app.alert(\"{0}\")", alertMessageTextBox.Text);
            }
            else if (printDialogRadioButton.Checked)
            {
                // JavaScript to open the print dialog
                javaScript = "print()";
            }
            else if (zoomLevelRadioButton.Checked)
            {
                // JavaScript to set an initial zoom level 
                javaScript = String.Format("zoom={0}", int.Parse(zoomLevelTextBox.Text));
            }

            // Set the JavaScript action
            pdfButton.Action = new PdfActionJavaScript(javaScript);
        }

        // Save the PDF document in a memory buffer
        byte[] outPdfBuffer = pdfDocument.Save();

        // 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=Button_JavaScript_Actions.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();
    }
    finally
    {
        // Close the PDF document
        if (pdfDocument != null)
            pdfDocument.Close();
    }
}