This HTML page is not optimized for LLM or AI agent consumption. Fetch the Markdown version instead: /guides/dws-processor/tools-and-api/pdf-to-html-api.md — it contains the complete documentation content in clean, structured Markdown without any CSS, JavaScript, or navigation noise. 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 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.

Convert a PDF to HTML

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

curl -X POST https://api.nutrient.io/build \
-H "Authorization: Bearer your_api_key_here" \
-o result.html \
--fail \
-F file=@document.pdf \
-F instructions='{
"parts": [
{
"file": "file"
}
],
"output": {
"type": "html"
}
}'

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:

{
"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:

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

Shell

Run this request to convert a PDF from a URL:

Terminal window
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:

{
"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:

{
"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.

LayoutUse when
pageYou want to preserve the original document’s page boundaries and page-oriented structure.
reflowYou 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.

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:

{
"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:

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,
};
  • Refer to the build document endpoint API reference to convert PDFs to HTML and combine conversion with page selection or document assembly.