Image to Text OCR: Images & Scanned PDFs, 24 Languages
Pricing
from $1.05 / 1,000 page with texts
Image to Text OCR: Images & Scanned PDFs, 24 Languages
Extract text from image URLs (PNG, JPG, WebP, TIFF, GIF) and scanned PDFs with open-source Tesseract OCR. 24 languages incl. Korean, Japanese, Chinese. Confidence, word boxes, dataset input. Blank pages and failed files are free.
Pricing
from $1.05 / 1,000 page with texts
Rating
0.0
(0)
Developer
Ctrio Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
Extract text from images and scanned PDFs with open-source Tesseract OCR. Give direct file URLs, files in an Apify key-value store, or a dataset from another Actor, and get one clean row per file: the text, an average confidence score, per-page results and, if you want, every word with its bounding box.
- Inputs: PNG, JPG, WebP, TIFF (every page), GIF and BMP (first frame), scanned PDFs (every page, or a page range). Direct URLs, an Apify key-value store, or a dataset from another Actor.
- 24 languages: English, Korean, Japanese, Chinese (Simplified and Traditional), Spanish, German, French, Portuguese, Italian, Dutch, Polish, Russian, Ukrainian, Turkish, Arabic, Hindi, Vietnamese, Indonesian, Thai, Swedish, Czech, Greek, Hebrew. Mix several for multilingual documents.
- Preprocessing: grayscale, automatic 2x upscaling of small images, optional deskew (straightens scans tilted up to 10 degrees), transparent PNGs put on white, phone photo rotation (EXIF) fixed.
- Fair billing: you pay per page that actually contains text. Blank pages, broken links, web pages and unreadable files are free and listed with a reason.
- Private: nothing is sent to Google, OpenAI or any other service. OCR runs inside the Actor's container.
How to use it
- Paste image or PDF links into Image or PDF URLs (or pick a key-value store, or a dataset and the name of its URL field).
- Choose the languages of the text. English is the default.
- Click Start. Each file becomes one row in the dataset. Export it as JSON, CSV, Excel or read it by API.
Leave the input empty to try it on a built-in public domain book page.
Output
{"url": "https://example.com/scan.pdf","fileName": "scan.pdf","status": "ok","fileType": "pdf","languages": "eng","text": "FEDERAL BUREAU OF INVESTIGATION\nMemorandum ...","confidence": 91.4,"wordCount": 612,"characterCount": 3861,"totalPages": 3,"pageCount": 3,"billedPages": 3,"pages": [{ "page": 1, "text": "...", "confidence": 92.1, "wordCount": 230, "width": 2550, "height": 3300 }],"processingSeconds": 6.2,"processedAt": "2026-10-29T05:00:00+00:00"}
status:ok(text found),blank(no text, not charged) orfailed(witherror, not charged).confidence: Tesseract's average word confidence, 0 to 100. Below about 60 usually means a poor scan or the wrong language.- With Include word boxes each page gets
words: [{ text, confidence, left, top, width, height, line }]in original image pixels. - The run's key-value store has a
SUMMARYrecord with billed pages, blank pages and failed files.
Read URLs from another Actor's dataset
Pick the dataset in Or read URLs from a dataset and set URL field (dotted paths such as images.0.url work). Every column of the source row is copied into the result row, so you can join the text back to your products, listings or documents. If a source column has the same name as one of ours, it is kept as source_<name>. Rows whose link fails still appear with status: "failed" so nothing goes missing.
In an integration after another Actor, use {{resource.defaultDatasetId}} as the dataset.
Scheduled runs: only new files
Turn on Only new files and give a Monitor name. URLs read in earlier runs with the same name are skipped (not charged), so a daily schedule over a growing list only pays for new images.
Tips for better results
- Use Sparse text layout for receipts, signs, photos and tables, Single block for screenshots and cropped text.
- Pick the right language. Korean, Japanese and Chinese text needs its language selected.
- For crooked phone scans, turn on deskew.
- PDFs that already contain a text layer (not scanned) are read faster and cheaper by our PDF Text Extractor.
Pricing
Pay per event: $0.0015 per page with text ($1.50 per 1,000 pages) on the Free plan, down to $0.00105 on Gold and higher plans, plus a tiny Actor start fee ($0.00005 per GB of memory). Platform usage (compute) is paid by you; in our tests it was about $0.0004 per scanned PDF page and about $0.0005 for a one-image run at the default 2 GB memory. Blank pages and failed files are never charged. You can cap the cost of a run with the maximum cost per run setting; the Actor stops cleanly when it is reached.
FAQ
Does it handle handwriting? Tesseract is made for printed text. Neat block letters often work, cursive handwriting does not.
Which image size works best? Text about 20 to 40 pixels high. Small images are upscaled automatically.
Can I send a PDF with many pages? Yes. Set Max pages per file (default 50) and an optional page range like 1-10, 15.
Is my data stored? Files are deleted from the container after OCR. Results stay only in your run's storage.
Your files
Only submit files you have the right to process. This Actor does not log in anywhere, does not use proxies and does not scrape websites. It reads exactly the files you link.
Licenses
Tesseract OCR and its trained data are Apache-2.0. PDF rendering uses PDFium (BSD-3) through pypdfium2. The sample page is public domain (Biodiversity Heritage Library, Wikimedia Commons).
Questions or a feature request: help@ctriolab.com. Made by Ctrio Lab.