←Select platform

DocumentChoiceFormField Class

Summary

Defines a Choice Form Field object.

Syntax
C#
C++/CLI
Python
[SerializableAttribute()] 
[DataContractAttribute()] 
public class DocumentChoiceFormField : DocumentFormField 
public: 
   [SerializableAttribute,  
   DataContractAttribute] 
   ref class DocumentChoiceFormField : DocumentFormField 
class DocumentChoiceFormField(DocumentFormField): 
Remarks

The DocumentChoiceFormField class inherits a number of properties from the DocumentFormField class, providing support for text and border styling and other properties. Refer to ChoiceType for the supported choice types.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Document.Writer; 
 
using Leadtools.Document; 
using Leadtools.Caching; 
using Leadtools.Annotations.Engine; 
using Leadtools.Ocr; 
using Leadtools.Barcode; 
using Leadtools.Document.Converter; 
 
public void DocumentFormFieldsExample(string pdfFile) 
{ 
   // The value of LoadDocumentOptions.LoadFormFieldsMode affects loading the documents as follows: 
   // 
   // 1. Normal PDF without form fields: Will not be affected. 
   // 2. Normal PDF with fields:  
   //       LoadFormFieldsMode = View, then the form fields will be rendered as part of the view without the ability to retrieve or update the value 
   //       LoadFormFieldsMode = Interactive, then the form fields will be parsed to LEADDocument.FormFields 
 
   // Load the document with interactive form fields mode 
   Console.WriteLine($"Loading with DocumentLoadFormFieldsMode.Interactive"); 
   var loadDocumentOptions = new LoadDocumentOptions(); 
   loadDocumentOptions.LoadFormFieldsMode = DocumentLoadFormFieldsMode.Interactive; 
   using (LEADDocument document = DocumentFactory.LoadFromFile(pdfFile, loadDocumentOptions)) 
   { 
      Console.WriteLine($"Document has {document.Pages.Count} pages"); 
 
      // Find out if the document has parsed form fields 
      bool hasFormFields = document.FormFields.HasFormFields; 
      Console.WriteLine($"HasFormFields:{hasFormFields}"); 
 
      // Extract all the form fields 
      DocumentFormFieldsContainer[] containers = document.FormFields.GetFormFields(); 
      if (containers == null || containers.Length == 0) 
      { 
         Console.WriteLine($"Empty Containers"); 
         return; 
      } 
 
      foreach (DocumentFormFieldsContainer container in containers) 
      { 
         // Show info on this container 
         Console.WriteLine($"Page Number {container.PageNumber}, Form fields count {container.Children?.Count}"); 
         foreach (DocumentFormField formField in container.Children) 
         { 
            StringBuilder formFieldInfo = new StringBuilder(); 
            formFieldInfo.Append($"ID                       : {(string.IsNullOrEmpty(formField.ID) ? string.Empty : formField.ID)}"); 
            formFieldInfo.Append($"Name                     : {(string.IsNullOrEmpty(formField.Name) ? string.Empty : formField.Name)}"); 
            formFieldInfo.Append($"Bounds                   : {formField.Bounds}"); 
            formFieldInfo.Append($"BackgroundColor          : {formField.BackgroundColor}"); 
            formFieldInfo.Append($"Is Printable             : {formField.Printable}"); 
            formFieldInfo.Append($"Is Viewable              : {formField.Viewable}"); 
            formFieldInfo.Append($"Is Locked                : {formField.Locked}"); 
            formFieldInfo.Append($"Is Required              : {formField.Required}"); 
            formFieldInfo.Append($"Is ReadOnly              : {formField.ReadOnly}"); 
            formFieldInfo.Append($"                                               "); 
            // DocumentFormFieldBorderStyle reference 
            formFieldInfo.Append($"Border Style             : {formField.BorderStyle.Style}"); 
            formFieldInfo.Append($"Border Color             : {formField.BorderStyle.Color}"); 
            formFieldInfo.Append($"Border Width             : {formField.BorderStyle.Width}"); 
            formFieldInfo.Append($"                                               "); 
            // DocumentFormFieldTextStyle reference 
            formFieldInfo.Append($"Font Name                : {formField.TextStyle.FontName}"); 
            formFieldInfo.Append($"Font Size                : {formField.TextStyle.FontSize}"); 
            formFieldInfo.Append($"Text Color               : {formField.TextStyle.Color}"); 
            formFieldInfo.Append($"Text Alignment           : {formField.TextStyle.TextAlignment}"); 
            formFieldInfo.Append($"                                               "); 
            formFieldInfo.Append($"Type                     : {formField.Type}"); 
 
            if (formField is DocumentTextFormField) 
            { 
               DocumentTextFormField textFormField = formField as DocumentTextFormField; 
               formFieldInfo.Append($"Text Value               : {(string.IsNullOrEmpty(textFormField.Value) ? string.Empty : textFormField.Value)}"); 
               formFieldInfo.Append($"Content Type             : {textFormField.ContentType}"); 
               formFieldInfo.Append($"Max Length               : {textFormField.MaxLength}"); 
               formFieldInfo.Append($"Multiline                : {textFormField.Multiline}"); 
               formFieldInfo.Append($"Is Password              : {textFormField.IsPassword}"); 
               formFieldInfo.Append($"Is Comb                  : {textFormField.IsComb}"); 
            } 
            else if (formField is DocumentChoiceFormField) 
            { 
               DocumentChoiceFormField choiceFormField = formField as DocumentChoiceFormField; 
               formFieldInfo.Append($"Options Display Value    : {(choiceFormField.OptionsDisplayValue == null ? string.Empty : string.Join(",", choiceFormField.OptionsDisplayValue))}"); 
               formFieldInfo.Append($"Options Exported Value   : {(choiceFormField.OptionsExportedValue == null ? string.Empty : string.Join(",", choiceFormField.OptionsExportedValue))}"); 
               formFieldInfo.Append($"Selected Indices         : {(choiceFormField.SelectedIndices == null ? string.Empty : string.Join(",", choiceFormField.SelectedIndices))}"); 
               formFieldInfo.Append($"MultiSelect              : {choiceFormField.MultiSelect}"); 
               formFieldInfo.Append($"Choice Type              : {(choiceFormField.ChoiceType == DocumentChoiceFormField.ChoiceType_List ? "List" : "ComboBox")}"); 
            } 
            else if (formField is DocumentButtonFormField) 
            { 
               DocumentButtonFormField buttonFormField = formField as DocumentButtonFormField; 
               formFieldInfo.Append($"Is Checked               : {buttonFormField.IsChecked}"); 
               formFieldInfo.Append($"Button Type              : {(buttonFormField.ButtonType == DocumentButtonFormField.ButtonType_CheckBox ? "CheckBox" : "RadioButton")}"); 
            } 
 
            formFieldInfo.Append($"=========================================================================="); 
 
            Console.Write(formFieldInfo.ToString()); 
         } 
      } 
 
      // The following sample shows how to update a Document Text Form Field Value in the first document page 
      // Use DocumentButtonFormField.IsChecked to update DocumentButtonFormField values 
      // Use DocumentChoiceFormField.SelectedIndices to update DocumentChoiceFormField selected items 
      const int pageNumber = 1; 
      foreach (var formField in containers[pageNumber].Children) 
      { 
         DocumentTextFormField textFormField = formField as DocumentTextFormField; 
         if (textFormField != null) 
         { 
            textFormField.Value = "PDF Forms"; 
            break; 
         } 
      } 
 
      // Update the form fields containers 
      // DocumentFormFields reference 
      document.FormFields.SetFormFields(containers); 
   } 
} 
Requirements

Target Platforms

Help Version 22.0.2023.4.21
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.