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#
docling.datamodel.base_models.InputFormat, read by docling.org.
Show data table
| Formats | |
|---|---|
| Office, OpenDocument & CSV | 11 |
| XML schemas & Docling-native | 7 |
| Web, markup & e-books | 6 |
| Apple iWork | 3 |
| Audio, video & captions | 3 |
| PDF & images | 2 |
| Email, notes & calendars | 3 |
| Mainframe & print streams | 2 |
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#
InputFormat | Extensions | Read by | Notes |
|---|---|---|---|
pdf | PDF 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 .gif | PDF pipeline | Always OCR'd |
docx | .docx .dotx .docm .dotm | Direct | python-docx |
doc, rtf | .doc .dot · .rtf | LibreOffice → docx → direct | Needs soffice on PATH or DOCLING_LIBREOFFICE_CMD |
pptx | .pptx .potx .ppsx .pptm .potm .ppsm | Direct | python-pptx; EMF/WMF pictures need LibreOffice |
ppt | .ppt .pot .pps | LibreOffice → pptx → direct | Needs LibreOffice |
xlsx | .xlsx .xlsm .xltx .xltm | Direct | openpyxl; 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 .xlt | LibreOffice → xlsx → direct | Needs LibreOffice |
csv | .csv | Direct | One table |
odt, ods, odp | .odt .ott · .ods .ots · .odp .otp | Direct | Use --from odf to select all three |
html, mhtml | .html .htm .xhtml · .mhtml .mht | Direct | Images only with --html-image-fetch; optional headless rendering |
md | .md .markdown .txt .text .qmd .rmd | Direct | Plain text files count as Markdown; a leading YAML front matter block is skipped (2.145.0+) |
asciidoc | .adoc .asciidoc .asc | Direct | |
latex | .tex .latex | Direct | |
epub | .epub | Direct | |
email | .eml .msg | Direct | Outlook .msg via python-oxmsg |
boxnote | .boxnote | Direct | Box Notes |
iwork_pages, iwork_keynote, iwork_numbers | .pages · .key · .numbers | Direct | Charts rendered with LibreOffice if present |
xml_jats | .xml .nxml | Direct | Journal articles (e.g. PubMed Central) |
xml_uspto | .xml .txt | Direct | US patents |
xml_xbrl | .xml .xbrl | Direct (Arelle) | pip install "docling[xbrl]" |
xml_doclang, dclx | .dclg .dclg.xml · .dclx | Direct | DocLang document and archive |
json_docling | .json | Direct | Re-load a saved DoclingDocument |
mets_gbs | .tar.gz | PDF pipeline | Google Books METS scan archives |
audio | .wav .mp3 .m4a .aac .ogg .flac | ASR pipeline | pip install "docling[asr]" + FFmpeg |
video | .mp4 .avi .mov .mkv .webm | Video pipeline | Transcript + keyframes; docling-slim[format-video] |
vtt | .vtt | Direct | WebVTT subtitles |
ebcdic | .ebc .ebcdic | Direct | Mainframe text encoding |
afp | .afp | Direct | IBM Advanced Function Presentation print streams |
calendar | .ics .ical .icalendar .ifb | Direct | New 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.
docling convert team.ics --to md# 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 actionIn 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#
--to | What you get | Best for |
|---|---|---|
md | Markdown with tables as pipe tables (default) | LLM prompts, RAG, reading |
json | Lossless DoclingDocument with layout, provenance and bounding boxes | Pipelines, citations, re-exporting later |
yaml | Same content as JSON, in YAML | Human diffing |
html | Semantic HTML | Display, archiving |
html_split_page | Each page image next to its extracted HTML | Checking conversion quality (add --show-layout) |
text | Plain text | Search indexes, simple NLP |
doctags | DocTags markup (the format Granite-Docling emits) | VLM training and evaluation |
vtt | WebVTT with timestamps | Audio and video transcripts |
doclang, dclx | DocLang XML document / archive | Interchange with DocLang tools |
chunks | Token-limited chunks with heading context (JSON) | Vector databases — see RAG & chunking |
latex | LaTeX source | Papers and typesetting |
Restricting inputs#
docling convert ./inbox --from pdf --from docx --to mdfrom 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
- Docling source: InputFormat, OutputFormat and FormatToExtensions (docling/datamodel/base_models.py)
- Docling source: default backend per format (docling/document_converter.py)
- Official docs: supported formats