---
source: https://carbone.io/features/document-converter.html
title: "Document Conversion API: convert to 100+ formats | Carbone"
description: "Document conversion API to convert DOCX, Excel, PowerPoint, HTML and Markdown to PDF and 100+ formats. Carbone manages multiple converters for fast, reliable document conversion."
generated_at: "2026-07-13"
---

# Document Conversion API

Carbone is also a document conversion API. After (or instead of) rendering a Carbone template, it converts the result into **100+ output formats** through one unified API call. No separate Gotenberg, Puppeteer or LibreOffice headless deployment to manage — Carbone wraps all of them. Every conversion is free to use: self-host with the Carbone Docker image, or start on the Carbone Cloud free plan.

## 100+ output formats supported

Carbone supports conversion between any of these formats:

- **Office:** DOCX, ODT, RTF, XLSX, ODS, CSV, PPTX, ODP
- **PDF + variants:** PDF, PDF/A-1, PDF/A-2, PDF/A-3 (ISO 19005 — long-term archival), PDF/UA (ISO 14289 — universal accessibility), Factur-X + ZUGFeRD electronic invoicing with attached XML
- **Web:** HTML, Markdown
- **Images:** JPG, PNG, WebP, GIF, SVG
- **Other:** TXT, XML, IDML, EPUB, CDR

See the full list at [Generate-reports API → output file type](/documentation/developer/http-api/generate-reports.md#output-file-type).

Direction matters: Carbone can convert **DOCX→PDF**, **HTML→PDF**, **Markdown→PDF/DOCX/ODT**, **PDF→DOCX/JPG/PNG**, **PPTX→PDF/JPG**, and most pairwise combinations.

## Office to PDF API

Convert Word, Excel and PowerPoint to pixel-perfect PDF in a single API call (DOCX→PDF, XLSX→PDF, PPTX→PDF, plus ODT/ODS/ODP and Office↔Office). Carbone picks the best engine per format and keeps fonts, page breaks and native formatting. No LibreOffice to run yourself: it manages the converter processes, balances threads and restarts them on crash, even for very large documents. The same DOCX/XLSX/PPTX can double as a [universal template](/features/universal-template.md), so you inject JSON data and render a filled PDF in the same call.

## HTML to PDF API

Turn HTML or a live URL into a print-ready PDF with full CSS print support (page breaks, running headers and footers, watermarks, encryption). It is a drop-in replacement for Gotenberg, Puppeteer, Playwright or wkhtmltopdf, with no browser orchestration, render queue or crash handling to maintain. The same HTML can be used as a universal template: inject data with Carbone tags, then convert.

## Markdown to PDF API

Convert Markdown straight to PDF, DOCX or HTML. Attach a DOCX or ODT style reference and the Markdown inherits the branding, fonts and layout. Output is deterministic — the same Markdown and style always produce the same file — which is ideal for documentation pipelines and AI-generated content.

## Secure & compliant PDF API

Re-export any PDF with the controls regulated workflows need, in one call: password protection and encryption, PDF/A-1/2/3/4 archival, PDF/UA accessibility tags, Factur-X / ZUGFeRD e-invoicing (PDF/A-3 with embedded XML), watermarks, print permissions, page-range selection and compression — with no extra libraries or per-developer licensing fees.

## Drop-in alternative for common converter setups

Carbone replaces these point-solutions with a single API:

- **Gotenberg** (HTML → PDF, Office → PDF) — Carbone uses Chromium and LibreOffice under the hood for the same conversions but adds template rendering, queue management, security hardening, and process supervision in one binary.
- **Puppeteer / Playwright PDF rendering** — Carbone's Chromium converter handles the headless browser, page breaks, headers, footers, and CSS print rules without the orchestration code.
- **Commercial PDF/Office SDKs** — Carbone covers the same Office↔PDF↔Image conversions without per-developer licensing fees.
- **LibreOffice headless scripts** — Carbone manages the LibreOffice processes (start, restart on crash, balance load across threads) so you don't have to.

## Compatible converters under the hood

Carbone orchestrates multiple underlying engines and picks the right one per format:

- **LibreOffice** — Office ↔ PDF, Office ↔ Office, large-document handling.
- **Chromium** — HTML → PDF with full CSS print support (page breaks, headers, footers, encryption, watermarks).
- **OnlyOffice** — alternative Office ↔ PDF path; useful when LibreOffice quirks affect specific templates.

## Why use Carbone's converter management vs. running these yourself

Running LibreOffice / Chromium converters in production is harder than it looks:

- **Smart job management:** Carbone balances render tasks across threads and prioritizes jobs.
- **Performance tuning:** LibreOffice, Chromium, and OnlyOffice are configured for predictable throughput. See the [public benchmark](https://github.com/carboneio/document-converter-benchmark#-quick-results) comparing Carbone, Gotenberg, and others.
- **Security hardening:** macros stripped from incoming Office files; ANSSI and BSI security guidelines applied; outgoing network traffic from converter processes is controlled.
- **Stability under load:** memory-leak monitoring, automatic process restart, timeouts on hanging conversions, task cancellation.
- **Full PDF encryption:** owner/user passwords, restricted printing/copying/editing, content extraction restrictions (matches LibreOffice's full encryption API).

## How conversion fits the Carbone render pipeline

Conversion is just a parameter on the render call:

```json
{
  "data": { "...": "..." },
  "convertTo": "pdf",
  "converter": "C"
}
```

`convertTo` can be a string (format name) or an object with format-specific options (e.g. PDF encryption settings, JPG/PNG resolution). `converter` lets you force a specific underlying engine. See the [generate-reports API](/documentation/developer/http-api/generate-reports.md) for the full schema.

## Convert without templating

For pure conversion (no template render), use the [convert-reports endpoint](/documentation/developer/http-api/convert-reports.md) — same engine, no Carbone tags required. Useful as a Gotenberg / Puppeteer / LibreOffice-headless replacement in pipelines that don't need template rendering.


## Related topics

- [Universal Template](/features/universal-template.md)
- [Template Studio](/features/carbone-studio.md)
- [AI Document Generation](/features/ai-document-generation.md)
