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

# HTML to PDF

> Convert HTML to PDF. Also supports HTML templates.

<Frame>
  <img src="https://mintcdn.com/pdfco/tXGo3rbTS_pEF5es/images/integrations/zapier/zapier-step14.png?fit=max&auto=format&n=tXGo3rbTS_pEF5es&q=85&s=3fdb9ad58fcbde9516c5d3d82b56585f" alt="Zapier Step" width="2082" height="3517" data-path="images/integrations/zapier/zapier-step14.png" />
</Frame>

## Input

<Tip>
  The Zapier action doesn't expose every PDF.co API parameter as a field. To pass a parameter that isn't shown, put it under `std_params` in the **Custom Profiles** field (see [Custom Profiles](#custom-profiles) below). For example, to add a repeating header and footer to every page:

  ```json theme={null}
  { "std_params": { "header": "<div>My Header</div>", "footer": "<div>My Footer</div>" } }
  ```

  This works for any standard parameter listed in the [API Reference](/api/pdf-from-html/convert). See [Standard Parameters](/api/profiles#standard-parameters) for details.
</Tip>

| Name | Description | Required |
| - | - | - |
| **HTML or URL Input** | Enter the **HTML** content or **URL** which you want to convert. | Yes (unless **HTML Template ID** is used) |
| **HTML Template ID** | Select a Template ID from your [HTML to PDF Templates](https://app.pdf.co/templates/html) | Yes (unless **HTML or URL Input** is used) |
| **Page Orientation** | Choose the **PDF** page orientation. | No |
| **Page Size** | Select the paper size for the **PDF**. | No |
| **Custom Page Size** | Use this instead of **Page Size** to specify a custom paper size for the **PDF** in `width height` format. You can use `px`, `mm`, `cm` or `in` units. For example: `200px 300px`, `200mm 300mm`, `20cm 30cm`, or `6in 8in`. | No |
| **Custom Margins** | Override the default margins. Specify the margins in the `top right bottom left` order. You can use `px`, `mm`, `cm` or `in` units. You can set margins for all sides at once using a single value, for example: `10px`. | No |
| **Render Page Background** | Whether to render the page background from the **HTML** source or not. | No |
| **Media Type** | Select `Print` or `Screen` quality for the **PDF** output | No |
| **Do not wait until full page load** | Set to `true` to not wait for full page load. Helps speed up pages with dynamic content. | No |
| **HTML Template Data** | Input data for **HTML** templates. Accepts **JSON** or **CSV** format. For example, for **JSON**: `'{ "total": "500" }'`, or for **CSV**: `'column1,column2,column3 value1,value2,value3'`. If your template ID has variables this is how you can input data your into the **PDF**. | No |
| **Name** | The output file name. If left blank then `htmltopdf.pdf` will be used. | No |
| **Custom Profiles** | A `JSON` string which adds options for the conversion process. See [Custom Profiles](#custom-profiles) for more. | No |

## 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/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/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) 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/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 |
| `HTMLCodeHeadInject` | string | - | Injects CSS into the HTML `<head>` section to prevent page breaks within specified elements. See HTML to PDF Knowledge Base for more information. |
| `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. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.