PDF & Image OCR Text Extractor (Scanned PDF to Text) avatar

PDF & Image OCR Text Extractor (Scanned PDF to Text)

Pricing

from $4.00 / 1,000 ocr pages

Go to Apify Store
PDF & Image OCR Text Extractor (Scanned PDF to Text)

PDF & Image OCR Text Extractor (Scanned PDF to Text)

Extract text from PDFs and images. Reads the text layer of digital PDFs and runs OCR on scanned pages, photos and screenshots in 20 languages. Per-page text, confidence scores, page ranges, Google Drive and Dropbox links. From $0.001 per page.

Pricing

from $4.00 / 1,000 ocr pages

Rating

0.0

(0)

Developer

Christian Yuli

Christian Yuli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does PDF & Image OCR Text Extractor do?

PDF & Image OCR Text Extractor pulls the text out of PDF files, scanned documents, photos and screenshots. Give it one or many file URLs and it returns clean text for every page, ready for spreadsheets, search, LLMs and RAG pipelines.

It's smart about cost and accuracy:

  • 📄 Digital PDFs (exported from Word, invoices, reports): the embedded text layer is read directly. It's exact and costs only $0.001 per page.
  • 🖨️ Scanned PDFs, images and photos: pages without a text layer go through OCR (Tesseract 5) in 19 languages, for $0.004 per page.
  • 🔀 Mixed documents are handled page by page automatically, so you never pay OCR prices for pages that already have text.

Supports PDF, PNG, JPG/JPEG, TIFF (multi-page), WEBP, BMP and GIF. Public Google Drive, Dropbox and OneDrive share links are converted to direct downloads automatically. No API keys or setup needed.

Why use this PDF to text converter?

  • 💸 Cheap: $0.001 per digital page, $0.004 per OCR page, platform usage included. 1,000 scanned pages cost $4.
  • 🎯 Confidence scores for every OCR page, so you can flag low-quality scans automatically.
  • ✂️ Page ranges like 1-3, 7, 10- and a per-file page limit to keep costs under control.
  • 🧾 No charge for failures: broken links, web pages and unreadable files are free.
  • 🔒 Private: documents are processed inside your Apify run, never sent to a third-party OCR API.
  • 🔁 Automation-ready: API, schedules, webhooks, n8n, Make, Zapier, and AI agents through the Apify MCP server.

Use cases

  • Invoice, receipt and contract processing: get the text, then parse fields with an LLM or regex
  • Digitize scanned archives and make them searchable
  • Feed documents into ChatGPT, Claude or a RAG / vector database (use "One dataset item per page" for easy chunking)
  • Extract text from screenshots and photos of whiteboards, menus, labels and signs
  • Bulk-convert PDF reports into text or CSV for analysis

How much does it cost?

Page typeWhat happensPrice per page
PDF page with a text layerText read directly, exact$0.001
Scanned PDF page or imageOCR with Tesseract 5$0.004

You're billed only for pages that are processed. Apify's free plan includes monthly credits, enough for hundreds of OCR pages for free.

How to extract text from a PDF or image

  1. Click Try for free / Start.
  2. Paste your file links into PDF or image URLs.
  3. Pick the OCR languages used in your documents (e.g. English + Spanish).
  4. Optionally set Pages (e.g. 1-5) and the OCR mode.
  5. Click Start and download the results as JSON, CSV, Excel or HTML, or grab the .txt file of each document from the run's key-value store.

OCR modes

  • Auto (recommended): text layer when available, OCR only for scanned or image-only pages.
  • Always: OCR every page, even if it has a text layer (useful when the embedded text is garbled).
  • Never: text layer only, the cheapest option for digital PDFs.

Input

{
"fileUrls": [
"https://example.com/invoice-2026-001.pdf",
"https://www.dropbox.com/s/abc123/scan.jpg?dl=0"
],
"ocrMode": "auto",
"languages": ["eng", "spa"],
"pages": "1-3",
"maxPagesPerFile": 500,
"outputOnePagePerItem": false
}

Output

One item per file (or per page if One dataset item per page is on):

{
"url": "https://example.com/invoice-2026-001.pdf",
"status": "succeeded",
"fileType": "pdf",
"pageCount": 3,
"processedPages": 3,
"ocrPages": 1,
"textLayerPages": 2,
"averageOcrConfidence": 94.6,
"wordCount": 812,
"text": "INVOICE No. 2026-001\nBill to: ...",
"textUrl": "https://api.apify.com/v2/key-value-stores/.../records/text-1.txt",
"pages": [
{ "page": 1, "method": "text-layer", "ocrConfidence": null, "charCount": 2310, "text": "INVOICE No. 2026-001 ..." },
{ "page": 2, "method": "ocr", "ocrConfidence": 94.6, "charCount": 1804, "text": "..." }
]
}

Failed files come back with "status": "failed" and a clear error message, so one bad link never breaks a batch.

Supported OCR languages

English, Spanish, Portuguese, French, German, Italian, Dutch, Polish, Russian, Ukrainian, Turkish, Arabic, Hindi, Chinese (Simplified and Traditional), Japanese, Korean, Vietnamese and Indonesian. Text-layer extraction works for any language.

Use it from code

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("cyuli/pdf-ocr-extractor").call(run_input={
"fileUrls": ["https://example.com/scan.pdf"],
"languages": ["eng"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["text"])

FAQ

Does it keep the layout or tables? It returns reading-order text with line breaks and paragraphs. Tables come out as text rows; it does not rebuild table structure.

Does it read handwriting? Tesseract is designed for printed text. Neat block handwriting sometimes works, cursive usually doesn't.

What about password-protected PDFs? Encrypted PDFs that need a password to open are reported as failed and not charged.

How fast is it? Digital PDF pages take milliseconds. OCR takes a few seconds per page; give the run more memory to speed up large batches.

My scan is sideways. What should I do? Enable Detect rotated pages.

Feedback

Need another language, table extraction or a different output format? Open an issue in the Issues tab.