macos-pdf-ocr
v1.0.0
Published
Ultra-fast, offline, and free PDF OCR using native macOS Vision Framework and PDFKit. Supports Vietnamese & English.
Maintainers
Readme
macOS PDF OCR (macos-pdf-ocr)
An ultra-fast, local, and 100% free PDF OCR library and CLI tool leveraging native macOS Vision Framework and PDFKit. No cloud API keys, no monthly fees, and no heavy external dependencies (like Tesseract or Python libraries) required.
Available natively for macOS users.
Features
- 100% Offline & Private: Your documents never leave your computer.
- Vibrant & Fast: Harnesses the power of Apple's Vision Framework (leveraging Apple Silicon neural engine where available).
- Native Vietnamese Support: Uses macOS native language model for Vietnamese OCR (
vi-VT) along with English (en-US). - Smart Text Sorting: Properly orders detected text from top-to-bottom and left-to-right to maintain document structure.
Installation
This package is designed to run on macOS.
npm install -g macos-pdf-ocr
# or run directly with npx
npx macos-pdf-ocr <input-pdf> <output-txt>Usage
Command Line Interface (CLI)
npx macos-pdf-ocr input.pdf output.txtNode.js API
const { ocrPDF } = require('macos-pdf-ocr');
ocrPDF('path/to/document.pdf', 'path/to/output.txt')
.then((result) => {
console.log(`Successfully saved OCR text to: ${result.outputPath}`);
console.log(result.stdout); // Print processing log
})
.catch((err) => {
console.error('OCR Error:', err.message);
});How It Works
- PDF Rendering: The tool uses Apple's native
PDFKitframework to load the PDF and draw each page on a high-resolutionCGContextscaled up by 2x for optimal character recognition. - Text Recognition: Feeds the rendered images into macOS's native
VNRecognizeTextRequestengine. - Layout Correction: Sorts bounding boxes to ensure paragraphs read naturally from top to bottom and left to right.
- Execution: Communicates with a lightweight Swift script via standard input/output using Node's
child_process.
Requirements
- macOS (10.15 Catalina or newer recommended).
- Swift (Available by default with Xcode Command Line Tools. To check if installed, run
swift --version).
License
MIT © vtit
