All notable changes to PDF Text Extractor are recorded here. The newest release is first.
New, all optional; existing inputs give the same rows and the same price as before.
- RAG chunks (
ragChunks): one row per token-sized chunk (chunkSizeTokens, default 500; chunkOverlapTokens, default 50) with pageStart, pageEnd, pageNumbers, the section heading, an estimated tokenCount and a stable chunkId. Billed as one result per started 50 chunks of a PDF, so a PDF of up to 50 chunks costs the same as before.
- Files without a URL:
fileUploads (files uploaded in Console, key-value store record URLs or storeId/key, read with the run's own token) and base64Files (base64 or data URLs, with an optional file name and password). Rows carry source.
- Password-protected PDFs:
password (secret input, never logged or output); a wrong password is a free wrong_password row.
- Text tables (
extractTables): tables in the text layer as a tables array (rows of cells) and as Markdown tables in markdown and in RAG chunks. No OCR.
First public release.
- Text and Markdown from PDF URLs in bulk: one row per PDF, or one row per page with
splitByPage.
- Markdown rebuilds headings from font sizes, bullet and numbered lists and wrapped paragraphs, and drops page numbers and running headers and footers (one to three lines repeated at the top or bottom of the pages).
- Document info from the PDF itself: title, subject, keywords, creator, producer, creation and modification dates, PDF version, language, form fields, encryption. The author field is never returned (it usually holds a person's name).
pageRange, maxPages, maxFileSizeMb and a per-PDF timeout; Google Drive, Dropbox, GitHub and arXiv abstract links are turned into download links.
- Every row carries
status and, when something went wrong, errorType: a broken link, a web page instead of a PDF, a password-protected, damaged, oversized or scanned PDF is one free row and the rest of the batch still runs. Only ok rows are charged.
- Pure JavaScript (Mozilla pdf.js), no OCR, no third-party API key.