PDF to CSV

📊
Click to select PDF or drag & drop here
Extract text, tables, or raw data from PDF pages and export as CSV
Table Detection All Pages Per Page CSV Custom Delimiter Live Preview
📄
document.pdf
0 KB · PDF
Reading…
⚙ Extraction Settings
Extraction Mode
📋
Table Detect
Auto-detect columns using x-position
📄
Line by Line
Each text line becomes one CSV row
🔤
Word + Position
Export text with x,y coordinates
💡 Tips: Use Table Detect for PDFs with structured tables. Use Line by Line for reports or text-heavy PDFs. Use Word + Position to see exact x,y coordinates of each word — useful for debugging layouts. PDF text extraction works best on selectable (non-scanned) PDFs.

👁 Preview

1
Loading
2
Extracting Text
3
Parsing Columns
4
Building CSV
5
Done
Starting…
📊

CSV Extracted Successfully!

CSV file is ready.
⬇ Download CSV
← Extract another PDF
🔒 100% Private: Your PDF text is extracted entirely in your browser using PDF.js. Nothing is uploaded to any server. Works best on digital PDFs with selectable text. Scanned PDFs (images) may produce empty or limited output.

PDF data stays locked until you can get it into a format a database, analytics tool, or script can actually read. Copying rows from a government statistics PDF into a spreadsheet by hand is a half-day task. Running the same PDF through Python pdfplumber requires setup, dependency management, and code. The faster route for one-off extractions is a browser-based converter that gives you three distinct extraction modes, a configurable delimiter, and a live preview before you commit to downloading. Everything runs locally in your browser via PDF.js. Nothing is uploaded to any server.

How It Works

  1. Upload your PDF: Click or drag the file into the drop zone. PDF.js loads the document locally in your browser and immediately allows a first-page preview so you can verify the extraction looks correct before downloading.
  2. Configure your extraction settings: Choose an extraction mode: Table Detect groups text by x-position to reconstruct column structure (best for PDFs with structured tables); Line by Line outputs each text line as a single CSV row (best for reports and text-heavy documents); Word and Position exports every word with its x,y coordinates (useful for developers building layout parsers or debugging extraction logic). Select a delimiter (comma, semicolon, tab, or pipe), a quote character, whether to produce one combined CSV or a separate file per page, whether to include a page number column, and how to handle empty lines. Adjust the column threshold between 20px and 80px to control how aggressively gaps between text are treated as column separators.
  3. Extract and download: PDF.js extracts each text item with its position data. The tool applies your chosen mode and grouping logic, writes the CSV with your selected delimiter and quoting rules, and delivers the file or ZIP of per-page CSVs for immediate download. Open it in Excel, Google Sheets, import it into a database, or feed it directly into a Python script.

Compatibility and Support

Supported Input and Output Formats

  • Input: Standard digital (text-selectable) PDF files, single-page and multi-page
  • Output: .csv plain text file with your chosen delimiter, compatible with Excel, Google Sheets, LibreOffice Calc, any SQL database importer, Python pandas, R, Tableau, and any system that accepts delimited text
  • Delimiters: Comma, semicolon, tab, pipe
  • Output structure: Single combined CSV or one file per page in a ZIP archive

Unsupported Formats

  • Scanned PDFs (image-only pages): Text extraction via PDF.js requires actual selectable text in the file. Scanned pages will produce empty CSV output. Run OCR on the scan first to add a text layer, then convert. Check your PDF by trying to select text with your cursor before uploading.
  • Password-protected PDFs: Encryption blocks content access entirely. Remove the password before converting.
  • Non-PDF inputs: Other formats are not accepted. Convert them to PDF first.

File Size Limits

There is no server-side file size cap since all processing runs in your browser. Very large multi-page PDFs with dense text content may take a few extra seconds on low-RAM devices. For large document sets, using a custom page range or converting section by section produces faster, more manageable output.

Who Should Use This Tool?

  • Students: A data science student who needs to extract a statistical table from a 200-page government census PDF for an analysis project. Table Detect mode with the default 40px column threshold pulls the rows cleanly into a CSV ready for pandas without writing a single line of Python.
  • Freelancers: An independent bookkeeper who receives supplier reports and purchase order summaries as PDFs each month and needs to import the line items into accounting software. Choosing semicolon as the delimiter matches the import format their accounting platform expects, avoiding the extra reformatting step.
  • Office Professionals: A business analyst who needs to load product pricing tables from a vendor's PDF catalog into a CRM or ERP system. Line by Line mode with a page number column produces a traceable CSV where each row can be referenced back to the original PDF page.
  • Developers: A developer prototyping a document parsing pipeline who uses Word and Position mode to get the exact x,y coordinates of every word on each page. This lets them write column-detection logic and verify boundary thresholds before committing to a production implementation.

Key Features

Here's what separates this tool from generic alternatives:

📋

Three Extraction Modes

Table Detect for columnar data, Line by Line for text-heavy documents, and Word and Position for coordinate-aware extraction. No other free browser tool offers all three in one interface.

⚙️

Configurable Delimiter

Comma, semicolon, tab, and pipe options let you match the exact format your import system expects. European accounting software typically requires semicolons; databases often prefer pipe-delimited.

👁️

Live Preview Before Download

Preview the first-page extraction result before committing to a download. Catch column misalignment or wrong threshold settings without wasting time on a full conversion.

🔒

100% Browser-Based, No Upload

Bank statements, financial reports, and invoice data are processed entirely in your browser. No file is transmitted to any external server at any point.

📄

Per-Page or Combined Output

Combine all pages into one CSV for easy import, or get a separate file per page in a ZIP. Per-page output is useful when each PDF page represents a distinct data source like a monthly statement.

📍

Word Position Export

Word and Position mode outputs every text item with its x and y coordinates, giving developers the raw positional data needed to build or debug custom extraction logic.

Why This Tool Beats the Alternatives

  • No account creation, no per-page pricing, no daily conversion quota
  • No watermarks or extra rows inserted into the CSV output
  • No server upload; cloud-based tools send financial and sensitive documents to remote infrastructure even on free tiers
  • Three extraction modes versus the single undifferentiated extraction most free tools provide
  • Delimiter choice built in, not a post-download find-and-replace step
  • Live first-page preview before committing to downloading the full output

Pro Tips

  • If your extracted CSV opens in Excel with all data jammed into a single column, the delimiter mismatch is almost certainly the cause. Excel in some regional settings expects semicolons rather than commas. Re-convert using semicolon as your delimiter, or use Excel's Text Import Wizard (Data tab > Get External Data > From Text) which lets you specify the delimiter manually when opening the file.
  • For PDFs with tightly-spaced table columns where values are merging into each other, drop the column threshold to 20px tight before converting. For PDFs with loose, widely-spaced tables where separate columns are appearing as empty extra columns, increase it to 60px or 80px. The correct setting depends on the specific spacing in your source PDF, which the live preview helps you verify before downloading.
  • When you need the CSV for a Python or R data pipeline, use tab as your delimiter rather than comma. Tab-delimited files handle values that contain commas (like "Smith, John" or currency formatted as "1,500.00") without any quoting complications, producing cleaner output that pandas read_csv handles correctly with sep='\t'.

Upload your PDF, pick your extraction mode, check the preview, and download your CSV ready for Excel, Google Sheets, or direct database import. For tabular data that needs Excel-specific formatting with proper column headers and multiple worksheets, the PDF to Excel converter handles that output, and the PDF to JSON converter is the better option when the downstream system expects JSON rather than flat delimited text.

Frequently Asked Questions