PyPI · August 2026

pdf-2-json-extractor

A maintained Python package that converts PDFs into structured, layout-aware JSON for document analysis and downstream LLM workflows.

  • Python
  • PDF Processing
  • Document Intelligence
  • CLI
  • OCR

Contribution: Created and maintain the package, extraction architecture, Python API, CLI, tests, and releases.

Impact: Published as a production-stable Python package with layout-aware, multilingual, CPU-only extraction.

pdf-2-json-extractor preserves document structure that is commonly lost when a PDF is reduced to plain text. It identifies headings from H1 through H6, assembles body paragraphs in reading order, and emits clean JSON for document-analysis and language-model workflows.

Why it exists

PDF text extraction often returns disconnected blocks with little indication of hierarchy or reading order. This package uses font size, style, spatial relationships, and a layout-reconstruction approach inspired by published research to retain more of that context.

Capabilities

  • Detects heading levels and body content through font and style analysis.
  • Reconstructs visual multi-column reading order and optionally preserves source-page references.
  • Preserves Unicode text and supports configurable Tesseract languages for scanned pages.
  • Runs locally on CPUs without heavy machine-learning models or an internet connection.
  • Provides both a Python API and a command-line interface for individual and batch PDF processing.
  • Handles batch failures independently and protects against output-name collisions.

Performance and distribution

The package uses PyMuPDF and streaming assembly to limit intermediate extraction overhead. Its documented benchmark processes a typical 50-page PDF in approximately 5 to 10 seconds on a modern CPU.

Version 1.4.0 supports Python 3.10 and newer and is distributed through PyPI under the Apache 2.0 license.

pip install pdf_2_json_extractor
pdf_2_json_extractor document.pdf -o output.json