---
title: "PdfFormField"
canonical_url: "https://www.nutrient.io/api/python/editors/pdf/formfields/pdf-form-field/"
md_url: "https://www.nutrient.io/api/python/editors/pdf/formfields/pdf-form-field.md"
last_updated: "2026-06-09T10:32:42.528Z"
description: "Represents a form field in a PDF document. Form fields can be terminal (with widget annotations) or non-terminal (with child fields)."
---

Represents a form field in a PDF document. Form fields can be terminal (with widget annotations) or non-terminal (with child fields). This is the base class for all form field types. Use the specific subclasses (, , , etc.) for type-specific functionality.

```python

from nutrient_sdk import PdfFormField

```

## Construction

`PdfFormField` cannot be instantiated directly. Obtain instances through static factory methods or via other SDK classes.

## Methods

### get_child

```python

def get_child(self, index: int) -> PdfFormField

```

Gets a child field by index.

**Parameters:**

| Name    | Type  | Description                           |
| ------- | ----- | ------------------------------------- |
| `index` | `int` | The 0-based index of the child field. |

**Returns:** [`PdfFormField`](/api/python/editors/pdf/formfields/pdf-form-field/) - The child at the specified index.

**Raises:**

- [`IndexOutOfBoundsException`](/api/python/exceptions/index-out-of-bounds-exception/): Thrown when index is out of range.

---

### get_widget

```python

def get_widget(self, index: int) -> PdfWidgetAnnotation

```

Gets a widget annotation by index.

**Parameters:**

| Name    | Type  | Description                      |
| ------- | ----- | -------------------------------- |
| `index` | `int` | The 0-based index of the widget. |

**Returns:** [`PdfWidgetAnnotation`](/api/python/editors/pdf/annotations/pdf-widget-annotation/) - The at the specified index.

**Raises:**

- [`IndexOutOfBoundsException`](/api/python/exceptions/index-out-of-bounds-exception/): Thrown when index is out of range.

---

### remove_child_at

```python

def remove_child_at(self, index: int) -> None

```

Removes a child field at the specified index. Also removes any grandchild fields and associated widget annotations.

**Parameters:**

| Name    | Type  | Description                                     |
| ------- | ----- | ----------------------------------------------- |
| `index` | `int` | The 0-based index of the child field to remove. |

**Raises:**

- [`IndexOutOfBoundsException`](/api/python/exceptions/index-out-of-bounds-exception/): Thrown when index is out of range.

- [`SdkException`](/api/python/exceptions/sdk-exception/): Thrown when the operation fails.

---

## Properties

### child_count

```python

@property
def child_count(self) -> int

```

The number of child fields.

**Type:** `int`

*Read-only property.*

---

### default_value

```python

@property
def default_value(self) -> str

```

The default value of the field.

**Type:** `str`

*Read-only property.*

---

### field_type

```python

@property
def field_type(self) -> PdfFormFieldType

```

The type of this form field.

**Type:** [`PdfFormFieldType`](/api/python/enums/pdf-form-field-type/)

*Read-only property.*

---

### full_name

```python

@property
def full_name(self) -> str

```

The fully qualified name of this field (dot-separated path from root).

**Type:** `str`

*Read-only property.*

---

### is_read_only

```python

@property
def is_read_only(self) -> bool

@is_read_only.setter
def is_read_only(self, value: bool) -> None

```

Whether the field is read-only.

**Type:** `bool`

---

### is_required

```python

@property
def is_required(self) -> bool

@is_required.setter
def is_required(self, value: bool) -> None

```

Whether the field is required.

**Type:** `bool`

---

### is_terminal

```python

@property
def is_terminal(self) -> bool

```

Whether this is a terminal field (has widget annotations instead of child fields). Terminal fields represent the actual interactive form elements.

**Type:** `bool`

*Read-only property.*

---

### name

```python

@property
def name(self) -> str

```

The partial name of this field (T entry).

**Type:** `str`

*Read-only property.*

---

### parent

```python

@property
def parent(self) -> PdfFormField

```

The parent field of this field, or null if this is a top-level field.

**Type:** [`PdfFormField`](/api/python/editors/pdf/formfields/pdf-form-field/)

*Read-only property.*

---

### value

```python

@property
def value(self) -> str

@value.setter
def value(self, value: str) -> None

```

The current value of the field.

**Type:** `str`

---

### widget_count

```python

@property
def widget_count(self) -> int

```

The number of widget annotations.

**Type:** `int`

*Read-only property.*

---

## Inheritors

- [`PdfCheckBoxField`](/api/python/editors/pdf/formfields/pdf-check-box-field/)

- [`PdfComboBoxField`](/api/python/editors/pdf/formfields/pdf-combo-box-field/)

- [`PdfListBoxField`](/api/python/editors/pdf/formfields/pdf-list-box-field/)

- [`PdfPushButtonField`](/api/python/editors/pdf/formfields/pdf-push-button-field/)

- [`PdfRadioButtonField`](/api/python/editors/pdf/formfields/pdf-radio-button-field/)

- [`PdfSignatureField`](/api/python/editors/pdf/formfields/pdf-signature-field/)

- [`PdfTextField`](/api/python/editors/pdf/formfields/pdf-text-field/)

---

## Related pages

- [All public classes import directly from the top-level package:](/api/python/editors/pdf/formfields.md)
- [Pdf Combo Box Field](/api/python/editors/pdf/formfields/pdf-combo-box-field.md)
- [Pdf Check Box Field](/api/python/editors/pdf/formfields/pdf-check-box-field.md)
- [Pdf Form Field Collection](/api/python/editors/pdf/formfields/pdf-form-field-collection.md)
- [Pdf List Box Field](/api/python/editors/pdf/formfields/pdf-list-box-field.md)
- [Pdf Push Button Field](/api/python/editors/pdf/formfields/pdf-push-button-field.md)
- [Pdf Radio Button Field](/api/python/editors/pdf/formfields/pdf-radio-button-field.md)
- [Pdf Signature Field](/api/python/editors/pdf/formfields/pdf-signature-field.md)
- [Pdf Text Field](/api/python/editors/pdf/formfields/pdf-text-field.md)

