Skip to content

pharmacist-sabot/pdf-splitter

Repository files navigation

PDF Splitter

A fast, beautiful cross-platform desktop app that splits any multi-page PDF into individual page files — built with Tauri 2 and Vue 3.

Rust Tauri Vue TypeScript License Platform


Overview

PDF Splitter is a cross-platform (macOS and Windows) desktop application that takes any multi-page PDF document and extracts every page into its own individual PDF file.

The app is built on a native Tauri 2 shell with a Vue 3 + TypeScript renderer, providing:

  • Native performance — a lean Rust binary with zero Electron overhead.
  • Parallel page processing — automatically scales to all available CPU cores for fast extraction.
  • Beautiful, native-feel UI — glassmorphism design, dark-mode support, and smooth animations.
  • Drag & drop — drop a PDF straight onto the window to quickly begin splitting.
  • 100% Fidelity — guarantees perfect quality for fonts, images, and embedded resources.

Getting Started

Prerequisites

  • Rust + Cargo (≥ 1.80)
  • Node.js (≥ 18)
  • macOS: Xcode Command Line Tools (xcode-select --install)
  • Windows: Build Tools for Visual Studio (C++ build tools)

Development

# 1. Clone the repository
git clone https://github.com/pharmacist-sabot/pdf-splitter.git
cd pdf-splitter

# 2. Install frontend dependencies
npm install

# 3. Start the development server (hot-reload for UI + Rust)
npm run tauri dev

Production Build

macOS

# Build the optimized binary + macOS app bundle + DMG installer
npm run tauri build

The output artifacts (macOS .app bundle and .dmg installer) will be generated in the src-tauri/target/release/bundle/ directory.

Windows

You can build the app locally on Windows using the same command:

npm run tauri build

The output artifacts (.msi or .exe installer) will be generated in the src-tauri/target/release/bundle/ directory.

Note: There is also an automated GitHub Actions workflow (build-windows.yml) that automatically builds and releases the Windows installer (.msi/.exe) whenever a new v* tag is pushed to the repository.


Tech Stack

  • Backend: Rust, Tauri 2, lopdf (for PDF processing), rayon (for parallel processing).
  • Frontend: Vue 3 (Composition API), TypeScript, Vite.

License

This project is open source and available under the MIT License.

About

A fast, beautiful cross-platform desktop app that splits any multi-page PDF into individual page files

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors