BASALT · JOURNAL
How to batch OCR PDFs on a Mac without uploading them
Batch OCR is not simply “run recognition on every file.” A useful result keeps pages in order, preserves the original image, adds accurate invisible text, and records which pages failed or need review—all without sending sensitive scans to a service you did not approve.
Prepare the batch
Work from copies and create a manifest with source filename, page count, language, expected orientation, and output name. Separate already-searchable PDFs from image-only scans so you do not add a second competing text layer.
Deskew or rotate pages before recognition. OCR engines perform poorly when text is sideways, heavily skewed, low contrast, or below a practical reading resolution. Split batches by language when the engine needs an explicit language choice.
Keep image and text aligned
OCR should add invisible text at the coordinates of the visible words, leaving the scan itself unchanged. Spot-check small type, tables, dates, and account numbers. Search for known control phrases on the first, middle, and last pages of each document.
Do not assume a successful job means accurate text. Record low-confidence or blank pages for review, and compare the output page count and dimensions with the source.
Protect sensitive scans
Local OCR avoids uploading the original pages. After OCR, inspect metadata and output filenames, and remember that the new text layer makes every recognized word easier to extract. Apply any required redactions to both the pixels and OCR text before sharing.
For very large files, process incrementally and expose progress and cancellation rather than loading an entire batch into memory. Why PDF apps run out of memory explains the failure mode.
Frequently asked questions
Should I OCR a PDF that already has text?
Usually not without inspection. A second text layer can create duplicate search results and misalignment. OCR only image-only or demonstrably incomplete pages.
Does OCR change the scanned image?
It should not need to. A searchable PDF normally keeps the page image and adds positioned invisible text.
Can batch OCR run offline on a Mac?
Yes. Native and desktop OCR engines can recognize pages locally without uploading the documents.
Doing it in Basalt
Basalt runs OCR locally through macOS Vision, keeps page images intact, reports progress, supports cancellation, and writes a searchable text layer. The engine has no network entitlement, and later redactions remove both pixels and OCR text. Download Basalt.
Redaction that proves itself
Basalt destroys the content you mark, then re-opens the file it wrote and proves the content is gone before it saves anything. Your documents never leave your Mac.