PDF Text Extractor — fast PDF to text & JSON, per page
Pricing
Pay per event
PDF Text Extractor — fast PDF to text & JSON, per page
Extract clean plain text from PDF files: whole document plus every page separately, in true reading order — multi-column layouts and RTL (Arabic) handled. No OCR overhead, no API keys. Pay per page delivered; scanned pages are detected, reported and never billed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Dos
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Give it PDF links; get back clean plain text — the whole document and every page separately — in true reading order. Multi-column pages are read column by column, not welded line by line across the gutter. Arabic and other right-to-left text keeps its direction. No OCR overhead, no API keys, no subscription.
Built for AI agents, RAG pipelines, and anyone who needs the text out of a PDF without ceremony.
What you get
One dataset item per input PDF:
{"url": "https://example.com/report.pdf","status": "ok","n_pages_in_document": 12,"n_pages": 12,"n_scanned_pages": 0,"script": "latin","n_words": 4816,"n_chars": 31220,"text": "Full document text, pages joined with \f ...","pages": [{"page": 1,"status": "ok","scanned": false,"n_words": 402,"n_columns": 2,"text": "Page text in reading order ..."}]}
Turn on Include spatial layout rendering to also get text_layout per
page — the page reproduced on a character grid (pdftotext -layout style),
which preserves tables without ruling lines, forms and diagram labels.
What it does well
- Reading order on multi-column pages. Column gutters are detected from the page's whitespace geometry (up to 3 columns), full-width headings split the page into stripes, and each column is read top to bottom.
- Right-to-left text. Arabic lines are assembled right-to-left; Persian and Urdu ZWNJ orthography is preserved, not stripped.
- Honest scanned-page handling. A page with no usable digital text layer
is flagged
"scanned": trueinstead of silently returning empty text — and it is not billed. For scanned documents, use the sibling actor PDF OCR Extractor (Arabic + English OCR built in). - Unicode hygiene. NFC normalization, zero-width and bidi control characters removed, exotic spaces unified — text that is safe to compare, index and embed.
Pricing — pay only for delivered text
| Event | Price | Charged when |
|---|---|---|
document-processed | $0.004 | a PDF delivered at least one page of text |
text-page | $0.0004 | per page that actually carried text |
A 10-page report costs $0.008. And the billing rule is deliberate: failed downloads, password-protected files, empty pages and scanned pages are never billed — not even the per-document fee. If you got no text, you pay nothing.
Your cost ceiling per document = $0.004 + $0.0004 × Max pages per document (default 100).
Input
| Field | Default | Notes |
|---|---|---|
pdf_urls | — | up to 100 direct PDF links per run |
pages | all | '1-5', '1,3,7-9' supported |
preserve_layout | false | adds text_layout per page |
max_pages_per_document | 100 | hard cost/pages cap per PDF |
include_failed_documents | true | failed docs appear with status + error |
Limits, stated plainly
- Digital text layer only — no OCR in this actor. Scanned pages are detected and flagged; PDF OCR Extractor reads them.
- PDFs up to 50 MB, 100 URLs per run, up to 1000 pages per document.
- Password-protected PDFs are reported as errors (and not billed).
The family
| Actor | Use it for |
|---|---|
| PDF Text Extractor (this one) | fast clean text from digital PDFs |
| PDF OCR Extractor | scanned/image PDFs, Arabic + English OCR, bounding boxes |
| PDF Table Extractor | tables as {headers, rows} JSON |
| Doc to Markdown | documents into LLM-ready Markdown |
Issues and requests
Open an issue on the actor's Issues tab — I read all of them.