Skip to content

Tattooed-Geek/SecurePDF-splitter

Repository files navigation

SecurePDF Splitter

SecurePDF Splitter is a high-performance, privacy-first web application designed to split large PDF documents directly in your browser. Unlike traditional tools that require uploading files to a server, this application processes everything locally on your device using WebAssembly and JavaScript, ensuring your sensitive documents never leave your computer.

🚀 Key Features

🔒 100% Client-Side Privacy

  • No Server Uploads: All PDF manipulation happens in your browser memory.
  • Secure: Perfect for legal, financial, or personal documents.
  • Offline Capable: Works without an active internet connection after initial load.

⚡ Smart Device Optimization

The app uses advanced heuristics to detect your device's capabilities and adjust performance limits accordingly:

  • High-Performance Mode (500MB Limit): Automatically enabled for Macs, Windows Desktops, and M-Series iPads (M1/M2/M4).
  • Pro Mobile Mode (300MB Limit): Specifically detects modern iPhones (iPhone 15 Pro, 16 Pro, 17 Pro) using screen geometry and OS version heuristics.
  • Standard Mode (200MB Limit): Safe default for standard mobile devices and older tablets to prevent browser crashes.

📄 Intelligent Splitting Modes

  1. Split by Pages:
    • Divide documents into chunks of N pages.
    • Smart Default: Automatically suggests 10% of the total page count.
  2. Split by File Count:
    • Split a document into X equal files.
    • Smart Default: Calculates logical breakpoints (approx. 1 file per 100 pages).
  3. Split by Size:
    • Dynamic algorithm that calculates page sizes individually to ensure resulting files stay under a specific MB limit (e.g., "Under 10MB").

🛠 Technical Stack

  • React 18: UI and State Management.
  • TailwindCSS: Modern, responsive styling.
  • pdf-lib: Pure JavaScript PDF manipulation library.
  • JSZip: Client-side ZIP creation for downloading multiple files at once.
  • ES Modules: No build step required; uses browser-native modules via esm.sh.

🏃‍♂️ How to Run

Since this project uses ES Modules directly in the browser, it requires a simple static server to avoid CORS issues with local file access (file:// protocol).

  1. Clone or Download the repository.
  2. Start a local server in the directory:
    • VS Code: Use "Live Server" extension.
    • Python: python3 -m http.server 8000
    • Node: npx serve .
  3. Open http://localhost:8000 in your browser.

📱 Compatibility

  • Desktop: Chrome, Edge, Firefox, Safari (macOS).
  • Mobile: Safari (iOS 17+ recommended for high-performance mode), Chrome (Android).

Note: This application is purely client-side and does not use any external APIs or backend services for PDF processing.

About

100% secure on-device pdf splitter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors