PDF Text Extractor: PDF and Image to Text, with OCR
Pricing
from $4.00 / 1,000 pdfs
PDF Text Extractor: PDF and Image to Text, with OCR
Turn PDFs and images into clean text and Markdown for AI, RAG and search. Paste links (Google Drive and Dropbox too) or a page that links to PDFs. Get headings, pages, chunks, links, form fields and metadata. OCR for scans and images. $4 per 1,000 PDFs.
Pricing
from $4.00 / 1,000 pdfs
Rating
0.0
(0)
Developer
VindR
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
What does PDF Text Extractor do?
It turns PDF files and images into clean text and Markdown that you can feed straight into an AI model, a RAG pipeline, a search index or a spreadsheet. Paste links to PDFs or images (Google Drive and Dropbox share links work too), or give it a web page and it finds the PDFs the page links to.
For every PDF you get:
- Markdown with headings and lists, and plain text in clean paragraphs.
- The text split the way you need it: one item per document, one per page, or chunks of a set size for embeddings.
- Metadata: title, author, dates, page count, language and more.
- Links in the document and filled-in form fields.
- OCR for scanned pages and images (PNG, JPEG, WebP, GIF, BMP) in 12 languages, if you turn it on.
Running headers, footers and page numbers are removed, and words split with a hyphen at the end of a line are joined again, so the text reads the way a person would read it.
What data do you get?
| Field | Example |
|---|---|
| File, type and title | handbook.pdf, pdf or image, "Attention Is All You Need" |
| Markdown | ## 3.1 Encoder and Decoder Stacks followed by the paragraphs |
| Plain text | the same content without formatting |
| Pages | page count, which pages were extracted, which were read with OCR |
| Size | character and word count |
| Metadata | author, subject, keywords, creator app, created and modified date, language, PDF version |
| Links | every web link in the document |
| Form fields | name and value of every filled-in field |
| Source | the PDF's URL, and the web page it was found on |
How to use it
- Click Try for free at the top of this page.
- Add links to PDFs or images under PDF or image URLs, or web pages, one per line.
- Pick an Output format (Markdown, plain text or both) and how to Split output by (document, page or chunk).
- For scanned documents and images, turn on Read scanned pages and images (OCR) and pick the languages.
- Click Start, then download the results as JSON, CSV or Excel, or use the API.
Input examples
Extract a few PDFs as Markdown:
{"urls": ["https://arxiv.org/pdf/1706.03762v7", "https://example.com/annual-report.pdf"],"outputFormat": "markdown"}
Chunks for a RAG pipeline, about 500 tokens each:
{"urls": ["https://example.com/handbook.pdf"],"splitBy": "chunk","chunkSize": 2000,"chunkOverlap": 200,"outputFormat": "markdown"}
Every PDF linked from a web page, with OCR for scanned ones in Norwegian and English:
{"urls": ["https://example.com/reports/"],"maxPdfsPerPage": 50,"ocr": true,"ocrLanguages": ["nor", "eng"]}
Text from screenshots or photos of documents, in English and Norwegian:
{"urls": ["https://example.com/receipt.jpg", "https://example.com/screenshot.png"],"ocr": true,"ocrLanguages": ["eng", "nor"]}
Output example
One document, shortened to keep it readable:
{"url": "https://arxiv.org/pdf/1706.03762v7","fileName": "1706.03762v7.pdf","fileType": "pdf","foundOnPage": null,"status": "ok","title": "Attention Is All You Need","pdfTitle": null,"author": null,"creator": "LaTeX with hyperref","producer": "pdfTeX-1.40.25","createdAt": "2024-04-10T21:11:43.000Z","modifiedAt": "2024-04-10T21:11:43.000Z","language": null,"pdfVersion": "1.5","pageCount": 15,"pagesExtracted": 15,"pagesWithoutText": [],"ocrPages": [],"charCount": 39822,"wordCount": 6107,"markdown": "Provided proper attribution is provided, Google hereby grants permission...\n\n## Attention Is All You Need\n\n...\n\n### Abstract\n\nThe dominant sequence transduction models are based on complex recurrent or convolutional neural networks...\n\n### 1 Introduction\n\n...","text": "Provided proper attribution is provided, Google hereby grants permission...\n\nAttention Is All You Need\n\n...","links": ["https://github.com/tensorflow/tensor2tensor", "..."],"formFields": [],"fileSizeBytes": 2215244,"truncated": false,"note": null,"extractedAt": "2026-09-25T10:00:00.000Z"}
With Split output by: Chunk, each item has chunkIndex, chunkCount, pageStart, pageEnd and the chunk's markdown or text. With Page, each item has pageNumber and the page's text.
Files that can't be read are saved too, with status: "failed" and an errorMessage that says why, so you can see what happened to every file. A RUN_SUMMARY record in the key-value store counts the PDFs, pages and OCR pages.
How much does it cost?
- $4 per 1,000 PDFs extracted, whatever their length and however you split the output.
- $10 per 1,000 pages or images read with OCR, only when you turn OCR on and only for pages that have no text layer. Pages with normal text are never OCR'd or charged for OCR. An image counts as one OCR page and nothing else.
Examples:
- 100 PDFs with normal text: $0.40.
- 1,000 PDFs with normal text: $4.
- 50 scanned PDFs of 10 pages each, with OCR: $0.20 for the PDFs plus $5 for 500 OCR pages.
- 200 screenshots or photos of documents: $2.
Files that fail (broken links, not a PDF, wrong password) and PDFs where no text is found are not charged. The $5 in free monthly credit on the Apify free plan covers about 1,250 PDFs. Set a maximum cost per run if you want a hard budget: the run stops before it goes over it.
What can you use it for?
- RAG and AI assistants. Turn manuals, reports and policies into Markdown chunks for a vector database.
- Research. Pull the text out of papers, filings and public reports to search or summarize them.
- Document processing. Read invoices, forms and contracts, including the values in filled-in PDF forms.
- Monitoring. Point it at a page that publishes PDFs (tenders, minutes, price lists) and get the text of every new file.
- Archives. Make old scanned documents searchable with OCR.
- Screenshots and photos. Get the text out of screenshots, photographed pages, receipts and signs.
FAQ
Can it read scanned PDFs and images?
Yes, with Read scanned pages and images (OCR) turned on. Images can be PNG, JPEG, WebP, GIF or BMP (convert TIFF files first); small images like screenshots are enlarged before reading, which helps a lot. It reads English, Norwegian, Swedish, Danish, Finnish, German, French, Spanish, Italian, Dutch, Portuguese and Polish. OCR takes a few seconds per page or image (up to about 10 for a dense page), so large scanned files take a while. Clear scans give good results (confidence is usually above 90%). Tables, handwriting and text on dark backgrounds are much harder for OCR and can come out incomplete.
How good is the Markdown?
Headings come from the font sizes in the PDF: the largest text becomes #, the next ##, and so on, and numbered headings like "3.1 Background" are recognized too. Bullet lists become Markdown lists. Headings that only differ from the body text by being bold can't be told apart and stay as normal paragraphs. Tables come out as text line by line, not as Markdown tables.
What about columns?
Text is read in the order the PDF stores it, which for almost all documents is the reading order, one column after the other. For scanned pages, OCR detects the columns.
How do I extract a PDF or image from my computer?
Share it with a link and paste the link. Google Drive and Dropbox share links work as they are: set the file to "anyone with the link can view", copy the link and paste it. The Actor turns the share link into a download link by itself. Any other public link to the file works too.
What happens with password-protected PDFs?
Add the password under PDF password and it is used for every file that needs one. PDFs that only restrict printing or copying open without a password.
Why was a file not charged?
Only PDFs and images that give you text are charged. Broken links, files that aren't PDFs or images, damaged files, wrong passwords, and scanned PDFs or images when OCR is off are saved with a status and an errorMessage so you know what happened, and cost nothing.
Is it legal?
It downloads the files you point it to, like a browser would. When you give it a web page, it only follows links to PDF files and respects the site's robots.txt. The documents may contain personal data or copyrighted text, and you are responsible for having the right to process them.
Are there any limits?
Files up to 500 MB (100 MB by default, see Max file size). Very long documents are best split by page or chunk: a single dataset item can hold about 8 MB of text, and a document that is longer than that is shortened with a note.
Can I use it from my own code?
Yes. Every Apify Actor has an API. See the API tab for examples in Python, JavaScript and plain HTTP. It also works with Make, n8n, Zapier and LangChain.
Something missing or not working?
Open an issue on the Issues tab with a link to the PDF, if you can share it.
More tools from VindR
- RSS Feed Reader and News Monitor: the full text of news articles and blog posts as Markdown.
- Sitemap Extractor, URL Status and Broken Link Checker: every page of a website, to find what it publishes.