> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pdf.co/llms.txt
> Use this file to discover all available pages before exploring further.

# PDF Filler

Integrate this step into your **Zapier** workflow to:

* Add text, images and signatures to a **PDF**
* Fill **PDF** form fields
* Create a new **PDF** from a template

<Frame>
  <img src="https://mintcdn.com/pdfco/tXGo3rbTS_pEF5es/images/integrations/zapier/zapier-step16.png?fit=max&auto=format&n=tXGo3rbTS_pEF5es&q=85&s=8579b3a82f6c7a49b8c43224ff01c57f" alt="Zapier Step" width="2045" height="2548" data-path="images/integrations/zapier/zapier-step16.png" />
</Frame>

## Input

| Name                                              | Description                                                                                                                                                                                       | Required          |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| **Source PDF**                                    | Provide the URL of the PDF document, or leave blank to create a new PDF from scratch.                                                                                                             | No                |
| [**Text Annotations**](#text-annotations)         | Specify each text annotation using the format `x;y;page;text`. See [Text Annotations](#text-annotations) for more information.                                                                    | Fill at least one |
| [**Image Embeds**](#image-embeds)                 | Define each image using the format `x;y;page;urltoimage;link;width;height`. Use PDF.co [PDF Inspector](https://app.pdf.co/pdf-edit-add-helper) to find or measure PDF coordinates.                | Fill at least one |
| [**Fillable Form Fields**](#fillable-form-fields) | Specify each fillable field value in the format `page;fieldName;value`. Use the [PDF.co Info Tool](https://app.pdf.co/pdf-info) or the **Get PDF Info** PDF.co step for field names in PDF forms. | Fill at least one |
| **Output PDF Name**                               | Name of the output PDF file.                                                                                                                                                                      | No                |
| **Allow Empty Text and Image Objects**            | Enable to process text objects and images even with empty URLs.                                                                                                                                   | No                |
| **Auto-trim Input Values**                        | Automatically removes leading/trailing spaces and line breaks from input text values.                                                                                                             | No                |
| **Template Data**                                 | Input data in `JSON` format that can be used within annotations and fields.                                                                                                                       | No                |
| **Custom Profiles**                               | A `JSON` string which adds options for the conversion process. See [Custom Profiles](#custom-profiles) for more.                                                                                  | No                |

## Data Format and Examples

### Text Annotations

This parameter represents one or more text objects to add to a **PDF**. Each text object is made of a parameter separated by the ; symbol. It uses the format:

`x;y;pages;text;fontSize;fontName;fontColor;link;transparent;width;height;alignment`

<Info>
  #### **EXAMPLE** Sample code

  Adds a text annotation, which links to `www.pdf.co`, to the `20,20` coordinate of all pages in a document (by using: `0-`). The text annotation uses the `Arial` font in red (by using `FF0000`) with a font size of `24`. It has a transparent background, a defined `300` by `200` bounding box and with text aligned to the `right`.

  ```text theme={null}
  20;20;0-;Test Text;24;Arial;FF0000;www.pdf.co;true;300;200;right
  ```
</Info>

<Info>
  #### **EXAMPLE** Sample code

  Where `24` is the font size. You can also add styles along with the font size using the following modifiers:

  * `+bold`
  * `+italic`
  * `+underline`
  * `+strikeout`

  ```text theme={null}
  20;20;0-;Testing Text;24+bold+italic;Arial
  ```
</Info>

<Info>
  #### **EXAMPLE** Sample code

  Another example with `bold`, `italic`, `underline` and `strikeout` styles would be as follows:

  ```text theme={null}
  250;20;0-;Text1|250;30;0-;Text2|250;50;0-;Text3
  ```
</Info>

<Info>
  #### **EXAMPLE** Sample code

  To put multiple objects, just use the `|` separator between objects.

  ```text theme={null}
  20;20;0-;Test Text;24;Arial;FF0000;www.pdf.co;true;300;200;right
  ```

  If you need to insert a line break then use `\n` or `{{$$newLine}}`.
</Info>

### Image Embeds

Each image or PDF object can be defined as:
`x;y;pages;urlToImageOrPDF;linkToOpen;width;height`

<Info>
  #### **EXAMPLE** Sample code

  ```text theme={null}
  20;80;0-;bytescout-com.s3-us-west-2.amazonaws.com/files/pdf-edit/logo.png;www.pdf.co;200;200
  ```
</Info>

<Info>
  #### **EXAMPLE** Sample code

  To put multiple objects, just use the `|` separator between objects.

  ```text theme={null}
  100;180;0-;bytescout-com.s3-us-west-2.amazonaws.com/files/pdf-edit/logo.png|400;180;0-;bytescout-com.s3-us-west-2.amazonaws.com/files/pdf-edit/logo.png;www.pdf.co;200;200
  ```
</Info>

You can also use a [base64 datauri](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) embedded image or a `filetoken://` link to a file from [PDF.co Built-In Files Storage](https://app.pdf.co/files).

### Fillable Form Fields

To fill fields in a **PDF** form, use the format `page;fieldName;value`.

To define the `font name`, `size` and `style` for the form input, use the following schema:

`page;fieldName;Field Text;size+bold+italic+underline+strikeout;FontName`

<Info>
  #### **EXAMPLE** Sample code

  ```text theme={null}
  0;editbox1;text for my edit box;12+bold;Arial
  ```
</Info>

<Info>
  #### **EXAMPLE** Sample code

  To fill a checkbox, use `true` against the target checkbox object.

  ```text theme={null}
  0;checkbox1;true
  ```
</Info>

<Info>
  #### **EXAMPLE** Sample code

  To separate multiple objects, use the `|` separator.

  ```text theme={null}
  0;editbox1;text for my edit box;12+bold;Arial|0;editbox2;text for another edit box;12;Arial|0;checkbox1;true
  ```
</Info>

### Source PDF URL & Google

<Note>
  When using **Google Drive**, it’s typically recommended to choose the **File** option. For more advanced file integration techniques, see [Integrating File Sources with pdf.co](/integrations/zapier/input-file-sources).

  <Frame>
    <img src="https://mintcdn.com/pdfco/tXGo3rbTS_pEF5es/images/integrations/zapier/zapier-google-input-source.png?fit=max&auto=format&n=tXGo3rbTS_pEF5es&q=85&s=8e304dac8851d0b17c9500f25c2d41c8" alt="Google File" width="819" height="102" data-path="images/integrations/zapier/zapier-google-input-source.png" />
  </Frame>
</Note>

## Output

| Name                  | Description                                                                              |
| --------------------- | ---------------------------------------------------------------------------------------- |
| `url`                 | The temporary **URL** on the **PDF.co** file server.                                     |
| `outputLinkValidTill` | A timestamp which indicates how long the `url` will be available for.                    |
| `error`               | Details of any errors (if any).                                                          |
| `status`              | The [response status](/api-reference/introduction) code. If all good this will be `200`. |
| `name`                | The name of the file.                                                                    |
| `jobId`               | The unique identifier for the job.                                                       |
| `credits`             | The credits spent on the process.                                                        |
| `remainingCredits`    | The credits left on your account.                                                        |
| `duration`            | The time it took for the process.                                                        |

## Custom profiles

Use Custom [Profiles](/api-reference/profiles) to enhance your workflow with additional processing options. Enter `JSON` configuration to customize OCR settings, output format, text extraction methods, and more.

<Frame>
  <img src="https://mintcdn.com/pdfco/tXGo3rbTS_pEF5es/images/integrations/zapier/custom-profiles.png?fit=max&auto=format&n=tXGo3rbTS_pEF5es&q=85&s=3a96b0395b56c9977724ee05327aa571" alt="Custom Profiles" width="843" height="111" data-path="images/integrations/zapier/custom-profiles.png" />
</Frame>

### Sample JSON

```json theme={null}
{ "ImageOptimizationFormat": "JPEG", "JPEGQuality": 25, "ResampleImages": true, "ResamplingResolution": 120, "GrayscaleImages": true }
```

<Tip>
  You can use any regular API parameter from the [API Reference](/api-reference) within Zapier using the `std_params` feature in profiles. The `std_params` enables the definition of regular API parameters in a JSON format, See [Standard Parameters](/api-reference/profiles#standard-parameters) for detailed documentation and examples.
</Tip>

| Parameter                 | Type           | Default | Description                                                                                                                                                            |
| ------------------------- | -------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `outputDataFormat`        | string         | -       | If you require your output as base64 format, set this to base64                                                                                                        |
| `Pages[0].SetCropBox()`   | array\[string] | -       | Crop a PDF file using an array to define the crop area. The crop box is defined by a rectangle \[x, y, width, height] in PDF points (1 Point = 1/72 inches).           |
| `DisableLigatures`        | boolean        | `false` | To disable ligaturization, for example for Hebrew, use the following:                                                                                                  |
| `FlattenDocument()`       | boolean        | `false` | Flattening a document renders it as read-only. Handy if you want to remove editing or copying capability.                                                              |
| `DataEncryptionAlgorithm` | string         | -       | Controls the encryption algorithm used for data encryption. See User-Controlled Encryption for more information. The available algorithms are: AES128, AES192, AES256. |
| `DataEncryptionKey`       | string         | -       | Controls the encryption key used for data encryption. See User-Controlled Encryption for more information.                                                             |
| `DataEncryptionIV`        | string         | -       | Controls the encryption IV used for data encryption. See User-Controlled Encryption for more information.                                                              |
| `DataDecryptionAlgorithm` | string         | -       | Controls the decryption algorithm used for data decryption. See User-Controlled Encryption for more information. The available algorithms are: AES128, AES192, AES256. |
| `DataDecryptionKey`       | string         | -       | Controls the decryption key used for data decryption. See User-Controlled Encryption for more information.                                                             |
| `DataDecryptionIV`        | string         | -       | Controls the decryption IV used for data decryption. See User-Controlled Encryption for more information.                                                              |
