# Changelog of Image to Text OCR - Extract Text from Images & PDFs (`zenomastro/image-ocr-text-extractor`) Actor

- **URL**: https://apify.com/zenomastro/image-ocr-text-extractor/changelog.md
- **Full Actor documentation**: https://apify.com/zenomastro/image-ocr-text-extractor.md

## Changelog

### 2026-10-10

PDF to Structured Data is merged into this Actor: its input works here unchanged, change only the Actor name. The new options are off by default, add no charge, and runs that do not use them give the same results as before.

- Extract tables from digital PDFs (`extractTables`): pages read from the text layer also return `tables`, the page's rows split into cells by position (the same method as PDF to Structured Data), and the Markdown gets an "Extracted table" section when a page has a table. A page whose layout cannot be read keeps its text and gets a short `tablesError` note.
- Include PDF metadata (`extractMetadata`): the `document_summary` row gets the PDF's title, author, subject, keywords, creator, producer, creation and modification dates (ISO 8601), page count, encryption, page size and PDF version.
- PDF to Structured Data's input names are accepted: `pdfUrls`, `maxPages` (0 = all pages, up to 100) and `maxPdfSizeMb`.

### 2026-10-03

- Lower run start fee: $0.0001 per GB of run memory (was higher), so short runs and AI-agent calls cost less.
- Clearer title and description, and README cleaned up (no duplicated sections).
- Input form: the essential fields come first; optional settings are grouped under "Advanced settings".
- Default memory lowered to 1 GB (enough for typical images and PDFs), which also lowers the start fee per run.

### 2026-10-02

- Smart PDF mode (`pdfTextMode`): digital PDFs are read from their own text layer, exact and about 10× faster; OCR runs only on scanned pages. Each row says `textSource`: `text_layer` or `ocr`.
- Layout output (`outputDetail`): lines, paragraphs or words with confidence, pixel boxes and 0–1 boxes (`bboxNorm`) for tables, forms and highlighting.
- Files that are not online: `imagesBase64` takes base64 strings or data URIs.
- Multi-page TIFF files (fax, scanner batches) are read page by page with a document summary; before, only the first page was read.
- Google Drive and Dropbox share links work directly, and `[{"url": ...}]` lists are accepted.
- Phone screenshots are read once instead of three times (a sideways retry happens only when the first result is poor), so they finish faster.
- Photos up to 250 megapixels (108 MP and 200 MP phone cameras) are accepted.
- Clear messages for password-protected or damaged PDFs and for links that return a web page instead of a file.
- More robust: a page that hangs or crashes the OCR engine gets its own error row and the run continues with a fresh engine; one bad PDF page no longer loses the rest of the document.
- iPhone HEIC/HEIF photos and BMP images are now supported (converted automatically before OCR).
- Fixed: a language whose data could not be downloaded (for example Tagalog, or a short CDN outage) could stop the whole run. The Actor now falls back to the remaining languages or English, and English, Spanish, French, German, Italian and Portuguese are bundled in the image.
- Downloads now time out on slow bodies too, files without a size header are capped while reading, and the Actor stops cleanly just before the run timeout with a row listing what was not processed.

### 2026-10-01

- More reliable runs: inputs over the limits are trimmed and reported instead of failing, very large scans are resized to 4000 px, and OCR engine problems become a clear error row.
- Fixed: language codes are normalized (e.g. `en`, `english`, `eng`), scanned PDFs are processed page by page, and broken sources are reported per input instead of failing the run.
- Tesseract workers fall back to English automatically if a language pack cannot be loaded.
- Simpler pricing: Apify platform usage is now included in the per-result price, so you only pay per result plus a small start fee.
- Subscriber discounts on paid Apify plans: Bronze −10%, Silver −15%, Gold and higher −20% per result.
- Prefilled example input, so the first run works with one click.
- New Output tab with a results table and a JSON link for APIs and AI agents.
- README section on using the Actor from AI agents (Apify MCP server) and the REST API.
- Safer memory limits to keep runs fast and costs predictable.
- At the end of a run, the status message now links to the reviews and issues pages, so you can rate the Actor (1–5 ★) or suggest improvements.
