# Forms Extension

> Forms Extension: 2 components, 19 items.

- Product: Adobe PDF Library 18
- Language: C++
- Version: APDFL18.0.5PlusP2a
- HTML page: https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/formsextension
- Version index: https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/llms.txt

## General

### Functions (2)

#### GetFormsExtensionVersionNumber

```cpp
void GetFormsExtensionVersionNumber(FormsExtensionVersion version)
```

Header: `DLExtrasProcs.h:1425`

Retrieves the Forms Extension Version Number.

**Parameters**

- `version` ([`FormsExtensionVersion`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/formsextension.md#FormsExtensionVersion)): OUT - Structure that holds the version number sub-components.

**Returns:** `void`

#### IsFormsExtensionSupported

```cpp
ASBool IsFormsExtensionSupported(void)
```

Header: `DLExtrasProcs.h:1276`

Validate the Forms Extension for APDFL dependencies are present.

**Parameters**

- (unnamed) (`void`)

**Returns:** [`ASBool`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASBool)

### Structures (1)

#### FormsExtensionVersion

```cpp
typedef  struct FormsExtensionVersionRec * FormsExtensionVersion
```

Header: `DLExtrasExpT.h:572`

## PDDoc

### Functions (12)

#### PDDocConvertXFAFieldsToAcroFormFields

```cpp
void PDDocConvertXFAFieldsToAcroFormFields(PDDoc doc, ASUns32 *pagesConverted)
```

Header: `DLExtrasProcs.h:1308`

Convert a XFA document into a document with only AcroForms. XFA content is not widely supported by PDF processors, converting this content transforms XFA fields into AcroForm fields which are more widely supported by PDF processors. All XFA fields are removed.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc)): IN/OUT The PDF document object.
- `pagesConverted` ([`ASUns32 *`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASUns32)): OUT The number of output pages created in the converted document.

**Returns:** `void`

#### PDDocExportAcroFormsData

```cpp
ASBool PDDocExportAcroFormsData(PDDoc doc, ASFileSys fileSys, ASPathName pathName, AcroFormExportType acroFormExportType)
```

Header: `DLExtrasProcs.h:1349`

Export the AcroForms data. AcroForms data is exported to a format that can later be imported into another AcroForms document.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))
- `fileSys` ([`ASFileSys`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASFileSys))
- `pathName` ([`ASPathName`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASPathName))
- `acroFormExportType` ([`AcroFormExportType`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/formsextension.md#AcroFormExportType))

**Returns:** [`ASBool`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASBool)

#### PDDocExportXFAFormsData

```cpp
ASBool PDDocExportXFAFormsData(PDDoc doc, ASFileSys fileSys, ASPathName pathName, XFAFormExportType exportType)
```

Header: `DLExtrasProcs.h:1322`

Export the XFA Forms data. XFA forms data is exported to a format that can later be imported into another XFA document.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))
- `fileSys` ([`ASFileSys`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASFileSys))
- `pathName` ([`ASPathName`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASPathName))
- `exportType` ([`XFAFormExportType`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/formsextension.md#XFAFormExportType))

**Returns:** [`ASBool`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASBool)

#### PDDocFlattenAcroFormFields

```cpp
void PDDocFlattenAcroFormFields(PDDoc doc)
```

Header: `DLExtrasProcs.h:1296`

Flatten an AcroForms document. Interactive AcroForm fields are flattened into static PDF page content. All AcroForm fields are removed.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))

**Returns:** `void`

#### PDDocFlattenNonFormAnnotations

```cpp
void PDDocFlattenNonFormAnnotations(PDDoc doc)
```

Header: `DLExtrasProcs.h:1407`

Flatten a Non-Form (no AcroForm, no XFA) document's Annotations. Annotations are flattened into static PDF page content.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))

**Returns:** `void`

#### PDDocFlattenXFAFields

```cpp
void PDDocFlattenXFAFields(PDDoc doc, ASUns32 *pagesOutput)
```

Header: `DLExtrasProcs.h:1288`

Flatten a XFA Document (Static or Dynamic). XFA content is not widely supported by PDF processors. Flattening this content transforms into static PDF page content that is part of typical PDF files that can easily be understood by PDF processors. All XFA fields are removed.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))
- `pagesOutput` ([`ASUns32 *`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASUns32))

**Returns:** `void`

#### PDDocFlattenXFAFieldsAsIfPrinted

```cpp
void PDDocFlattenXFAFieldsAsIfPrinted(PDDoc doc, ASUns32 *pagesOutput)
```

Header: `DLExtrasProcs.h:1397`

Flatten a XFA Document (Static or Dynamic) as if printed. XFA content is not widely supported by PDF processors. Flattening this content transforms into static PDF page content that is part of typical PDF files that can easily be understood by PDF processors. All XFA fields are removed. The Flattened appearance will take into consideration how the document's appearance should appear when printed.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))
- `pagesOutput` ([`ASUns32 *`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASUns32))

**Returns:** `void`

#### PDDocGetFormsType

```cpp
void PDDocGetFormsType(PDDoc doc, PDDocFormsType *formsType)
```

Header: `DLExtrasProcs.h:1417`

Returns the document's Forms Type. This method is more versatile than the related PDDocIsDynamicXFA() and PDDocIsStaticXFA() methods.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))
- `formsType` ([`PDDocFormsType *`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/formsextension.md#PDDocFormsType))

**Returns:** `void`

#### PDDocImportAcroFormsData

```cpp
ASBool PDDocImportAcroFormsData(PDDoc doc, ASFileSys fileSys, ASPathName pathName, AcroFormImportType acroFormImportType)
```

Header: `DLExtrasProcs.h:1363`

Import the AcroForms data. AcroForms data is imported from a supported format into the AcroForms document so its existing fields can be populated for example.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))
- `fileSys` ([`ASFileSys`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASFileSys))
- `pathName` ([`ASPathName`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASPathName))
- `acroFormImportType` ([`AcroFormImportType`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/formsextension.md#AcroFormImportType))

**Returns:** [`ASBool`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASBool)

#### PDDocImportXFAFormsData

```cpp
ASBool PDDocImportXFAFormsData(PDDoc doc, ASFileSys fileSys, ASPathName pathName)
```

Header: `DLExtrasProcs.h:1335`

Import the XFA Forms data. XFA forms data is imported from a supported format into the XFA document so its existing fields can be populated for example.

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))
- `fileSys` ([`ASFileSys`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASFileSys))
- `pathName` ([`ASPathName`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASPathName))

**Returns:** [`ASBool`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASBool)

#### PDDocIsDynamicXFA

```cpp
ASBool PDDocIsDynamicXFA(PDDoc doc)
```

Header: `DLExtrasProcs.h:1373`

Check if document is Dynamic XFA

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))

**Returns:** [`ASBool`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASBool)

#### PDDocIsStaticXFA

```cpp
ASBool PDDocIsStaticXFA(PDDoc doc)
```

Header: `DLExtrasProcs.h:1383`

Check if document is Static XFA

**Parameters**

- `doc` ([`PDDoc`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/pdlayer.md#PDDoc))

**Returns:** [`ASBool`](https://docs.datalogics.com/apdfl18/CPlusPlus/APDFL18.0.5PlusP2a/aslayer.md#ASBool)

### Enums (4)

#### AcroFormExportType

Header: `DLExtrasExpT.h:542`

AcroForm Export Data type options.

**Values**

- `AcroFormExportTypeXFDF = 1`: XFDF (XML Forms Data Format) representing form field data.
- `AcroFormExportTypeFDF = 2`: FDF (Forms Data Format) representing form field data.
- `AcroFormExportTypeXML = 3`: XML (Extensible Markup Language) representing form field data.

#### AcroFormImportType

Header: `DLExtrasExpT.h:532`

AcroForm Import Data type options.

**Values**

- `AcroFormImportTypeXFDF = 1`: XFDF (XML Forms Data Format) representing form field data.
- `AcroFormImportTypeFDF = 2`: FDF (Forms Data Format) representing form field data.
- `AcroFormImportTypeXML = 3`: XML (Extensible Markup Language) representing form field data.

#### PDDocFormsType

Header: `DLExtrasExpT.h:553`

Document Forms Type options.

**Values**

- `PDDocFormsTypeNone = 1`: Document contains no Forms.
- `PDDocFormsTypeDynamicXFA = 2`: Document contains Dynamic XFA Forms.
- `PDDocFormsTypeStaticXFA = 3`: Document contains Static XFA Forms.
- `PDDocFormsTypeAcroForms = 4`: Document contains AcroForms.

#### XFAFormExportType

Header: `DLExtrasExpT.h:522`

XFA Form Export Data type options.

**Values**

- `XFAFormExportTypeXML = 1`: XML (Extensible Markup Language) representing form field data.
- `XFAFormExportTypeXFD = 2`: XFD (Extensible Forms Description language) representing form field data.
- `XFAFormExportTypeXDP = 3`: XDP (XML Data Package) representing form field data.
