Open-source software libraries and applications for converting images and scanned documents into machine-readable text.
Tesseract is a neural network-based optical character recognition engine designed to convert scanned images and digital documents into machine-readable, searchable text. It functions as both a command-line utility for automating large-scale digitization workflows and a cross-platform library that can be embedded into desktop, mobile, or server-side applications. By utilizing long short-term memory networks, the engine provides robust text extraction across more than one hundred languages and dozens of scripts. The project distinguishes itself through a sophisticated document layout analysis framework that employs a hybrid approach to resolve complex structures like multi-column text and tables. It offers extensive configurability, allowing users to refine recognition accuracy through custom linguistic models, user-defined dictionaries, and specialized training pipelines. The engine supports the generation of various structured outputs, including searchable PDFs with hidden text layers, and provides hardware-accelerated math kernels to optimize inference performance. Beyond core recognition, the system includes comprehensive tooling for image pre-processing, page segmentation, and the management of modular language data. It provides C and C++ APIs alongside various language-specific wrappers, enabling integration into diverse software environments. The engine is available as pre-built binary packages or can be compiled from source using standard system compilers.
Tesseract is the industry-standard OCR engine that provides comprehensive support for multi-language recognition, PDF processing, layout analysis, and image preprocessing, making it a complete solution for both command-line workflows and programmatic integration.
OCRmyPDF is a tool for converting image-based PDF files into machine-readable documents by adding a searchable text layer via optical character recognition. It functions as a multi-language processor capable of detecting and extracting text in over 100 different languages using linguistic data packs. The software includes a PDF image optimizer to remove image artifacts and correct page skew to improve recognition accuracy. It also provides a converter to transform scanned documents into the PDF/A standard for long-term digital archiving. The system manages PDF optimization by compressing embedded raster images to reduce overall file size. It further supports extensibility through an interface that allows the integration of custom text recognition engines.
This tool is a dedicated OCR engine that specifically processes PDF documents, offering multi-language support, layout-aware text extraction, and built-in image preprocessing to ensure high-quality searchable output.
MinerU is a document parsing pipeline designed to transform unstructured files into machine-readable, structured data. It utilizes deep learning models to perform layout analysis, identifying document regions and extracting complex content such as mathematical expressions. By combining these neural network inferences with geometric heuristics, the system reconstructs the reading order and structural hierarchy of documents to ensure accurate data representation. The project distinguishes itself through a multi-stage processing workflow that integrates layout detection, optical character recognition, and formula extraction into a unified pipeline. It serializes all extracted features and spatial coordinates into a standardized format, ensuring that output remains consistent for downstream integration. To support verification, the tool includes a diagnostic suite that generates visual overlays, allowing users to inspect segmentation boundaries and reading order directly against the original source files. The software provides a comprehensive framework for automated data extraction, organizing parsed elements into a page-based structure suitable for large-scale information retrieval. It is distributed as a Python-based package, with documentation and installation instructions available in the repository.
MinerU is a comprehensive document parsing pipeline that integrates OCR, layout analysis, and PDF processing into a unified framework, making it a robust tool for converting complex documents into structured, machine-readable data.
RapidOCR is an offline deep-learning OCR engine that detects and recognizes text in images using ONNX Runtime, operating entirely without an internet connection. It provides a unified inference pipeline that runs across multiple platforms including Windows, Linux, macOS, Android, and Raspberry Pi, with programming language bindings for Python, C++, Java, and C#. The engine separates text detection and recognition into independent modules that can be swapped or fine-tuned individually, and abstracts the inference backend behind a unified interface allowing seamless switching between ONNX Runtime, OpenVINO, PaddlePaddle, PyTorch, MNN, and TensorRT. It supports over 80 languages by combining language-specific recognition models with a unified text detection backbone, and offers both lightweight mobile-optimized and higher-accuracy server-grade model variants selected at runtime. The project includes a command-line tool for extracting text from images and URLs with bounding boxes and confidence scores, and provides structured programmatic output with separate fields for bounding boxes, recognized text, and confidence scores. It can classify text line orientation before recognition to improve accuracy, and visualize results by drawing detected text regions onto the original image. For deployment, the OCR engine can be packaged into a Docker container for consistent environments across platforms, or bundled into a standalone executable using PyInstaller that removes the Python runtime dependency. The project also includes utilities for converting PaddleOCR models to ONNX format and fine-tuning them on custom data for specialized text recognition scenarios.
RapidOCR is a comprehensive, offline-first OCR engine that supports over 80 languages, provides structured programmatic output, and includes modular tools for text detection, layout analysis, and model fine-tuning.
Pix2Text is an optical character recognition system and document conversion tool designed to transform images and PDFs into Markdown. It functions as a multilingual OCR engine supporting over 80 languages, a LaTeX formula recognizer for mathematical notations, and a parser integrated with vision language models. The project utilizes a hybrid pipeline to separate plain text from mathematical formulas and tabular structures within a single pass. It converts recognized formulas into LaTeX expressions and transforms detected tables and layouts into structured Markdown formatting. The system includes a command line interface for document conversion and a local HTTP web API for programmatic image processing. It supports GPU acceleration to increase model inference speed.
Pix2Text is a comprehensive OCR engine that supports multi-language text, PDF processing, and layout analysis, while providing both a command-line interface and a local HTTP API for programmatic integration.
pdf-craft is an OCR-based document parser and structure extractor designed to convert PDF files into structured data, Markdown, or EPUB ebooks. It utilizes optical character recognition and statistical analysis to identify document hierarchies and extract text and structured content. The system features specialized rendering for mathematical formulas and tables, using heuristic reconstruction to convert tabular data into digital formats. It includes a document structure extractor that builds tables of contents by analyzing font sizes, linguistic patterns, and language model title detection. The pipeline supports offline processing through local model weight caching, ensuring that OCR and layout analysis can function without an internet connection.
This tool is a specialized OCR-based document parser that converts PDFs into structured formats, providing essential layout analysis and offline processing capabilities for document digitization.
dots.ocr is a suite of software utilities for document layout analysis, multilingual optical character recognition, and scene text digitization. It functions as an engine for extracting digital text and structured layout data from images and PDFs across various human scripts. The project includes a specialized transformer for converting charts, diagrams, and chemical formulas from raster images into scalable vector graphics. It also provides a pipeline to transform extracted text and structural layout from documents and web screenshots into formatted Markdown files. The system covers capabilities for identifying bounding boxes and categories of layout elements to produce structured JSON representations. It further includes tools for scene text detection within natural images and an evaluation framework for measuring text and table extraction accuracy against ground truth data.
This tool is a comprehensive OCR engine that natively supports multilingual text recognition, PDF processing, and document layout analysis, making it a direct fit for your requirements.
Kreuzberg is a document extraction engine that converts PDFs, Office files, images, and over 90 other formats into clean, structured text and metadata. It is built around a compiled Rust core that can be used as a native library, a command-line tool, a REST API server, or a WebAssembly module for browser-based processing. The system is designed to run entirely on self-hosted infrastructure, with no data leaving the user's environment. What distinguishes Kreuzberg is its breadth of integration surfaces and its pipeline architecture. It exposes extraction capabilities through native bindings for 18 programming languages, a Model Context Protocol (MCP) server for direct AI agent integration, and a REST API with an OpenAPI schema. The extraction pipeline is plugin-based and configurable, supporting multiple OCR backends (Tesseract, PaddleOCR, EasyOCR, and vision-language models) with quality-based fallback, parallel batch processing with work-stealing, and ONNX Runtime model inference with hardware acceleration for CPU, GPU, or NPU. Beyond core text extraction, Kreuzberg provides a document enrichment pipeline that includes page classification, named entity recognition, summarization, translation, captioning, and PII redaction. It prepares content for retrieval-augmented generation (RAG) workflows by chunking text, generating vector embeddings, and reranking results. The system also supports structured data extraction via LLMs, source code extraction from 306 programming languages, and transcription of audio and video files using Whisper ONNX models. The project is available as a library installable via standard package managers, a CLI tool installable via Homebrew or Docker, and a production-ready deployment option with a Helm chart for Kubernetes.
Kreuzberg is a comprehensive document extraction engine that natively integrates multiple OCR backends, supports batch processing, and provides a robust API for converting images and PDFs into structured text.
Tesseract is an optical character recognition engine and tool designed to convert printed or handwritten text from images into machine-readable digital text. It functions as a multilingual text extractor and a document digitization pipeline that transforms scanned images into structured digital formats. The project includes a framework for training custom scripts and language-specific models, allowing the engine to recognize new languages or unique fonts through custom training data. Its capabilities cover automated text extraction, digital archive digitization, and the export of recognized text into formats such as plain text, PDF, and ALTO.
Tesseract is a comprehensive, industry-standard OCR engine that provides robust support for multi-language recognition, PDF output, and advanced document digitization pipelines.
Stirling-PDF is a self-hosted document processing suite designed for secure, private file management. It functions as a comprehensive transformation engine that executes complex operations—such as merging, splitting, converting, and redacting documents—directly on the host machine. The platform provides both a browser-based interface for interactive editing and a programmatic, API-first architecture that allows for the automation of document workflows through standard HTTP requests. The project distinguishes itself through its focus on private, infrastructure-agnostic deployment and granular security. It supports role-based access control and stateless session authentication, ensuring that sensitive operations remain protected within a user-controlled environment. By offering a unified interface for sequential file transformations, it enables users to chain multiple processing tasks into single, automated pipelines while maintaining full control over document integrity and security. The system covers a broad range of document manipulation capabilities, including optical character recognition, digital signature validation, and advanced layout operations like booklet imposition and page reorganization. It is built for flexible integration, supporting deployment across containerized environments, bare metal, or native desktop installations. Configuration is managed through environment variables, YAML files, or the web interface, allowing for consistent behavior across diverse infrastructure setups.
Stirling-PDF is a comprehensive document processing suite that includes built-in OCR capabilities alongside its extensive PDF manipulation features, making it a strong candidate for users needing to integrate text extraction into automated document workflows.
Dolphin is a multimodal layout analyzer and image-to-structure converter that transforms photographed or digital document images into machine-readable structured data. It functions as an LLM document parser, utilizing vision-language models to simultaneously predict spatial layout and text content. The system is designed as a concurrent document processor, employing parallel document parsing to process multiple elements across distributed compute nodes. This high-throughput approach reduces the total time required to convert large volumes of images into structured formats. The project covers spatial document layout mapping to identify bounding boxes and generate natural reading order sequences. It provides capabilities for granular content retrieval, allowing for the targeted extraction of specific document elements such as tables, formulas, and code blocks through prompt-based parsing.
Dolphin is a vision-language model-based document parser that performs OCR and complex layout analysis to convert images into structured data, making it a highly capable tool for document processing tasks.
This project is an AI-powered document processing engine designed to transform diverse file formats into structured Markdown. By leveraging multimodal language models, it performs complex layout analysis and semantic text extraction, allowing for the conversion of both unstructured files and scanned images into machine-readable content. The toolkit distinguishes itself through a modular, plugin-based architecture that orchestrates multi-stage extraction pipelines. Users can steer the parsing behavior by injecting custom instructions, enabling the system to adapt to domain-specific document structures and formatting requirements. This flexibility is supported by an integrated optical character recognition capability that ensures text recovery from embedded images during the conversion process. The system provides both a command-line interface and a programmatic library, facilitating automated batch processing and custom integration into data pipelines. To ensure consistent performance across different environments, the project supports deployment within containerized architectures that encapsulate all necessary system-level dependencies and binaries.
This tool functions as a document processing engine that integrates OCR to extract text from images and PDFs, making it a capable solution for converting visual documents into structured machine-readable formats.
PDF-Extract-Kit is a document extraction toolkit designed to convert PDF documents into structured formats such as Markdown, HTML, and LaTeX. It functions as a multi-stage parsing framework that combines a document layout analyzer, a formula recognition engine, an OCR text extractor, and a table extraction system. The project focuses on recovering complex document elements by translating images of mathematical formulas and tabular structures into editable source code. It utilizes model-driven layout analysis to identify structural elements in reports and textbooks while ignoring noise like watermarks or blurring. The system supports the composition of custom parsing pipelines through configuration files and provides tools for benchmarking extraction model performance against datasets. Its broader capabilities include optical character recognition for extracting text and spatial coordinates, as well as vision-to-LaTeX translation for mathematical notation.
This toolkit functions as a comprehensive document parsing framework that integrates OCR, layout analysis, and table extraction to convert complex PDFs into structured formats.
Marker is an LLM-powered document parser and OCR pipeline designed to convert PDFs and unstructured files into structured markdown, JSON, and HTML. It functions as a data preprocessor that transforms complex documents into machine-readable formats while preserving tables, equations, and layout structures. The system utilizes large language models to refine OCR accuracy, clean mathematical notation, and merge fragmented tables across multiple pages. It employs model-based layout analysis to predict block types and bounding boxes, ensuring a more precise conversion of document elements. Capabilities include extracting images and structured data based on predefined schemas, as well as chunking documents for retrieval augmented generation pipelines. The project supports high-volume processing by distributing conversion tasks across multiple GPUs.
Marker is a specialized document parsing and OCR pipeline that excels at converting complex PDFs into structured formats, though it focuses more on document layout and LLM-based refinement than traditional multi-language OCR engines.
Docling is a modular framework designed for document parsing, layout analysis, and structured data extraction. It transforms unstructured files and web content into a unified, hierarchical data model that preserves the spatial and semantic relationships between text, tables, images, and layout elements. By normalizing diverse input formats into a consistent internal representation, the library enables uniform processing across various document types. The project distinguishes itself through a schema-driven approach that maps document regions to strongly-typed objects, ensuring data accuracy through validation against predefined templates. Its pipeline-based architecture supports pluggable processing backends, allowing for the dynamic integration of specialized engines for optical character recognition and complex visual layout analysis. Users can control parsing behavior and extraction parameters through declarative configuration files, facilitating integration into automated workflows and server-based architectures. The library provides both a programmatic interface and a command-line toolkit to support automated document processing and format conversion. It utilizes optional dependency management to allow for modular installation of specific features, such as media rendering or advanced processing capabilities, depending on the requirements of the application.
Docling is a document parsing and layout analysis framework that integrates OCR engines to convert complex documents into structured data, making it a highly capable tool for your document processing needs.
PyMuPDF is a comprehensive PDF manipulation library and document analysis tool. It serves as a text extraction tool, OCR engine, and image converter, providing a programmatic interface to edit, merge, split, and optimize PDF and Office documents. The project distinguishes itself through high-performance capabilities, including the use of C-bindings for low-level manipulation and parallelized page processing to accelerate workloads. It provides specialized conversion paths, such as transforming PDF content into Markdown for retrieval-augmented generation and large language model pipelines. Its broader capability surface covers optical character recognition for creating searchable text layers, detailed data extraction of tables and key-value pairs, and security operations including AES/RC4 encryption and permanent content redaction. The library also handles complex document geometry, layout analysis, and the generation of PDFs from HTML and CSS. The library supports multi-format document loading for PDF, EPUB, MOBI, SVG, and Office files, with the ability to process files via memory streams.
PyMuPDF is a powerful document processing library that includes built-in OCR capabilities and layout analysis, making it a highly effective programmatic tool for extracting text from images and PDFs.
EasyOCR is a deep learning-based computer vision library designed to perform optical character recognition on images and video frames. It functions as a comprehensive pipeline that automates the transformation of visual text into machine-readable strings, enabling the digitization of physical documents, forms, and receipts into searchable data. The engine distinguishes itself through a multi-stage processing workflow that combines convolutional neural networks for spatial feature extraction with sequence-based decoding mechanisms. This architecture allows the system to identify and interpret text across a wide range of global languages without requiring explicit character segmentation. It further refines its output using geometric filtering to ensure that detected text regions maintain coherent structure and logical paragraph grouping. The library provides a unified interface for hardware-agnostic compute, allowing users to route operations between central processing units and graphics accelerators based on their available environment. It supports various configuration options for language selection, output detail levels, and model storage management to facilitate integration into diverse data extraction workflows.
EasyOCR is a powerful deep learning-based OCR engine that supports numerous languages and provides the necessary pipeline for image-to-text conversion, though it functions as a library rather than a standalone document processing application.
Nougat is a neural OCR system and LLM document parser designed to convert images of academic PDF documents into structured markdown text and mathematical formulas. It functions as a PDF to markdown converter that uses deep learning to handle layout and formula recognition. The project provides a document training pipeline for generating datasets and training neural networks to recognize specific academic document styles. This includes utilities for training dataset generation, neural model training, and model checkpoint management to ensure reproducible deployment. The system covers a broad range of capabilities including academic document digitization and automated text extraction. It incorporates tools for model accuracy evaluation, performance testing, and training metric logging to monitor model convergence and stability. Programmatic access to these capabilities is available via web service endpoints for document conversion, text prediction, and structured OCR extraction.
Nougat is a specialized neural OCR system designed for academic document parsing and PDF-to-markdown conversion, providing the programmatic API access and layout analysis required for structured text extraction.
Umi-OCR is an optical character recognition engine designed to convert visual text from images and documents into machine-readable character data. It functions as a local-first toolkit, processing all visual data directly on the host machine using embedded neural network models to maintain privacy and offline availability. The project distinguishes itself through its focus on automated document digitization and integrated barcode and QR code decoding. By utilizing a modular, Python-based orchestration layer, it enables users to transform static image files and multi-page documents into searchable text formats. The system is built to handle high-volume tasks, employing asynchronous task queueing to maintain throughput during batch processing operations. Beyond its core recognition capabilities, the software provides a command-line interface that allows for the automation of repetitive extraction workflows. This interface exposes internal processing functions to external scripts, enabling the execution of batch recognition tasks without manual intervention. The project maintains consistent functionality across different operating system environments through its cross-platform native integration.
Umi-OCR is a local-first OCR toolkit that provides robust batch processing, layout analysis, and multi-language support, though it is primarily designed as a desktop application rather than a server-side API integration tool.
Tesseract.js is a JavaScript library that provides optical character recognition capabilities directly within web browsers and Node.js environments. It functions as a client-side engine, enabling the conversion of images containing printed text into machine-readable strings without the need for external APIs or server-side infrastructure. The library distinguishes itself by running the original C++ optical character recognition engine within the browser through WebAssembly modules. To maintain interface responsiveness during intensive computation, it utilizes background threads for parallel processing and employs shared memory buffers to exchange image data efficiently between the main thread and workers. This tool supports automated data extraction from scanned documents and photographs, facilitating offline processing that preserves user privacy. The library manages complex recognition pipelines through asynchronous, promise-based orchestration and handles large language data files using local binary objects to optimize loading performance.
Tesseract.js is a powerful OCR engine that brings the capabilities of the Tesseract C++ library to JavaScript environments, supporting multi-language recognition and image processing directly in the browser or Node.js.