A collection of PDF editing applications that allow users to upload, modify, and download PDF files. This repository contains three different implementations to suit different use cases.
All implementations provide the following core functionality:
- Upload PDFs: Load PDF documents via file picker or drag-and-drop
- Page Preview: View all pages as thumbnails in a responsive grid
- Remove Pages: Delete unwanted pages with multi-selection support
- Reorder Pages: Rearrange pages using drag-and-drop
- Add Pages: Insert pages from other PDF files
- Export: Download the modified PDF with all changes preserved
This repository contains three different implementations of the PDF modifier:
A modern web application built with Nuxt.js for browser-based PDF editing.
Technology Stack:
- Nuxt.js 4.x
- Vue 3 with Composition API
- TypeScript
- pdf-lib (PDF manipulation)
- pdfjs-dist (PDF rendering)
Setup:
cd pdf-modifier-web
npm install
npm run devThe application will be available at http://localhost:3000
Build for Production:
npm run build
npm run previewA cross-platform desktop application built with Electron for macOS, Windows, and Linux.
Technology Stack:
- Electron 28.x
- pdf-lib (PDF manipulation)
- pdfjs-dist (PDF rendering)
- HTML/CSS/JavaScript
Setup:
cd pdf-modifier-electron
npm install
npm run devBuild for macOS:
npm run buildThis creates a distributable .dmg and .zip file in the dist folder.
A native macOS application built with Swift and SwiftUI for optimal performance and integration.
Technology Stack:
- Swift
- SwiftUI
- PDFKit (Apple's native PDF framework)
- AppKit
Requirements:
- macOS 13.0 (Ventura) or later
- Xcode 15.0 or later
Setup:
cd pdf-modifier-macOS
open PDFModifier.xcodeprojPress ⌘R in Xcode to build and run.
Build from Command Line:
xcodebuild -project PDFModifier.xcodeproj -scheme PDFModifier -configuration Debug buildChoose the implementation that best fits your needs:
- Web App: Best for browser-based usage, no installation required
- Electron App: Best for cross-platform desktop application with consistent UI
- Native macOS App: Best for macOS users who want optimal performance and native integration
All implementations follow a similar workflow:
- Open a PDF: Click "Open PDF" or drag a PDF file into the window
- Edit Pages:
- Click on thumbnails to select pages (hold Cmd/Ctrl for multi-select)
- Drag thumbnails to reorder pages
- Click "Remove Selected" or press Delete to remove pages
- Click "Add Pages" to insert pages from another PDF
- Export: Click "Export PDF" or "Download" to save your changes
Each implementation follows best practices for its respective platform:
- Web App: Nuxt.js with Vue 3 Composition API and TypeScript
- Electron App: Main process (Node.js) + Renderer process (web technologies)
- Native macOS App: MVVM pattern with SwiftUI and PDFKit
- All PDF processing happens client-side (no server uploads)
- Input sanitization and validation
- Secure file handling
- No data persistence (privacy-focused)
Copyright © 2025. All rights reserved.
Each implementation is self-contained in its respective directory. Please refer to the individual README files for implementation-specific details.