Link Search Menu Expand Document

Get All PDF Form Fields - C#

PDF SDK sample in C# demonstrating ‘Get All PDF Form Fields’

Program.cs
using Bytescout.PDF;
using System;
using System.Collections.Generic;

namespace GetFormFields
{
    /// <summary>
    /// This example demonstrates how to all PDF form fields programmatically.
    /// </summary>
    class Program
    {
        static void Main()
        {
            // Load PDF form
            Document document = new Document(@"sample.pdf");
            document.RegistrationName = "demo";
            document.RegistrationKey = "demo";

            var formFields = new List<FormFieldInfo>();

            // Loop through all pages
            for (int i = 0; i < document.Pages.Count; i++)
            {
                var page = document.Pages[i];

                // Loop through all annotations
                foreach (var annotation in page.Annotations)
                {
                    if(annotation is EditBox || annotation is ComboBox || annotation is CheckBox || annotation is RadioButton)
                    {
                        // Get form field info
                        var fieldInfo = new FormFieldInfo
                        {
                            Type = annotation.Type.ToString(),
                            FieldName = ((Field)annotation).Name,
                            PageIndex = i,
                            Left = ((Field)annotation).Left,
                            Top = ((Field)annotation).Top,
                            Width = ((Field)annotation).Width,
                            Height = ((Field)annotation).Height
                        };

                        // Get value
                        switch (annotation.Type)
                        {
                            case AnnotationType.EditBox:
                                fieldInfo.Value = ((EditBox)annotation).Text;
                                break;
                            case AnnotationType.ComboBox:
                                fieldInfo.Value = ((ComboBox)annotation).Text;
                                break;
                            case AnnotationType.CheckBox:
                                fieldInfo.Value = ((CheckBox)annotation).Checked.ToString();
                                break;
                            case AnnotationType.RadioButton:
                                fieldInfo.Value = ((RadioButton)annotation).Checked.ToString();
                                break;
                        }

                        formFields.Add(fieldInfo);
                    }
                }
            }

            // Cleanup 
            document.Dispose();

            // Display Form data
            DisplayData(formFields);

            Console.ReadLine();
        }

        /// <summary>
        /// Displays data to console
        /// </summary>
        static void DisplayData(List<FormFieldInfo> formFieldInfos)
        {
            if(formFieldInfos != null && formFieldInfos.Count > 0)
            {
                foreach (var item in formFieldInfos)
                {
                    Console.WriteLine($"Type: {item.Type}\nFieldName: {item.FieldName}\nValue: {item.Value}\nPage Index: {item.PageIndex}\nLeft: {item.Left}, Top: {item.Top}, Width: {item.Width}, Height: {item.Height}");

                    Console.WriteLine();

                }
            }
        }

    }

    class FormFieldInfo
    {
        public string Type { get; set; }
        public string FieldName { get; set; }
        public string Value { get; set; }

        public int PageIndex { get; set; }

        public float Left { get; set; }
        public float Top { get; set; }
        public float Width { get; set; }
        public float Height { get; set; }
    }


}

Download Source Code (.zip)

Return to the previous page Explore PDF SDK