PDFExtract Pull Text from PDFs
Extract clean readable text from PDF files into agent-ready markdown. Multi-page, tables, headers. No external services.
Every agent needs to read PDFs. This does it cleanly.
Usage
const { PDFExtract } = require('./src/pdf-extract');
const pdf = new PDFExtract();
const text = await pdf.extract('document.pdf');
console.log(text);
const structured = await pdf.extractStructured('document.pdf');
console.log(structured.pages); // Array of page texts
console.log(structured.metadata); // Title, author, page count
console.log(structured.headings); // Detected headings
Features
- Clean text extraction — strips headers/footers, page numbers, watermarks
- Page-by-page — access individual pages or full document
- Heading detection — identifies structure from font sizes
- Table extraction — basic table detection and formatting
- Metadata — title, author, creation date, page count
- Batch processing — extract multiple PDFs at once
- Markdown output — formatted with headings and structure preserved
Supported PDF Types
| Type |
Support |
| Text PDFs |
Full support |
| Scanned/Image PDFs |
Basic (needs OCR) |
| Forms |
Text fields extracted |
| Password-protected |
Supported (provide password) |
⚠️ Disclaimer
This software is provided "AS IS", without warranty of any kind, express or implied.
USE AT YOUR OWN RISK.
- The author(s) are NOT liable for any damages, losses, or consequences arising from
the use or misuse of this software — including but not limited to financial loss,
data loss, security breaches, business interruption, or any indirect/consequential damages.
- This software does NOT constitute financial, legal, trading, or professional advice.
- Users are solely responsible for evaluating whether this software is suitable for
their use case, environment, and risk tolerance.
- No guarantee is made regarding accuracy, reliability, completeness, or fitness
for any particular purpose.
- The author(s) are not responsible for how third parties use, modify, or distribute
this software after purchase.
By downloading, installing, or using this software, you acknowledge that you have read
this disclaimer and agree to use the software entirely at your own risk.
DATA DISCLAIMER: This software processes and stores data locally on your system.
The author(s) are not responsible for data loss, corruption, or unauthorized access
resulting from software bugs, system failures, or user error. Always maintain
independent backups of important data. This software does not transmit data externally
unless explicitly configured by the user.
Support & Links
Built with OpenClaw — thank you for making this possible.
🛠️ Need something custom? Custom OpenClaw agents & skills starting at $500. If you can describe it, I can build it. → Hire me on Fiverr
1---2name: pdfextract-pull-text-from-pdfs3description: Extract clean readable text from PDF files into agent-ready markdown. Multi-page, tables, headers. No external services.4---56# PDFExtract Pull Text from PDFs78Extract clean readable text from PDF files into agent-ready markdown. Multi-page, tables, headers. No external services.910---1112Every agent needs to read PDFs. This does it cleanly.1314## Usage1516```javascript17const { PDFExtract } = require('./src/pdf-extract');18const pdf = new PDFExtract();1920const text = await pdf.extract('document.pdf');21console.log(text);2223const structured = await pdf.extractStructured('document.pdf');24console.log(structured.pages); // Array of page texts25console.log(structured.metadata); // Title, author, page count26console.log(structured.headings); // Detected headings27```2829## Features3031- **Clean text extraction** — strips headers/footers, page numbers, watermarks32- **Page-by-page** — access individual pages or full document33- **Heading detection** — identifies structure from font sizes34- **Table extraction** — basic table detection and formatting35- **Metadata** — title, author, creation date, page count36- **Batch processing** — extract multiple PDFs at once37- **Markdown output** — formatted with headings and structure preserved3839## Supported PDF Types4041| Type | Support |42|------|---------|43| Text PDFs | Full support |44| Scanned/Image PDFs | Basic (needs OCR) |45| Forms | Text fields extracted |46| Password-protected | Supported (provide password) |47---4849## ⚠️ Disclaimer5051This software is provided "AS IS", without warranty of any kind, express or implied.5253**USE AT YOUR OWN RISK.**5455- The author(s) are NOT liable for any damages, losses, or consequences arising from 56 the use or misuse of this software — including but not limited to financial loss, 57 data loss, security breaches, business interruption, or any indirect/consequential damages.58- This software does NOT constitute financial, legal, trading, or professional advice.59- Users are solely responsible for evaluating whether this software is suitable for 60 their use case, environment, and risk tolerance.61- No guarantee is made regarding accuracy, reliability, completeness, or fitness 62 for any particular purpose.63- The author(s) are not responsible for how third parties use, modify, or distribute 64 this software after purchase.6566By downloading, installing, or using this software, you acknowledge that you have read 67this disclaimer and agree to use the software entirely at your own risk.686970**DATA DISCLAIMER:** This software processes and stores data locally on your system. 71The author(s) are not responsible for data loss, corruption, or unauthorized access 72resulting from software bugs, system failures, or user error. Always maintain 73independent backups of important data. This software does not transmit data externally 74unless explicitly configured by the user.7576---7778## Support & Links7980| | |81|---|---|82| 🐛 **Bug Reports** | TheShadowyRose@proton.me |83| ☕ **Ko-fi** | [ko-fi.com/theshadowrose](https://ko-fi.com/theshadowrose) |84| 🛒 **Gumroad** | [shadowyrose.gumroad.com](https://shadowyrose.gumroad.com) |85| 🐦 **Twitter** | [@TheShadowyRose](https://twitter.com/TheShadowyRose) |86| 🐙 **GitHub** | [github.com/TheShadowRose](https://github.com/TheShadowRose) |87| 🧠 **PromptBase** | [promptbase.com/profile/shadowrose](https://promptbase.com/profile/shadowrose) |8889*Built with [OpenClaw](https://github.com/openclaw/openclaw) — thank you for making this possible.*9091---9293🛠️ **Need something custom?** Custom OpenClaw agents & skills starting at $500. If you can describe it, I can build it. → [Hire me on Fiverr](https://www.fiverr.com/s/jjmlZ0v)