# Changelog of PDF & Image to Text / Markdown (with OCR) (`singgendarhan/pdf-image-to-text-markdown-ocr`) Actor

- **URL**: https://apify.com/singgendarhan/pdf-image-to-text-markdown-ocr/changelog.md
- **Full Actor documentation**: https://apify.com/singgendarhan/pdf-image-to-text-markdown-ocr.md

## Changelog

### 0.1 (unreleased, 2026-10-23)

First version, built and tested locally. Not yet published.

- PDFs and images (PNG, JPEG, TIFF incl. multi-page, WebP, BMP, GIF) to Markdown and plain text, one dataset row per file plus `.md`, `.txt` and `.json` files in the run's key-value store, and optional per-page rows in a `pages` dataset.
- PDF text layer via PDFium (pypdfium2); OCR with Tesseract 5 (28 languages) only on pages without a usable text layer and on images. `ocrMode` auto / always / never.
- Layout engine: column-aware reading order (XY-cut), headings from font size and weight, bullet and numbered lists, ruled and aligned tables as Markdown tables, hyphenation repair, running header/footer and page-number removal, rotated pages and auto-rotation of scans, page markers.
- Metadata: page count, title (PDF metadata or first heading), author, dates, producer, text-layer flag, OCR confidence, detected language, word/char/table/heading counts.
- Inputs from URLs (strings or `{url}` objects; Google Drive / Dropbox / GitHub share links normalized) and Apify key-value store keys. Optional PDF password (secret input).
- Robustness: magic-byte file sniffing, download retries with backoff (Retry-After), size limits, private-network URL blocking, a separate worker process per document with a hard timeout (partial results kept), OOM isolation, per-page error isolation, migration-safe progress state.
- Pay-per-event charging (`page-extracted`, `ocr-page`) only for pages that produced text, after the files are saved; respects the user's max cost per run with in-flight reservations so parallel documents cannot overspend.
