If you have 50 invoices to process or a research report whose tables need to feed a database, manually copying data out of PDFs is not a workflow. Most developers reach for Python libraries like pdfplumber or PyMuPDF, which work well but require setup time, dependency management, and code for every new document shape. Non-developers are stuck entirely. This browser-based tool extracts text, word positions, table structure, and document metadata from PDFs and outputs clean, formatted JSON with zero code and nothing uploaded to any server.
How It Works
- Upload your PDF: Click or drag the file into the drop zone. PDF.js loads the document directly in your browser. No data is transmitted to a server at any point in the process.
- Choose your JSON schema and settings: Select one of four output schemas: Full Document (metadata, all pages, text, and word-level x/y/width/height positions), Text Only (a clean page-to-text array), Structured (column detection for table-like layouts with a configurable column threshold), or Metadata Only (title, author, page count, dates). Set indentation preference (2 spaces, 4 spaces, or minified), toggle word position coordinates on or off, choose a page range, and configure how empty lines are handled. Use the live preview to inspect the first page output before downloading.
- Download your JSON: Click "Convert to JSON." PDF.js extracts each text item with its position data, the tool structures it according to your chosen schema, applies indentation, and delivers the .json file for immediate download. Feed it directly into your pipeline, API, or spreadsheet import.
Compatibility and Support
Supported Input and Output Formats
- Input: Digital (text-selectable) PDF files, single-page and multi-page
- Output schemas: Full Document (with word-level bounding boxes), Text Only, Structured (table row/column detection), Metadata Only
- Indentation: 2-space, 4-space, or minified for compact storage or transmission
- Word positions: x, y, width, height coordinates included or stripped depending on your use case
- Page range: All pages, custom range (e.g. 1-3, 5), or first page only
Unsupported Formats
- Scanned PDFs (image-only): Text extraction via PDF.js requires actual selectable text in the file. A scanned PDF is an image with no text layer, so the JSON output will be empty or contain only metadata. Run OCR on the scan first to generate a text layer, then convert.
- Password-protected PDFs: Encryption blocks text access entirely. Remove the password before processing.
- Non-PDF inputs: Other formats like DOCX or XLSX are not supported as input.
File Size Limits
Processing runs entirely in your browser using PDF.js, so there is no server-side size cap. Large multi-page PDFs with dense text convert fully, though very heavy files may run slower on low-RAM devices. Closing other browser tabs before converting on constrained machines makes a noticeable difference.
Who Should Use This Tool?
- Students: A data science student who needs to extract a table from a 40-page economics research paper into JSON to feed a pandas DataFrame. Selecting the Structured schema with the correct column threshold pulls the rows cleanly without writing a single line of parsing code.
- Freelancers: A freelance automation consultant building a quick prototype to show a client how invoice data can be extracted before committing to a full pipeline. Getting the JSON output from a sample invoice in two minutes validates the approach without billable dev hours.
- Office Professionals: An operations analyst who receives monthly supplier reports as PDF and needs specific fields extracted into JSON to import into an internal database. The Metadata Only schema quickly captures title, date, and page count for file cataloging workflows.
- Developers: A backend developer building a RAG application who needs clean, position-aware JSON from internal company PDFs to feed a vector database. The Full Document schema with word-level bounding boxes provides the spatial data needed for accurate chunk boundaries in retrieval pipelines, and since nothing is uploaded, sensitive documents stay internal.
Key Features
Here's what separates this tool from generic alternatives:
Four Distinct JSON Schemas
Full Document, Text Only, Structured, and Metadata Only cover every extraction use case from quick text grabs to position-aware data pipelines.
Word-Level Position Data
Each word in Full Document mode includes x, y, width, and height coordinates from the PDF canvas. Essential for layout analysis, RAG chunking, and table reconstruction.
Table Structure Detection
The Structured schema detects column boundaries using a configurable pixel threshold (20px tight, 40px normal, 60px wide), reconstructing row and column groupings from positional text data.
Live JSON Preview
Preview the first-page JSON output before downloading. Confirm the schema and column detection are working correctly before committing to a full multi-page extraction.
100% Private, Browser-Only
PDF.js processes every page locally. Confidential invoices, legal documents, and proprietary data never leave your device, making this safe for sensitive enterprise content.
Flexible Output Formatting
Choose 2-space or 4-space indentation for human-readable output, or minified JSON for compact storage and faster transmission in API payloads.
Why This Tool Beats the Alternatives
- No account creation, no API key required, no per-page pricing model to worry about
- No server upload; cloud extraction APIs like Adobe PDF Extract send your documents to remote infrastructure even for free tier usage
- Four schema options in one interface rather than writing separate Python scripts for each extraction shape
- Word-level bounding box coordinates available without an enterprise API subscription
- Live preview before download, which no comparable free tool offers
- Minified output option for developers who need compact JSON ready for direct API or database insertion
Pro Tips
- For table extraction, start with the 40px normal column threshold and check the preview. If columns are merging incorrectly, drop to 20px tight. If separate columns are appearing for the same field, go wider to 60px. The correct threshold depends on the spacing in your specific PDF's table layout.
- When building a RAG or LLM pipeline, use the Full Document schema with positions enabled. Word-level x/y coordinates let you reconstruct reading order, identify column boundaries, and create accurate chunk boundaries that preserve semantic context better than simple character-count splitting.
- Use the Custom range field to extract only the pages you need before feeding the JSON downstream. A 200-page annual report where you only need pages 45 to 52 produces a much cleaner JSON payload, and the smaller output loads faster in any downstream parser or database import step.
Drop your PDF in, pick a schema, and check the live preview before downloading your JSON. For tabular data specifically, the Extract Tables from PDF tool gives a dedicated table-only extraction path, and the PDF to CSV converter outputs the same tabular content in a spreadsheet-ready format.