Skip to content
ignitai Get the app
← Back to blog · · 4 min read

How to convert PDF to CSV on Mac with AI (2026 guide)

A step-by-step guide to converting PDFs, scans, and images to CSV on your Mac using on-device AI — no templates, no Python scripts, no uploading your data to a web tool.

guides pdf-to-csv mac

If you’ve tried to get a CSV out of a PDF on a Mac lately, you already know the options fall into three unsatisfying piles.

Preview copy-pastes tables into mangled columns. Free web tools want you to upload financial data you’d rather not email to a stranger. And writing a quick Python script with pdfplumber works great right up until the PDF is actually a scan, the columns aren’t straight, or someone wrote notes in the margin.

This guide walks through a workflow that handles all three: native to macOS, AI-powered, and — on modern macOS versions — running entirely on your device.

The shape of the problem

The reason converting PDF to CSV is harder than it looks is that “PDF” is not one format. It’s at least four:

  1. Text-based PDFs with clean tables — exported from Excel, Numbers, or a reporting tool. Easy case. Most tools handle it.
  2. Text-based PDFs with messy layouts — invoices, bank statements with headers, footers, multi-column layouts, merged cells. Hard case.
  3. Scanned PDFs (image of a document wrapped in PDF chrome). Needs OCR before anything else works.
  4. Photos of paper documents saved as PDF. Same as case 3 but usually warped, rotated, and poorly lit.

Most tools fail on categories 2–4. The trick is treating extraction as a language task, not a layout task — ask a model to find the data, don’t try to reverse-engineer coordinates.

Method 1: ignitai (the one-tap way)

ignitai is a Mac app built for exactly this workflow. It uses on-device AI on macOS 14.4+ to turn any of the four PDF types above into a CSV, XLSX, or Numbers file. You describe what you want extracted in plain English, and it returns it.

Here’s the full flow:

  1. Open ignitai on your Mac and drag in a PDF, stack of PDFs, or folder.
  2. Describe what to extract. Examples that work out of the box:
    • “Pull out date, merchant, amount, and tax for each receipt.”
    • “For each line item, give me description, quantity, unit price, and line total.”
    • “Return date, description, debit, credit, and running balance for every transaction.”
  3. Pick a format. CSV, XLSX, or Numbers.
  4. Export. If you’re converting a batch, ignitai merges rows across all files with a source_file column so you can trace every row back to its PDF.

The whole thing takes about as long as the PDF does to open. On macOS 14.4+ with the on-device pipeline, your financial documents never leave your Mac.

Method 2: Preview + manual cleanup (for one-off, clean tables)

If you have exactly one PDF, it’s text-based, and the table is simple, you can often:

  1. Open the PDF in Preview.
  2. Select the table with the text cursor (not the selection rectangle).
  3. Copy and paste into Numbers or Excel.
  4. Use “Text to Columns” to fix the column boundaries.

This fails the moment the table has merged cells, multi-line rows, or any OCR is needed. Don’t bother for more than a single page.

Method 3: Command-line tools (for developers)

On a clean text-PDF, pdftotext from Poppler works:

brew install poppler
pdftotext -layout input.pdf output.txt

From there you’re writing Python with pdfplumber or camelot-py to turn output.txt into CSV. This is a good path if you have hundreds of identically-structured PDFs and you want to automate via cron. It’s the wrong path if your PDFs vary (different banks, different invoice templates, different scan quality).

Method 4: Web tools (and why you probably shouldn’t)

Tools like Smallpdf, iLovePDF, and ILovePDF-clones will take your PDF and give you back a CSV. They work. The problems:

  • You’re uploading the document. For receipts and random tables, fine. For your bank statements, less fine.
  • Free tiers rate-limit you after 2–3 files per day.
  • Batch mode usually requires a paid subscription — at which point you’re paying for web-tool convenience with no local integration.

If the document is public or synthetic, they’re fine. Otherwise, a native app that runs on-device is the better trade.

Making the output actually useful in Numbers or Excel

Three details that separate “I got a CSV” from “I can use the CSV”:

  1. Pick your delimiter based on your locale. Numbers in the US expects comma-delimited. Numbers in Europe often expects semicolon-delimited so that European decimal commas don’t get confused with column separators. ignitai handles this per-locale; if you’re rolling your own pipeline, remember to set it.
  2. Keep raw values, not formatted ones. “USD 1,234.50” is a string. “1234.50” is a number. You want the latter in your spreadsheet, then format it for display in Numbers.
  3. Keep provenance. Whatever tool you use, always include a column like source_file or source_page so that in three months when a number looks weird you can trace it back to the original PDF.

When to reach for batch mode

If you’re converting more than ~5 PDFs that share a structure (a year of monthly statements, a quarter of expense receipts, vendor invoices from the same supplier), batch mode is the whole game. You define the extraction prompt once, point the tool at the folder, and go make coffee. Everything lands in one spreadsheet, ready for pivot tables, VLOOKUPs, or your accountant.

This is where web tools fall down hardest — most of them are built for one file at a time.

Bottom line

For one PDF with a clean table: Preview + copy/paste. For many identical PDFs: pdftotext + Python if you enjoy writing it. For everything else — messy layouts, scans, receipts, batches, anything you don’t want to upload — a native Mac app with on-device AI extraction is the shortest path from “stack of documents” to “usable spreadsheet.”