Independent guide — not affiliated with IBM or the Docling project. Every command verified on Docling 2.148.0.
  1. Home
  2. Supported formats
Formats

Every format Docling reads and writes — and how it reads each one

Docling 2.148.0 accepts 37 input formats and writes 12 output formats. Not all inputs are treated alike: only PDFs, images and scanned archives go through the AI layout pipeline — everything else is parsed directly from its structure.

Verified on Docling 2.148.0Updated 6 Nov 20267 min read
In short
  • 37 InputFormat values, from PDF and Office to EML, EPUB, Apple iWork, XBRL, WebVTT, EBCDIC, IBM AFP and — new in 2.148.0 — iCalendar (.ics).
  • PDFs and images use the layout + table models (and OCR when needed). Office, HTML, Markdown and XML formats are parsed directly — fast and exact.
  • Legacy .doc, .ppt, .xls and .rtf are converted with LibreOffice first, so soffice must be installed.
  • Outputs: md, json, yaml, html, html_split_page, text, doctags, vtt, doclang, dclx, chunks, latex.

Check a file#

Type any file name. The checker matches its extension against Docling's own extension table and tells you how the file will be read.

Input formats at a glance#

37 input formats, groupedCount of InputFormat values in Docling 2.148.0, by family.
051015Office, OpenDocument & CSV11XML schemas & Docling-native7Web, markup & e-books6Apple iWork3Audio, video & captions3PDF & images2Email, notes & calendars3Mainframe & print streams2

docling.datamodel.base_models.InputFormat, read by docling.org.

Show data table
37 input formats, grouped
Formats
Office, OpenDocument & CSV11
XML schemas & Docling-native7
Web, markup & e-books6
Apple iWork3
Audio, video & captions3
PDF & images2
Email, notes & calendars3
Mainframe & print streams2

Two ways Docling reads files#

The PDF pipeline

For PDF, images and METS scan archives. Pages are parsed, a layout model labels every region, TableFormer rebuilds tables and OCR fills in text where there is none. Powerful, but it costs seconds per page on CPU.

Direct (“simple”) parsing

For everything else with structure — Office, OpenDocument, HTML, Markdown, LaTeX, XML, email, EPUB, iWork. Headings, lists and tables are read straight from the file, so the result is exact and usually takes well under a second.

Audio and video take a third route: the ASR and video pipelines transcribe speech (and sample keyframes for video).

Full input reference#

InputFormatExtensionsRead byNotes
pdf.pdfPDF pipeline (docling-parse)OCR where there is no text layer; --pdf-backend pypdfium2 is an alternative parser
image.png .jpg .jpeg .tif .tiff .bmp .webp .gifPDF pipelineAlways OCR'd
docx.docx .dotx .docm .dotmDirectpython-docx
doc, rtf.doc .dot · .rtfLibreOffice → docx → directNeeds soffice on PATH or DOCLING_LIBREOFFICE_CMD
pptx.pptx .potx .ppsx .pptm .potm .ppsmDirectpython-pptx; EMF/WMF pictures need LibreOffice
ppt.ppt .pot .ppsLibreOffice → pptx → directNeeds LibreOffice
xlsx.xlsx .xlsm .xltx .xltmDirectopenpyxl; cell positions kept as provenance; currency, percent and date formats kept (2.145.0+); images placed in cells (Excel “Place in Cell”) are read since 2.146.0 — earlier versions output #VALUE!, as we confirmed on 2.143.1
xls.xls .xltLibreOffice → xlsx → directNeeds LibreOffice
csv.csvDirectOne table
odt, ods, odp.odt .ott · .ods .ots · .odp .otpDirectUse --from odf to select all three
html, mhtml.html .htm .xhtml · .mhtml .mhtDirectImages only with --html-image-fetch; optional headless rendering
md.md .markdown .txt .text .qmd .rmdDirectPlain text files count as Markdown; a leading YAML front matter block is skipped (2.145.0+)
asciidoc.adoc .asciidoc .ascDirect
latex.tex .latexDirect
epub.epubDirect
email.eml .msgDirectOutlook .msg via python-oxmsg
boxnote.boxnoteDirectBox Notes
iwork_pages, iwork_keynote, iwork_numbers.pages · .key · .numbersDirectCharts rendered with LibreOffice if present
xml_jats.xml .nxmlDirectJournal articles (e.g. PubMed Central)
xml_uspto.xml .txtDirectUS patents
xml_xbrl.xml .xbrlDirect (Arelle)pip install "docling[xbrl]"
xml_doclang, dclx.dclg .dclg.xml · .dclxDirectDocLang document and archive
json_docling.jsonDirectRe-load a saved DoclingDocument
mets_gbs.tar.gzPDF pipelineGoogle Books METS scan archives
audio.wav .mp3 .m4a .aac .ogg .flacASR pipelinepip install "docling[asr]" + FFmpeg
video.mp4 .avi .mov .mkv .webmVideo pipelineTranscript + keyframes; docling-slim[format-video]
vtt.vttDirectWebVTT subtitles
ebcdic.ebc .ebcdicDirectMainframe text encoding
afp.afpDirectIBM Advanced Function Presentation print streams
calendar.ics .ical .icalendar .ifbDirectNew in 2.148.0. Events, to-dos, journal entries and free/busy times, with attendees, reminders and attachment names; no extra install

Extensions read from FormatToExtensions and backends from Docling's default format options in 2.148.0. Some extensions (.xml, .txt, .json) map to several formats; Docling then inspects the content to decide.

Calendar files (.ics), new in 2.148.0#

Docling reads iCalendar exports from Outlook, Google Calendar or Apple Calendar with its own parser — no extra package. Each event or to-do becomes a section with its times, location, organizer and description, followed by lists of attendees, reminders and attachment names. A file whose first line is BEGIN:VCALENDAR is recognised even without the extension, except when it is named .txt or .md.

bash
docling convert team.ics --to md
markdownoutput on our machine (excerpt)
# Team calendar

## Quarterly planning

Start: 2026-11-10 14:00 UTC

End: 2026-11-10 15:00 UTC

Location: Room 4

### Attendees

- Bo Chen <bo@example.com> (accepted)

### Reminders

- Display, 15 minutes before start

## Send budget draft

Due: 2026-11-12 17:00 UTC

Status: Needs action

In our 2.148.0 test the two-item file converted in 0.01 s. Note that the Markdown escapes angle brackets around e-mail addresses as < and >.

Output formats#

--toWhat you getBest for
mdMarkdown with tables as pipe tables (default)LLM prompts, RAG, reading
jsonLossless DoclingDocument with layout, provenance and bounding boxesPipelines, citations, re-exporting later
yamlSame content as JSON, in YAMLHuman diffing
htmlSemantic HTMLDisplay, archiving
html_split_pageEach page image next to its extracted HTMLChecking conversion quality (add --show-layout)
textPlain textSearch indexes, simple NLP
doctagsDocTags markup (the format Granite-Docling emits)VLM training and evaluation
vttWebVTT with timestampsAudio and video transcripts
doclang, dclxDocLang XML document / archiveInterchange with DocLang tools
chunksToken-limited chunks with heading context (JSON)Vector databases — see RAG & chunking
latexLaTeX sourcePapers and typesetting

Restricting inputs#

bashCLI
docling convert ./inbox --from pdf --from docx --to md
pythonPython
from docling.datamodel.base_models import InputFormat
from docling.document_converter import DocumentConverter

converter = DocumentConverter(allowed_formats=[InputFormat.PDF, InputFormat.DOCX])

Frequently asked questions

Can Docling convert Word documents?

Yes. .docx (and .dotx, .docm, .dotm) are parsed directly from the Office XML with python-docx, which is included in pip install docling. Old .doc files are first converted to .docx with LibreOffice, which you need to install separately.

Does Docling support Excel files?

Yes. .xlsx, .xlsm, .xltx and .xltm are read sheet by sheet with their cell positions as provenance. Legacy .xls files are converted to .xlsx with LibreOffice first. CSV is supported too.

Can Docling read scanned PDFs and images?

Yes. Images (PNG, JPEG, TIFF, BMP, WebP, GIF) and scanned PDFs go through the PDF pipeline with OCR. In our test, Docling recovered 93% of the words of a 150 DPI scanned paper (Docling 2.148.0).

Does Docling support audio and video?

Yes. Audio (WAV, MP3, M4A, AAC, OGG, FLAC) is transcribed by the ASR pipeline with Whisper and other models; video (MP4, AVI, MOV, MKV, WebM) produces a transcript plus keyframes. Install docling[asr] and FFmpeg.

What output formats does Docling support?

Twelve: Markdown (md), JSON, YAML, HTML, side-by-side HTML (html_split_page), plain text, DocTags, WebVTT, DocLang, DocLang archive (dclx), chunks and LaTeX.

Sources