Back to Devexpress

PdfTextFormFieldFacade Class

officefileapi-devexpress-dot-pdf-95eeee66.md

latest6.1 KB
Original Source

PdfTextFormFieldFacade Class

Contains a set of properties used to manage text form fields without without access to their inner structure.

Namespace : DevExpress.Pdf

Assembly : DevExpress.Pdf.v25.2.Core.dll

NuGet Package : DevExpress.Pdf.Core

Declaration

csharp
public class PdfTextFormFieldFacade :
    PdfFormFieldFacade<PdfTextWidgetFacade, PdfTextFormField>
vb
Public Class PdfTextFormFieldFacade
    Inherits PdfFormFieldFacade(Of PdfTextWidgetFacade, PdfTextFormField)

The following members return PdfTextFormFieldFacade objects:

Remarks

The code sample below divides one form field into equally spaced positions (combs) and enables multiline text in the other form field:

csharp
using (PdfDocumentProcessor pdfDocumentProcessor = new PdfDocumentProcessor())
{
    pdfDocumentProcessor.LoadDocument("Documents//FormDemo.pdf");

    PdfDocumentFacade documentFacade = pdfDocumentProcessor.DocumentFacade;
    PdfAcroFormFacade acroForm = documentFacade.AcroForm;
    PdfTextFormFieldFacade visaField = acroForm.GetTextFormField("VisaNo");

    //Divide field text into equally spaced positions:
    visaField.InputType = PdfTextFieldInputType.Comb;
    visaField.Multiline = false;

    //Limit the number of inserted characters:
    visaField.MaxLength = 8;

    //Enable multiline text in the text field:
    PdfTextFormFieldFacade addressField = acroForm.GetTextFormField("Address");
    addressField.Multiline = true;

    addressField.Scrollable = true;
    addressField.SpellCheck = false;
}
vb
Using pdfDocumentProcessor As New PdfDocumentProcessor()
  pdfDocumentProcessor.LoadDocument("Documents//FormDemo.pdf")

  Dim documentFacade As PdfDocumentFacade = pdfDocumentProcessor.DocumentFacade
  Dim acroForm As PdfAcroFormFacade = documentFacade.AcroForm
  Dim visaField As PdfTextFormFieldFacade = acroForm.GetTextFormField("VisaNo")

  'Divide field text into equally spaced positions:
  visaField.InputType = PdfTextFieldInputType.Comb
  visaField.Multiline = False

  'Limit the number of inserted characters:
  visaField.MaxLength = 8

  'Enable multiline text in the text field:
  Dim addressField As PdfTextFormFieldFacade = acroForm.GetTextFormField("Address")
  addressField.Multiline = True

  addressField.Scrollable = True
  addressField.SpellCheck = False
End Using

Change Widget Annotation Settings

A widget annotation contains a form field’s appearance and display properties. One field can be related to multiple widget annotations.

Use the Widgets property to get the form field widgets settings.

The code sample below changes the text form field appearance:

csharp
using (PdfDocumentProcessor pdfDocumentProcessor = new PdfDocumentProcessor())
{
    pdfDocumentProcessor.LoadDocument("Documents//FormDemo.pdf");

    PdfDocumentFacade documentFacade = pdfDocumentProcessor.DocumentFacade;
    PdfAcroFormFacade acroForm = documentFacade.AcroForm;

    //Change all text form fields' color settings:
    var fields = acroForm.GetFields();
    foreach (PdfFormFieldFacade field in fields)
    {
        if (field.Type == PdfFormFieldType.Text)
        {
            ChangeFormFieldColor(field);
        }
    }
}

  private static void ChangeFormFieldColor(PdfFormFieldFacade field)
  {
      foreach (PdfWidgetFacade pdfWidget in field)
      {
          //Change color and border settings

          pdfWidget.BorderWidth = 1;
          pdfWidget.BackgroundColor = new PdfRGBColor(0.81, 0.81, 0.81);
          pdfWidget.BorderColor = new PdfRGBColor(0.47, 0.44, 0.67);
          pdfWidget.FontColor = new PdfRGBColor(0.34, 0.25, 0.36);

          //Change border style:
          pdfWidget.BorderStyle = PdfBorderStyle.Underline;
      }
  }
vb
Using pdfDocumentProcessor As New PdfDocumentProcessor()
  pdfDocumentProcessor.LoadDocument("Documents//FormDemo.pdf")

  Dim documentFacade As PdfDocumentFacade = pdfDocumentProcessor.DocumentFacade
  Dim acroForm As PdfAcroFormFacade = documentFacade.AcroForm

  'Change all text form fields' color settings:
  Dim fields = acroForm.GetFields()
  For Each field As PdfFormFieldFacade In fields
    If field.Type = PdfFormFieldType.Text Then
      ChangeFormFieldColor(field)
    End If
  Next field
End Using

  private static void ChangeFormFieldColor(PdfFormFieldFacade field)
    For Each pdfWidget As PdfWidgetFacade In field
      'Change color and border settings

      pdfWidget.BorderWidth = 1
      pdfWidget.BackgroundColor = New PdfRGBColor(0.81, 0.81, 0.81)
      pdfWidget.BorderColor = New PdfRGBColor(0.47, 0.44, 0.67)
      pdfWidget.FontColor = New PdfRGBColor(0.34, 0.25, 0.36)

      'Change border style:
      pdfWidget.BorderStyle = PdfBorderStyle.Underline
    Next pdfWidget

Implements

IEnumerable<PdfWidgetFacade>

IEnumerable

Inheritance

Object PdfFormFieldFacade PdfFormFieldFacade<PdfTextWidgetFacade, PdfTextFormField> PdfTextFormFieldFacade

See Also

PdfTextFormFieldFacade Members

DevExpress.Pdf Namespace