Skip to main content
DocVortex logo

DocVortex

Native document parsing. One structure, many outputs.

PyPI Python Downloads Monthly Downloads CI License: MIT

English · 简体中文

Performance · Quick start · Formats · Documentation

Documents in. Possibilities out.

DocVortex is a standalone Python engine for parsing and converting documents. It reads native text and document structure into a unified representation, then exports the result in the formats your workflow needs.

  • Multi-format input — read native-text PDFs, Office files, OpenDocument files, EPUB, HTML, OFD, CSV and TSV.
  • Parse once, export many times — reuse the same result for Markdown, HTML, LaTeX, DOCX, EPUB, PDF and structured JSON.
  • Portable results — save document structure and image assets in a Bundle, then export again without the source file.
  • Composable APIs — use the complete pipeline or integrate analysis, postprocessing and rendering separately.

Native parsing works without an OCR or VLM inference service. Use DocVortex directly through its CLI or Python SDK.

DocVortex does not download models or perform PDF OCR. When OCR is required, it reports pdf_ocr_unsupported and asks you to download and install MinerU to process the document.

DocVortex pipeline: native documents become a unified representation, then Markdown, HTML, LaTeX, DOCX, EPUB, PDF or structured JSON.

PDF performance

Release 0.5.10 uses Rust acceleration: public parsing is 2.93× as fast as 0.4.25 on the tested corpus.

Pipeline 0.4.25 python 0.5.10 rust Speedup Time reduction Peak RSS reduction
DocVortex public parse() 42.36 s 14.48 s 2.93× 65.82% 31.17%
MinerU Flash 44.50 s 14.44 s 3.08× 67.55% 29.84%
MinerU shared PDF processing 76.28 s 12.85 s 5.94× 83.16% 35.65%

Same-machine warm-run comparison on 32 PDFs / 299 pages (31 PDFs for Flash). The existing 0.4.25 measurements are reused. For 0.5.10, each document is warmed once and timed five times in each of three balanced rounds; times sum the medians of the three per-document medians. RSS reductions are medians of per-document process-tree peak RSS reductions. MinerU results include improvements in both projects. The shared pipeline excludes model computation; excluding the extreme dense-table sample, its speedup is 2.87×.

Quick start

Requires Python 3.10–3.14.

Install

pip install docvortex

Command line

Convert a text PDF to Markdown:

docvortex convert report.pdf --format markdown --output output/report.md

Replace report.pdf with a local file in any supported input format. Use --format to choose the output; run docvortex convert --help for options. The root-level --log-level option controls loguru output and defaults to info. It must precede the command; DOCVORTEX_LOG_LEVEL=warning can also configure it.

Python

Parse a document once and export it twice:

import docvortex

result = docvortex.parse("report.pdf")
result.export("output/report.md", output_format="markdown")
result.export("output/report.docx", output_format="docx")

The result owns its document structure and assets, so further exports do not reopen or reparse the source. Existing output files are protected by default; use overwrite=True in Python or --overwrite in the CLI to replace them.

Supported formats

Native inputs · 20 formats

Document family File extensions
PDF with native text or scanned pages .pdf
Word & rich text .doc, .docx, .rtf
Presentations .ppt, .pptx
Spreadsheets .xls, .xlsx, .csv, .tsv
OpenDocument .odt, .ods, .odp
E-books .epub
Web documents .html, .htm, .shtml
Web archives .mhtml, .mht
Open Fixed-layout Document .ofd

Outputs · 7 formats

Output --format / output_format
Markdown markdown
HTML html
LaTeX latex
Word document docx
EPUB e-book epub
PDF pdf
Structured JSON structured_content

PPT/PPTX and XLS/XLSX are input formats only. Structured JSON is an export format; the document JSON protocol separately defines the analysis and intermediate representations.

Save now, export later

A Bundle packages the parsed document and its image assets for reuse across processes or machines. Load it whenever you need another output format:

import docvortex

result = docvortex.parse("report.pdf")
result.save_bundle("output/report.bundle")

restored = docvortex.load_bundle("output/report.bundle")
restored.export("output/report.epub", output_format="epub")

The restored result works without the original file. See the usage guide for Bundle contents, asset handling and overwrite rules.

Need only the title, authors or other source properties? docvortex.extract_metadata() reads metadata without parsing the document body.

Choose the right workflow

  • PDF parsing: parse_mode="auto" (default) classifies the selected PDF pages as a whole. A txt result uses native parsing; an ocr result raises DocumentError with code pdf_ocr_unsupported and a MinerU download link. Use parse_mode="txt" to force native parsing without classification. The CLI equivalent is --parse-mode auto|txt|ocr; explicit modes apply only to PDF input.
  • PDF OCR: parse_mode="ocr" and --parse-mode ocr are retained for compatibility and always report pdf_ocr_unsupported for PDF input. Download and install MinerU for OCR. DocVortex does not install or invoke MinerU automatically.
  • Mixed PDFs: auto mode does not classify or switch backends per page. A selection classified as txt keeps native parsing even if it contains scanned pages. Use MinerU when those pages need OCR.
  • PDF classification: docvortex classify report.pdf returns txt or ocr without inference or networking. Metadata extraction and the low-level PdfModel.predict() native text API also remain offline.
  • PDF export: PDF sources with page geometry default to block layout restoration, with selectable text and HTML-based tables; charts retain region images. Other sources and older results use semantic reflow. Use --pdf-layout original|reflow to select explicitly; fonts, line breaks and drawing instructions are not reproduced losslessly. See PDF output layout.

Documentation

Guide What you will find
Usage Stage APIs, PDF pages, classification, images and Bundles
Agent skill CLI and Python SDK workflows for agents; copy the entire skills/docvortex folder to reuse
Examples Local samples for PDF, Office, EPUB, web documents and OFD with a runnable demo
Metadata Source properties and per-format coverage
JSON protocol Document schemas, extensions and protocol migration
HTML protocol Semantic markers and round trips
Public SDK & migration Supported integration boundaries and the 0.4 upgrade
Rendering ownership DocVortex exports and MinerU-specific renderers

Development

See Repository architecture for directory responsibilities, the Python/Rust boundary, and pure Python or native development commands.

From a local checkout:

uv venv
uv pip install -e ".[test,dev]"
uv run --no-project python -m pytest -q
uv run --no-project ruff check src
uv run --no-project ruff format --check src
uv build

Bug reports and contributions are welcome. When reporting a parsing issue, include a reproducible command and a sample document you can share in GitHub Issues.

License

DocVortex project code is released under the MIT License.

Metadata

Release files for docvortex 0.5.18

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for docvortex 0.5.18
File Size Uploaded Provenance Actions
docvortex-0.5.18.tar.gz 82.7 MB With provenance Details for docvortex-0.5.18.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for docvortex 0.5.18
File Actions
docvortex-0.5.18-py3-none-any.whl Python 3 none any Details for docvortex-0.5.18-py3-none-any.whl
docvortex-0.5.18-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details for docvortex-0.5.18-cp310-abi3-win_arm64.whl
docvortex-0.5.18-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for docvortex-0.5.18-cp310-abi3-win_amd64.whl
docvortex-0.5.18-cp310-abi3-manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.28+ x86-64 Details for docvortex-0.5.18-cp310-abi3-manylinux_2_28_x86_64.whl
docvortex-0.5.18-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details for docvortex-0.5.18-cp310-abi3-manylinux_2_28_aarch64.whl
docvortex-0.5.18-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for docvortex-0.5.18-cp310-abi3-macosx_11_0_arm64.whl
docvortex-0.5.18-cp310-abi3-macosx_10_13_x86_64.whl CPython 3.10 abi3 macOS 10.13+ x86-64 Details for docvortex-0.5.18-cp310-abi3-macosx_10_13_x86_64.whl

Total release size: 117.6 MB

Release files / docvortex-0.5.18.tar.gz

Download URL docvortex-0.5.18.tar.gz
Size 82.7 MB
Tags Source
SHA-256 checksum
How to use checksums
920505c8a316cffb447d399aa00df032645081c1b19299ee2c2c40b860bdddd1
BLAKE2b-256 checksum
How to use checksums
9605e0f6210a7f1448743bca312b75e0a9ff728bf658ef0a052fa9915ab49a49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / docvortex-0.5.18-py3-none-any.whl

Download URL docvortex-0.5.18-py3-none-any.whl
Size 4.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7890265b72f396350962fe9cf22e0d4e4e4c9eeb8795a33ef63ebb2e5feb6675
BLAKE2b-256 checksum
How to use checksums
20f3abaec1c8d6ed01ea09ed485957dbbcc6a28f93991fae53ce380fa77d34fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / docvortex-0.5.18-cp310-abi3-win_arm64.whl

Download URL docvortex-0.5.18-cp310-abi3-win_arm64.whl
Size 5.0 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
8cc70e709c368faf3236ece98c6ea9be363526b8da4c106dfa10c8ecde5fb3f1
BLAKE2b-256 checksum
How to use checksums
2c1f1374f52ce32b5d885dbdef294d2e2dc3ea64db373de9883afa3758a9aaef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / docvortex-0.5.18-cp310-abi3-win_amd64.whl

Download URL docvortex-0.5.18-cp310-abi3-win_amd64.whl
Size 5.2 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f9ec214664eda2206046367718acc8a49e3cee3f86059b5e05ac77bb95f4e52c
BLAKE2b-256 checksum
How to use checksums
c8e5f5705e1b80be841553756f31353b04a2c0b190450a3c7c18212cab9dfd5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / docvortex-0.5.18-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL docvortex-0.5.18-cp310-abi3-manylinux_2_28_x86_64.whl
Size 5.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
ab8c3fce8a2263e5dcc55361b7164f0bded4dc95e04c01b63a05fda3405ae3bb
BLAKE2b-256 checksum
How to use checksums
79927a0ddc2462761bb237d49ec3f0de00f8367bfc10363018d0391dc9a56653
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / docvortex-0.5.18-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL docvortex-0.5.18-cp310-abi3-manylinux_2_28_aarch64.whl
Size 5.2 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
3c86e7116415286db964fd0075ca984d3660ebe0114566ab491e925f90f766c4
BLAKE2b-256 checksum
How to use checksums
88660d54a24fb910450dcc78631df1b2835794203044e51ca0622caeaa77ae0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / docvortex-0.5.18-cp310-abi3-macosx_11_0_arm64.whl

Download URL docvortex-0.5.18-cp310-abi3-macosx_11_0_arm64.whl
Size 5.1 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fb0eaf8dfd9af3d36d9b39b623b190660f70e23778ad612794567f834445d3d8
BLAKE2b-256 checksum
How to use checksums
24eb5c365f9b859d8bd0b02c18f58b2a7ad9a9bffc8f395977b2accb90c4e7d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / docvortex-0.5.18-cp310-abi3-macosx_10_13_x86_64.whl

Download URL docvortex-0.5.18-cp310-abi3-macosx_10_13_x86_64.whl
Size 5.3 MB
Tags CPython 3.10 abi3 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
d609927a7a3d158eaea4f440d58d46667b6087bbc69e3198a7dba298761cab7f
BLAKE2b-256 checksum
How to use checksums
e9f9c8f332225bed586ebaac3a0ae90e07c4a72370ddb2e50a5e1731044a012a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for docvortex 0.5.18

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 8 files in this release have been uploaded with provenance metadata.

Select from 8 files

Attestation for docvortex-0.5.18.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.18 This release

8 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page