OCRV4 is a high-precision CLI pipeline that converts complex PDF documents into structured Markdown using Google Gemini multimodal vision. It delivers pristine layout and content preservation for academic papers, scanned textbooks, and technical documentation. By fusing local Poppler rasterization with state-of-the-art vision models, OCRV4 eliminates traditional OCR inaccuracies.
flowchart LR
A["📄 PDF Input"] --> B["✂️ Page Splitting & DPI Rasterization<br/>(Poppler / pdf2image)"]
B --> C["👁️ Multimodal Vision OCR<br/>(Google Gemini API)"]
C --> D["📝 Unified Structured Markdown Output"]
- Multimodal AI OCR: Direct visual recognition using Google Gemini vision models without brittle heuristics.
- High-Fidelity Extraction: Faithfully preserves complex headings, tables, mathematical notation, and nested lists.
- Auto-Splitting & DPI Scaling: Configurable resolution (default 300 DPI) with resilient sequential processing.
- Zero Data Retention: Temporary page rasters and intermediate files are automatically purged after extraction.
OCRV4 requires Poppler for high-fidelity PDF rendering and page rasterization:
brew install popplersudo apt-get update && sudo apt-get install -y poppler-utilsscoop install poppler
# or using Chocolatey:
choco install popplergit clone https://github.com/armando-token/OCRV4.git
cd OCRV4
pip install -r requirements.txtcp .env.example .env
# Edit .env and supply your Gemini API credential:
# GEMINI_API_KEY=your_google_gemini_api_key_herepython pdf_to_markdown_seq.py --pdf document.pdf| Flag | Type | Default | Description |
|---|---|---|---|
--pdf |
string |
(Required) | Target PDF filename (in --input-dir) or direct filesystem path. |
--input-dir |
string |
input |
Directory containing source PDF documents. |
--output-dir |
string |
output |
Destination directory where generated Markdown is saved. |
--dpi |
int |
300 |
Rasterization resolution in dots per inch for page images. |
--model |
string |
gemini-1.5-flash |
Google Gemini multimodal vision model variant (or via GEMINI_MODEL). |
This project is licensed under the MIT License © 2026 Armando Silva.