EVO HTML to PDF Converter

Create a PDF Form in a PDF Document

EVO HTML to PDF Converter for .NET Documentation

EVO HTML to PDF Converter allows you to create a PDF form with various types of fields in a PDF document. The PDF form can be accessed using the DocumentForm property. You can add fields to PDF form using its AddTextBox, AddRadioButtonsGroup, AddCheckBox, AddComboBox, AddListBox methods.

Code Sample - Create a PDF Form in a PDF Document

protected void createPdfButton_Click(object sender, EventArgs e)
{
    // Create a PDF document
    Document pdfDocument = new Document();

    // Set license key received after purchase to use the converter in licensed mode
    // Leave it not set to use the converter in demo mode
    pdfDocument.LicenseKey = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=";

    // Add a page to PDF document
    PdfPage pdfPage = pdfDocument.AddPage();

    try
    {
        // The font used for titles in PDF document
        PdfFont titlesFont = pdfDocument.AddFont(new Font("Times New Roman", 10, FontStyle.Bold, GraphicsUnit.Point));
        // The font used for field names in PDF document
        PdfFont fieldNameFont = pdfDocument.AddFont(new Font("Times New Roman", 10, FontStyle.Regular, GraphicsUnit.Point));
        // The font used for buttons text in PDF document
        PdfFont buttonTextFont = pdfDocument.AddFont(new Font("Times New Roman", 10, FontStyle.Regular, GraphicsUnit.Point));
        // The font used for PDF form text box fields
        PdfFont textFieldFont = pdfDocument.AddFont(StdFontBaseFamily.Helvetica);
        textFieldFont.Size = 8;
        // The font used for PDF form combo box fields
        PdfFont comboBoxFieldFont = pdfDocument.AddFont(StdFontBaseFamily.Helvetica);
        comboBoxFieldFont.Size = 8;

        float xLocation = 5;
        float yLocation = 5;

        // Add document title
        TextElement titleTextElement = new TextElement(xLocation, yLocation, "Create PDF Forms", titlesFont);
        AddElementResult addElementResult = pdfPage.AddElement(titleTextElement);

        yLocation = addElementResult.EndPageBounds.Bottom + 15;

        // Add a text box field to PDF form
        TextElement fieldNameTextElement = new TextElement(xLocation, yLocation, 60, "First name:", fieldNameFont);
        addElementResult = pdfPage.AddElement(fieldNameTextElement);
        RectangleF fieldNameRectangle = addElementResult.EndPageBounds;
        RectangleF fieldBoundingRectangle = new RectangleF(fieldNameRectangle.Right + 10, yLocation, 150, 15);
        // Create the form field
        PdfFormTextBox textBoxField = pdfDocument.Form.AddTextBox(pdfPage, fieldBoundingRectangle, "Enter First Name", textFieldFont);
        // Set unique form field name used when the form is submitted
        textBoxField.Name = "firstName";
        // Set the form field default value
        textBoxField.DefaultValue = "A default first name";
        // Set form field style 
        textBoxField.Style.BackColor = Color.AliceBlue;

        yLocation = fieldNameRectangle.Bottom + 10;

        // Add a text box field to PDF form
        fieldNameTextElement = new TextElement(xLocation, yLocation, 60, "Last name:", fieldNameFont);
        addElementResult = pdfPage.AddElement(fieldNameTextElement);
        fieldNameRectangle = addElementResult.EndPageBounds;
        fieldBoundingRectangle = new RectangleF(fieldNameRectangle.Right + 10, yLocation, 150, 15);
        // Create the form field
        textBoxField = pdfDocument.Form.AddTextBox(pdfPage, fieldBoundingRectangle, "Enter Last Name", textFieldFont);
        // Set unique form field name used when the form is submitted
        textBoxField.Name = "lastName";
        // Set the form field default value
        textBoxField.DefaultValue = "A default last name";
        // Set form field style 
        textBoxField.Style.BackColor = Color.MistyRose;

        yLocation = fieldNameRectangle.Bottom + 10;

        // Add a password text box field to PDF form
        fieldNameTextElement = new TextElement(xLocation, yLocation, 60, "Password:", fieldNameFont);
        addElementResult = pdfPage.AddElement(fieldNameTextElement);
        fieldNameRectangle = addElementResult.EndPageBounds;
        fieldBoundingRectangle = new RectangleF(fieldNameRectangle.Right + 10, yLocation, 150, 15);
        // Create the form field
        PdfFormTextBox passwordTextBoxField = pdfDocument.Form.AddTextBox(pdfPage, fieldBoundingRectangle, "", textFieldFont);
        // Set unique form field name used when the form is submitted
        passwordTextBoxField.Name = "password";
        // Set form field style 
        passwordTextBoxField.Style.BackColor = Color.AliceBlue;
        // Set the password mode for the text box
        passwordTextBoxField.IsPassword = true;

        yLocation = fieldNameRectangle.Bottom + 10;

        // Add a radio buttons group to PDF form
        fieldNameTextElement = new TextElement(xLocation, yLocation, 60, "Gender:", fieldNameFont);
        addElementResult = pdfPage.AddElement(fieldNameTextElement);
        fieldNameRectangle = addElementResult.EndPageBounds;
        // Create the radio buttons group
        PdfFormRadioButtonsGroup radioButtonsGroup = pdfDocument.Form.AddRadioButtonsGroup(pdfPage);
        // Set unique form field name used when the form is submitted
        radioButtonsGroup.Name = "gender";
        // Set style of the radio buttons in this group
        radioButtonsGroup.Style.BackColor = Color.AntiqueWhite;

        // Add the first radio button to group
        RectangleF radioButtonRectangle = new RectangleF(fieldNameRectangle.Right + 10, yLocation, 50, 10);
        // Create the form field
        PdfFormRadioButton radioButtonField = radioButtonsGroup.AddRadioButton(radioButtonRectangle, "male", pdfPage);

        fieldNameTextElement = new TextElement(fieldNameRectangle.Right + 22, yLocation, 30, "Male", fieldNameFont);
        pdfPage.AddElement(fieldNameTextElement);

        // Add the second radio button to group
        radioButtonRectangle = new RectangleF(fieldNameRectangle.Right + 60, yLocation, 50, 10);
        // Create the form field
        radioButtonField = radioButtonsGroup.AddRadioButton(radioButtonRectangle, "female", pdfPage);

        fieldNameTextElement = new TextElement(fieldNameRectangle.Right + 72, yLocation, 30, "Female", fieldNameFont);
        pdfPage.AddElement(fieldNameTextElement);

        // Set the selected radio btton in group
        radioButtonsGroup.SetCheckedRadioButton("male");

        yLocation = fieldNameRectangle.Bottom + 10;

        // Add a checkbox field to PDF form
        fieldNameTextElement = new TextElement(xLocation, yLocation, 60, "Vehicle:", fieldNameFont);
        addElementResult = pdfPage.AddElement(fieldNameTextElement);
        fieldNameRectangle = addElementResult.EndPageBounds;
        fieldBoundingRectangle = new RectangleF(fieldNameRectangle.Right + 10, yLocation, 10, 10);
        // Create the form field
        PdfFormCheckBox checkBoxField = pdfDocument.Form.AddCheckBox(pdfPage, fieldBoundingRectangle);
        // Set unique form field name used when the form is submitted
        checkBoxField.Name = "haveCar";
        // Set form field style 
        checkBoxField.Style.BackColor = Color.AntiqueWhite;
        // Set checkbox field checked state
        checkBoxField.Checked = true;

        fieldNameTextElement = new TextElement(fieldNameRectangle.Right + 22, yLocation, 50, "I have a car", fieldNameFont);
        pdfPage.AddElement(fieldNameTextElement);

        yLocation = fieldNameRectangle.Bottom + 10;

        // Add a combo box list field to PDF form
        fieldNameTextElement = new TextElement(xLocation, yLocation, 60, "Vehicle Type:", fieldNameFont);
        addElementResult = pdfPage.AddElement(fieldNameTextElement);
        fieldNameRectangle = addElementResult.EndPageBounds;
        fieldBoundingRectangle = new RectangleF(fieldNameRectangle.Right + 10, yLocation, 50, 15);
        string[] comboBoxItems = new string[] { "Volvo", "Saab", "Audi", "Opel" };
        // Create the form field
        PdfFormComboBox comboBoxField = pdfDocument.Form.AddComboBox(pdfPage, fieldBoundingRectangle, comboBoxItems, comboBoxFieldFont);
        // Set unique form field name used when the form is submitted
        comboBoxField.Name = "vehicleType";
        // Set the form field default value
        comboBoxField.DefaultValue = "Audi";
        // Set form field style 
        comboBoxField.Style.BackColor = Color.LightCyan;
        // Set selected item in combo box
        comboBoxField.Value = "Audi";

        yLocation = fieldNameRectangle.Bottom + 10;

        // Add a multiline text box field to PDF form
        fieldNameTextElement = new TextElement(xLocation, yLocation + 20, 60, "Comments:", fieldNameFont);
        addElementResult = pdfPage.AddElement(fieldNameTextElement);
        fieldNameRectangle = addElementResult.EndPageBounds;
        fieldBoundingRectangle = new RectangleF(fieldNameRectangle.Right + 10, yLocation, 150, 60);
        // Create the form field
        PdfFormTextBox multilineTextBoxField = pdfDocument.Form.AddTextBox(pdfPage, fieldBoundingRectangle,
                "Enter your comments here:\r\nFirst comment line\r\nSecond comment line", textFieldFont);
        // Set unique form field name used when the form is submitted
        multilineTextBoxField.Name = "comments";
        // Set form field style 
        multilineTextBoxField.Style.BackColor = Color.AliceBlue;
        // Set the multiline mode for text box field
        multilineTextBoxField.IsMultiLine = true;

        yLocation = yLocation + 70;

        // Add a form submit button to PDF form
        fieldBoundingRectangle = new RectangleF(xLocation, yLocation, 75, 15);
        PdfFormButton submitFormButton = pdfDocument.Form.AddButton(pdfPage, fieldBoundingRectangle, "Submit", buttonTextFont);
        // Set unique form field name used when the form is submitted
        submitFormButton.Name = "submitFormButton";
        // Set form field style 
        submitFormButton.Style.BackColor = Color.Beige;
        // Create the form submit action
        PdfSubmitFormAction submitFormAction = new PdfSubmitFormAction(submitUrlTextBox.Text);
        // Form values will be submitted in HTML form format
        submitFormAction.Flags |= PdfFormSubmitFlags.ExportFormat;
        if (getMethodRadioButton.Checked)
            submitFormAction.Flags |= PdfFormSubmitFlags.GetMethod;
        // Set the form submit button action
        submitFormButton.Action = submitFormAction;

        // Add a form reset button to PDF form
        fieldBoundingRectangle = new RectangleF(xLocation + 100, yLocation, 75, 15);
        PdfFormButton resetFormButton = pdfDocument.Form.AddButton(pdfPage, fieldBoundingRectangle, "Reset", buttonTextFont);
        // Set unique form field name used when the form is submitted
        resetFormButton.Name = "resetFormButton";
        // Set form field style 
        resetFormButton.Style.BackColor = Color.Beige;
        // Create the form reset action
        PdfResetFormAction resetFormAction = new PdfResetFormAction();
        // Set the form reset button action
        resetFormButton.Action = resetFormAction;

        // 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=Create_PDF_Forms.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
        pdfDocument.Close();
    }
}