---
title: "PDF-to-HTML API"
canonical_url: "https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-to-html-api/"
md_url: "https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-to-html-api.md"
last_updated: "2026-07-06T00:00:00.000Z"
description: "Convert PDF files to HTML using Nutrient DWS Processor API. Export PDFs as page-based or reflowable HTML for web publishing and content migration."
---

# PDF-to-HTML API

Use the PDF-to-HTML API to convert PDF documents to HTML. Nutrient DWS Processor API supports HTML output for workflows such as web publishing, content migration, and document review in browser-based systems.

The [`/build` endpoint](https://www.nutrient.io/api/reference/public/#tag/Document-Editing/operation/build-document) handles PDF-to-HTML conversion. Add the source PDF as a `parts` item, and set `output.type` to `html`.

For signup, pricing, and task-level examples, refer to the [PDF-to-HTML API task page](https://www.nutrient.io/api/pdf-to-html-api/).

## Convert a PDF to HTML

The following example converts `document.pdf` to `result.html`:

### Shell

### Shell (Windows)

### Java

### C#

### JavaScript

### Python

### PHP

### HTTP

## Use page layout or reflow layout

HTML output supports two layout modes:

- `page` — Preserves the original page structure and segments content by page.

- `reflow` — Converts the document to a continuous flow of content without page breaks.

Use `page` layout when you need to preserve the original page structure. Use `reflow` layout when the HTML should behave more like a web article or continuous document.

Use this instructions object to set the layout to `reflow`:

```json

{
  "parts": [
    {
      "file": "document"
    }
  ],
  "output": {
    "type": "html",
    "layout": "reflow"
  }
}

```

## Convert a PDF from a URL

For remotely hosted source files, send a JSON request and pass the source URL in `parts[].file.url`. Use this instructions object:

```json

{
  "parts": [
    {
      "file": {
        "url": "https://example.com/document.pdf"
      }
    }
  ],
  "output": {
    "type": "html",
    "layout": "page"
  }
}

```

### Shell

Run this request to convert a PDF from a URL:

```bash

curl -X POST https://api.nutrient.io/build \
  -H "Authorization: Bearer $NUTRIENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "parts": [
      {
        "file": {
          "url": "https://example.com/document.pdf"
        }
      }
    ],
    "output": {
      "type": "html",
      "layout": "page"
    }
  }' \
  -o result.html

```

## Convert selected PDF pages

Use `parts[].pages` to convert only a page range from the source PDF. Page indexes are zero-based, and negative values count from the end of the document.

The following example converts the first three pages to HTML:

```json

{
  "parts": [
    {
      "file": "document",
      "pages": {
        "start": 0,
        "end": 2
      }
    }
  ],
  "output": {
    "type": "html",
    "layout": "page"
  }
}

```

The `end` value is inclusive, so `{ "start": 0, "end": 2 }` includes pages zero, one, and two.

## Convert password-protected PDFs

If the source PDF is password-protected, include the password on the part. Use this instructions object:

```json

{
  "parts": [
    {
      "file": "protected_document",
      "password": "document-password"
    }
  ],
  "output": {
    "type": "html",
    "layout": "reflow"
  }
}

```

Nutrient DWS Processor API uses the password only to open the source document for processing.

## Choose a layout

Choose the HTML layout based on how you’ll use the output.

| Layout   | Use when                                                                                         |
| -------- | ------------------------------------------------------------------------------------------------ |
| `page`   | You want to preserve the original document’s page boundaries and page-oriented structure.        |
| `reflow` | You want continuous HTML for content migration, web publishing, indexing, or responsive display. |

PDF is a fixed-layout format, while HTML is a flow-based format. Complex PDF layouts, scanned pages, and heavily visual documents may require manual review, depending on your output quality requirements.

## Compare PDF-to-HTML and data extraction

PDF-to-HTML conversion works well when you need HTML output from a document conversion workflow. If you need layout-aware structured extraction, bounding boxes, key-value pairs, tables, schema-shaped JSON, or Markdown for retrieval-augmented generation (RAG) pipelines, use the [DWS Data Extraction API](https://www.nutrient.io/guides/dws-data-extraction.md).

## Combine PDF-to-HTML with other processing

The `/build` endpoint can assemble or prepare a PDF before it converts the file to HTML. For example, you can merge multiple PDFs and convert the merged output to HTML.

Use this instructions object to merge two PDFs and convert them to HTML:

```json

{
  "parts": [
    {
      "file": "cover"
    },
    {
      "file": "body"
    }
  ],
  "output": {
    "type": "html",
    "layout": "page"
  }
}

```

You can also extract selected pages before conversion with `parts[].pages`.

## Reference

A PDF-to-HTML request uses the Build API `output` object with HTML output:

```typescript

type HTMLOutput = {
  type: "html",

  // The layout type to use for HTML conversion.
  layout?: "page" | "reflow",
};

type FilePart = {
  // Multipart field name, or a remote URL object.
  file: string | { url: string },

  // Optional password for encrypted input PDFs.
  password?: string,

  // Optional page range to convert.
  pages?: {
    start?: number,
    end?: number,
  },
};

type BuildInstructions = {
  parts: FilePart[],
  output: HTMLOutput,
};

```

## Related API reference operations

- Refer to the [build document endpoint](https://www.nutrient.io/api/reference/public/#tag/Document-Editing/operation/build-document) API reference to convert PDFs to HTML and combine conversion with page selection or document assembly.

## Related guides

- Refer to the [PDF-to-Markdown API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-to-markdown-api.md) guide.

- Refer to the [PDF-to-Office API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-to-office-api.md) guide.

- Refer to the [PDF-to-image API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-to-image-api.md) guide.

- Refer to the [PDF OCR API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-ocr-api.md) guide.

- Refer to the [PDF merge API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-merge-api.md) guide.

- Refer to the [PDF split API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-split-api.md) guide.

- Refer to the [tools and APIs](https://www.nutrient.io/guides/dws-processor/tools-and-api.md) guide.
---

## Related pages

- [Image-to-PDF API](/guides/dws-processor/tools-and-api/image-to-pdf-api.md)
- [Analyze Build API](/guides/dws-processor/tools-and-api/analyze-build-api.md)
- [Tools and APIs](/guides/dws-processor/tools-and-api.md)
- [Document-to-image API](/guides/dws-processor/tools-and-api/document-to-image-api.md)
- [Import Instant JSON API](/guides/dws-processor/tools-and-api/import-instant-json-api.md)
- [DOCX templating API](/guides/dws-processor/tools-and-api/docx-templating-api.md)
- [Import XFDF annotations API](/guides/dws-processor/tools-and-api/import-xfdf-annotations-api.md)
- [Office-to-PDF API](/guides/dws-processor/tools-and-api/office-to-pdf-api.md)
- [Markdown-to-PDF API](/guides/dws-processor/tools-and-api/markdown-to-pdf-api.md)
- [PDF digital signature API](/guides/dws-processor/tools-and-api/pdf-digital-signature-api.md)
- [PDF merge API](/guides/dws-processor/tools-and-api/pdf-merge-api.md)
- [PDF form filling API](/guides/dws-processor/tools-and-api/pdf-form-filling-api.md)
- [PDF flatten API](/guides/dws-processor/tools-and-api/pdf-flatten-api.md)
- [PDF OCR API](/guides/dws-processor/tools-and-api/pdf-ocr-api.md)
- [PDF generator API](/guides/dws-processor/tools-and-api/pdf-generator-api.md)
- [PDF linearization API](/guides/dws-processor/tools-and-api/pdf-linearization-api.md)
- [PDF rotate API](/guides/dws-processor/tools-and-api/pdf-rotate-api.md)
- [PDF optimization API](/guides/dws-processor/tools-and-api/pdf-optimization-api.md)
- [PDF security API](/guides/dws-processor/tools-and-api/pdf-security-api.md)
- [PDF page manipulation API](/guides/dws-processor/tools-and-api/pdf-page-manipulation-api.md)
- [PDF split API](/guides/dws-processor/tools-and-api/pdf-split-api.md)
- [PDF-to-image API](/guides/dws-processor/tools-and-api/pdf-to-image-api.md)
- [PDF-to-Markdown API](/guides/dws-processor/tools-and-api/pdf-to-markdown-api.md)
- [PDF-to-Office API](/guides/dws-processor/tools-and-api/pdf-to-office-api.md)
- [PDF-to-PDF/A API](/guides/dws-processor/tools-and-api/pdf-to-pdfa-api.md)
- [PDF watermark API](/guides/dws-processor/tools-and-api/pdf-watermark-api.md)
- [Redaction API](/guides/dws-processor/tools-and-api/redaction-api.md)
- [PDF/UA auto-tagging API](/guides/dws-processor/tools-and-api/pdfua-api.md)

