Back to Devexpress

PdfAcroFormFacade.GetFields() Method

officefileapi-devexpress-dot-pdf-dot-pdfacroformfacade.md

latest4.7 KB
Original Source

PdfAcroFormFacade.GetFields() Method

Gets all AcroForm fields’ properties.

Namespace : DevExpress.Pdf

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

NuGet Package : DevExpress.Pdf.Core

Declaration

csharp
public IEnumerable<PdfFormFieldFacade> GetFields()
vb
Public Function GetFields As IEnumerable(Of PdfFormFieldFacade)

Returns

TypeDescription
IEnumerable<PdfFormFieldFacade>

A list of objects that contain form field properties.

|

Remarks

Use the PdfAcroFormFacade.GetFormField() method to obtain a specific form field’s properties. If you know the form field type, use one of the PdfAcroFormFacade methods (GetButtonFormField(), GetCheckBoxFormField(), GetComboBoxFormField() and so on) to obtain its parameters. Utilize the PdfAcroFormFacade.GetNames() method to get a list of form field names.

The GetFields method returns a list of PdfFormFieldFacade objects. Each object contains form field and widget (appearance) properties without access to the form field’s inner structure. Use the PdfFormFieldFacade.Widgets property to get the form fields widgets’ settings.

The code sample below retrieves all fields and changes their appearance:

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

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

    //Change all form fields' color settings:
    var fields = acroForm.GetFields();
    foreach (PdfFormFieldFacade field in fields)
    {
        ChangeFormFieldColor(field);
    }
    pdfDocumentProcessor.SaveDocument("FormDemo_new.pdf");
}

  private static void ChangeFormFieldColor(PdfFormFieldFacade field)
  {
      foreach (PdfWidgetFacade pdfWidget in field)
      {
          //Change color and border settings
          //for all form fields:
          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 for text form fields:
          if (field.Type == PdfFormFieldType.Text)
          {
              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 form fields' color settings:
  Dim fields = acroForm.GetFields()
  For Each field As PdfFormFieldFacade In fields
    ChangeFormFieldColor(field)
  Next field
  pdfDocumentProcessor.SaveDocument("FormDemo_new.pdf")
End Using

  private static void ChangeFormFieldColor(PdfFormFieldFacade field)
    For Each pdfWidget As PdfWidgetFacade In field
      'Change color and border settings
      'for all form fields:
      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 for text form fields:
      If field.Type = PdfFormFieldType.Text Then
        pdfWidget.BorderStyle = PdfBorderStyle.Underline
      End If
    Next pdfWidget

See Also

PdfAcroFormFacade Class

PdfAcroFormFacade Members

DevExpress.Pdf Namespace