> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/appian/smart-services/pdfnet-smart-services.md).

# Apryse PDFNet Smart Services

Discover how Apryse PDFNet SDK's Smart Services on Appian can streamline document processing workflows. Convert Office documents to PDFs and generate PDFs from templates with ease. Learn more here! Ap

## Overview

Apryse PDFNet SDK provides a multitude of document processing and manipulation capabilities through its Smart Services. These services are made available through Smart Services on Appian, which can be used to automate document processing workflows. You can use them in process models to merge documents and then redact them when a user clicks a button, or to convert uploaded Office documents to PDFs.

## Available PDFNet Smart Services

### Convert Office to PDF

This smart service converts Office documents to PDFs. It supports the following file types: DOC, DOCX, XLS, XLSX, PPT, PPTX. You can use this to convert Office documents when users upload them for archiving or annotating purposes.

**Input Parameters**

| Parameter Name            | Type     | Required | Multiple | Description                                           |
| ------------------------- | -------- | -------- | -------- | ----------------------------------------------------- |
| `Input Document IDs`      | Document | Yes      | Yes      | The document(s) to convert to PDF.                    |
| `Save Folder ID`          | Folder   | Yes      | No       | The folder where the converted PDFs will be saved to. |
| `Should Linearize Output` | Boolean  | No       | No       | Whether the output PDF should be linearized.          |

**Output Parameters**

| Parameter Name        | Type     | Description                                 |
| --------------------- | -------- | ------------------------------------------- |
| `Error Message`       | Text     | The error message if the conversion failed. |
| `Has Error`           | Boolean  | Whether the conversion failed.              |
| `Output Document IDs` | Document | The converted PDF document(s).              |

### Generate PDF from Office Template

This smart service generates a PDF from an Office Word template. The syntax uses moustaches (`{{` and `}}`) to denote placeholders in the template. For a guide on using this syntax, please check out the [PDFNet SDK documentation](/core/generate-via-template/data-model.md). This is useful when you want to generate a PDF from a template and populate it with data, such as a contract or invoice.

**Input Parameters**

| Parameter Name            | Type     | Required | Multiple | Description                                          |
| ------------------------- | -------- | -------- | -------- | ---------------------------------------------------- |
| `Template Document ID`    | Document | Yes      | No       | The Word template document.                          |
| `JSON Data`               | Text     | Yes      | No       | The JSON data to populate the template with.         |
| `Save Folder ID`          | Folder   | Yes      | No       | The folder where the generated PDF will be saved to. |
| `Filename`                | Text     | Yes      | No       | The filename of the generated PDF.                   |
| `Should Linearize Output` | Boolean  | No       | No       | Whether the output PDF should be linearized.         |

**Output Parameters**

| Parameter Name       | Type     | Description                                 |
| -------------------- | -------- | ------------------------------------------- |
| `Error Message`      | Text     | The error message if the conversion failed. |
| `Has Error`          | Boolean  | Whether the conversion failed.              |
| `Output Document ID` | Document | The generated PDF document.                 |

### Search & Redact Documents

This smart service searches for text in a document and redacts it completely from the document. This is useful when you want to remove sensitive information from a document before sharing it with others. You can search for a specific string or use a regular expression to search for patterns.

**Input Parameters**

| Parameter Name            | Type     | Required | Multiple | Description                                                                                                                                                                        |
| ------------------------- | -------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Document IDs`            | Document | Yes      | Yes      | The document(s) to search and redact.                                                                                                                                              |
| `Search Term`             | Text     | Yes      | No       | The search term to redact. This can be a string or a string with a regular expression.                                                                                             |
| `Save As New Document`    | Boolean  | No       | No       | Whether to save the redacted document as a new document. If `true`, then `Save Folder ID`, `Prefix`, and `Suffix` will be used. If `false`, the original document will be updated. |
| `Save Folder ID`          | Folder   | No       | No       | The folder where the redacted PDFs will be saved to. Required if `Save As New Document` is `true`.                                                                                 |
| `Prefix`                  | Text     | No       | No       | The prefix to add to the redacted document filename.                                                                                                                               |
| `Suffix`                  | Text     | No       | No       | The suffix to add to the redacted document filename.                                                                                                                               |
| `Should Linearize Output` | Boolean  | No       | No       | Whether the output PDF should be linearized.                                                                                                                                       |

**Output Parameters**

| Parameter Name        | Type     | Description                                 |
| --------------------- | -------- | ------------------------------------------- |
| `Error Message`       | Text     | The error message if the conversion failed. |
| `Has Error`           | Boolean  | Whether the conversion failed.              |
| `Output Document IDs` | Document | The redacted PDF document(s).               |

### Merge Documents

This smart service merges multiple documents into a single PDF. Office and images are supported as well.

**Input Parameters**

| Parameter Name            | Type     | Required | Multiple | Description                                                                                                                       |
| ------------------------- | -------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `Document IDs`            | Document | Yes      | Yes      | The document(s) to merge.                                                                                                         |
| `Save As New Document`    | Boolean  | No       | No       | Whether to save the merged document as a new document. If `true`, then `Save Folder ID`, and `Filename` will be used. If `false`, |
| `Save Folder ID`          | Folder   | No       | No       | The folder where the merged PDF will be saved to.                                                                                 |
| `Filename`                | Text     | No       | No       | The filename of the merged PDF.                                                                                                   |
| `Should Linearize Output` | Boolean  | No       | No       | Whether the output PDF should be linearized.                                                                                      |

**Output Parameters**

| Parameter Name       | Type     | Description                                 |
| -------------------- | -------- | ------------------------------------------- |
| `Error Message`      | Text     | The error message if the conversion failed. |
| `Has Error`          | Boolean  | Whether the conversion failed.              |
| `Output Document ID` | Document | The merged PDF document.                    |

### Flatten Documents

This smart service flattens annotations and form fields in a document. This is useful when you want to prevent users from editing the document or just optimizing the document for viewing.

**Input Parameters**

| Parameter Name               | Type     | Required | Multiple | Description                                                                                                                                                                         |
| ---------------------------- | -------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Document IDs`               | Document | Yes      | Yes      | The document(s) to flatten.                                                                                                                                                         |
| `Should Flatten Annotations` | Boolean  | No       | No       | Whether to flatten annotations.                                                                                                                                                     |
| `Save As New Document`       | Boolean  | No       | No       | Whether to save the flattened document as a new document. If `true`, then `Save Folder ID`, `Prefix`, and `Suffix` will be used. If `false`, the original document will be updated. |
| `Save Folder ID`             | Folder   | No       | No       | The folder where the flattened PDFs will be saved to. Required if `Save As New Document` is `true`.                                                                                 |
| `Prefix`                     | Text     | No       | No       | The prefix to add to the flattened document filename.                                                                                                                               |
| `Suffix`                     | Text     | No       | No       | The suffix to add to the flattened document filename.                                                                                                                               |
| `Should Linearize Output`    | Boolean  | No       | No       | Whether the output PDF should be linearized.                                                                                                                                        |

**Output Parameters**

| Parameter Name        | Type     | Description                                 |
| --------------------- | -------- | ------------------------------------------- |
| `Error Message`       | Text     | The error message if the conversion failed. |
| `Has Error`           | Boolean  | Whether the conversion failed.              |
| `Output Document IDs` | Document | The flattened PDF document(s).              |

### Extract XFDF

This smart service extracts XFDF data from a document. XFDF is a format used to store annotations, and form field data in a PDF document. This is useful when you want to extract the annotations, and form field data from a document, and store it in a database or another system, and then import it back into the document later.

**Input Parameters**

| Parameter Name  | Type     | Required | Multiple | Description                                                            |
| --------------- | -------- | -------- | -------- | ---------------------------------------------------------------------- |
| `Document ID`   | Document | Yes      | No       | The document to extract XFDF data from.                                |
| `Export Option` | Number   | No       | No       | The export option to use. Forms Only: 0, Annotations Only: 1, Both: 2. |

**Output Parameters**

| Parameter Name  | Type    | Description                                  |
| --------------- | ------- | -------------------------------------------- |
| `Error Message` | Text    | The error message if the conversion failed.  |
| `Has Error`     | Boolean | Whether the conversion failed.               |
| `XFDF String`   | Text    | The XFDF string extracted from the document. |

### Merge XFDF

This smart service merges XFDF data into a document. XFDF is a format used to store annotations, and form field data in a PDF document. This is useful when you want to import the annotations, and form field data back into a document from a database or another system.

**Input Parameters**

| Parameter Name            | Type     | Required | Multiple | Description                                                                                                                                                              |
| ------------------------- | -------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Document ID`             | Document | Yes      | No       | The document to merge XFDF data into.                                                                                                                                    |
| `XFDF String`             | Text     | Yes      | No       | The XFDF string to merge into the document.                                                                                                                              |
| `Save As New Document`    | Boolean  | No       | No       | Whether to save the merged document as a new document. If `true`, then `Save Folder ID`, and `Filename` will be used. If `false`, the original document will be updated. |
| `Save Folder ID`          | Folder   | No       | No       | The folder where the merged PDFs will be saved to. Required if `Save As New Document` is `true`.                                                                         |
| `Filename`                | Text     | No       | No       | The filename of the merged PDF.                                                                                                                                          |
| `Should Linearize Output` | Boolean  | No       | No       | Whether the output PDF should be linearized.                                                                                                                             |

**Output Parameters**

| Parameter Name       | Type     | Description                                 |
| -------------------- | -------- | ------------------------------------------- |
| `Error Message`      | Text     | The error message if the conversion failed. |
| `Has Error`          | Boolean  | Whether the conversion failed.              |
| `Output Document ID` | Document | The merged PDF document.                    |

### Certify Documents

This smart service certifies PDF documents. Certification is a way to secure a document by adding a digital signature to it. This is useful when you want to ensure that the document has not been tampered with and that it comes from a trusted source.

**Input Parameters**

| Parameter Name            | Type     | Required | Multiple | Description                                                                                                                                                                         |
| ------------------------- | -------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Document IDs`            | Document | Yes      | Yes      | The document(s) to certify.                                                                                                                                                         |
| `Private Key File ID`     | Document | Yes      | No       | The private key file to use for signing the document.                                                                                                                               |
| `Key File Password`       | Text     | Yes      | No       | The password to decrypt the private key file.                                                                                                                                       |
| `Save As New Document`    | Boolean  | No       | No       | Whether to save the certified document as a new document. If `true`, then `Save Folder ID`, `Prefix`, and `Suffix` will be used. If `false`, the original document will be updated. |
| `Save Folder ID`          | Folder   | No       | No       | The folder where the certified PDFs will be saved to. Required if `Save As New Document` is `true`.                                                                                 |
| `Prefix`                  | Text     | No       | No       | The prefix to add to the certified document filename.                                                                                                                               |
| `Suffix`                  | Text     | No       | No       | The suffix to add to the certified document filename.                                                                                                                               |
| `Should Linearize Output` | Boolean  | No       | No       | Whether the output PDF should be linearized.                                                                                                                                        |

**Output Parameters**

| Parameter Name        | Type     | Description                                 |
| --------------------- | -------- | ------------------------------------------- |
| `Error Message`       | Text     | The error message if the conversion failed. |
| `Has Error`           | Boolean  | Whether the conversion failed.              |
| `Output Document IDs` | Document | The certified PDF document(s).              |

### Validate Certified Documents

This smart service validates certified PDF documents. Validation is a way to ensure that the document has not been tampered with and that it comes from a trusted source.

**Input Parameters**

| Parameter Name           | Type     | Required | Multiple | Description                                               |
| ------------------------ | -------- | -------- | -------- | --------------------------------------------------------- |
| `Document IDs`           | Document | Yes      | Yes      | The document(s) to validate.                              |
| `Public Key File ID`     | Document | Yes      | No       | The public key file to use for validating the document.   |
| `Use Max Security Level` | Boolean  | No       | No       | Whether to use the maximum security level for validation. |

**Output Parameters**

| Parameter Name       | Type    | Description                                 |
| -------------------- | ------- | ------------------------------------------- |
| `Error Message`      | Text    | The error message if the conversion failed. |
| `Has Error`          | Boolean | Whether the conversion failed.              |
| `Validation Results` | Boolean | The validation results.                     |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.apryse.com/appian/smart-services/pdfnet-smart-services.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
