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 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 pipeline: native documents become a unified representation, then Markdown, HTML, LaTeX, DOCX, EPUB, PDF or structured JSON.

PDF performance

The 0.5 series brings a major boost to PDF processing with Rust acceleration: public parsing is 2.76× as fast as 0.4.25 on the tested corpus.

Pipeline 0.4.25 0.5.2 (Rust + session) Speedup Time reduction Peak RSS reduction
DocVortex public parse() 42.36 s 15.35 s 2.76× 63.77% 33.45%
MinerU Flash 44.50 s 15.78 s 2.82× 64.53% 32.78%
MinerU shared PDF processing 76.28 s 14.91 s 5.12× 80.45% 36.25%

Same-machine warm-run comparison on 32 PDFs / 299 pages (31 PDFs for Flash); times are sums of 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.46×.

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

  • Text PDFs: native parsing uses the document's existing text and structure. Scanned pages requiring OCR need an external OCR or inference service.
  • PDF classification: docvortex classify report.pdf returns txt or ocr. Classification is explicit and does not start inference; parsing does not automatically switch backends.
  • 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.4

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.4
File Size Uploaded
docvortex-0.5.4.tar.gz 47.9 MB Details

Built distributions (wheels)

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

Total release size: 74.7 MB

Release files / docvortex-0.5.4.tar.gz

Download URL docvortex-0.5.4.tar.gz
Size 47.9 MB
Tags Source
SHA-256 checksum
How to use checksums
d4d4f6c37bc4284d1b08063f032e7f30705e17f5c530cfb15d56c05cb425e0a7
BLAKE2b-256 checksum
How to use checksums
bdba4c16f7751d9110144dbde0e87b62d2ce443f31268599a18eed5afc3c16e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

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

Download URL docvortex-0.5.4-py3-none-any.whl
Size 3.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d3f4d373db8ea1305e6b74367a3a91fe098c8b44e59ec835002fc6eb490d1e39
BLAKE2b-256 checksum
How to use checksums
b86b77ec7a11eba6adc5d199286bbcb9c27173008185d51b9c3b21e6179e1477
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

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

Download URL docvortex-0.5.4-cp310-abi3-win_amd64.whl
Size 4.6 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
7f9193819c75372386dc379a08a043f1221c29b1aeeaff1821d4b8c4be7ae84b
BLAKE2b-256 checksum
How to use checksums
e79da6fb3612df960e6b66822edfef23d87bb856db4bf09fb195ad49dbf6783a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

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

Download URL docvortex-0.5.4-cp310-abi3-manylinux_2_28_x86_64.whl
Size 4.7 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
7808562451d66c5ffeab2b95a96451cf803109458cbc33d36dce5c98966d25c6
BLAKE2b-256 checksum
How to use checksums
acdcf43cf9122dcaeb8411dca2fb9f42f936404090a00f9b86944be6a9b3c136
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

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

Download URL docvortex-0.5.4-cp310-abi3-manylinux_2_28_aarch64.whl
Size 4.6 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
74f8be2b5e75296ca99c7e1963318795f50a04562f78a0a4dc0b9a67fe4b8915
BLAKE2b-256 checksum
How to use checksums
b19f422b0b217a8107b44ef8a48cdf04e4bcdae0b0b4c033694b84059a7a8eed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

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

Download URL docvortex-0.5.4-cp310-abi3-macosx_11_0_arm64.whl
Size 4.6 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
738312b6fceed4f7cdd6c255cb1eed9f83a16591d3e77f3167cb7890a9ff6dd2
BLAKE2b-256 checksum
How to use checksums
1f5324fbf97e01369ab4597f6f1479b27f507b35794b98230f08847c037bc14f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

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

Download URL docvortex-0.5.4-cp310-abi3-macosx_10_13_x86_64.whl
Size 4.6 MB
Tags CPython 3.10 abi3 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
c597843726d00c10b63f272a8583b6f436ea4c2a0eac0db4d048f19d73f8630f
BLAKE2b-256 checksum
How to use checksums
05246f914bb712df09ab97e9182ebbd6c91cce54ca8eae1f8d833af3fa18f218
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.16

8 release files

0.5.9

7 release files

0.5.8

7 release files

0.5.7

7 release files

0.5.6

7 release files

0.5.5

7 release files

This release

0.5.4 This release

7 release files

0.5.3

7 release files

0.5.2

7 release files

0.5.1

7 release files

0.5.0

7 release files

0.4.25

2 release files

0.4.24

2 release files

0.4.23

2 release files

0.4.22

2 release files

0.4.21

2 release files

0.4.20

2 release files

0.4.19

2 release files

0.4.18

2 release files

0.4.17

2 release files

0.4.16

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.6

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

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