A modern, privacy-focused PDF processing tool that runs entirely in your browser. Split and merge PDF files without uploading to any server.
- 🔒 100% Privacy: All file processing is done locally in your browser
- ✂️ PDF Splitting: Multiple split modes to meet different needs
- Split by page count
- Split into N equal parts
- Custom page ranges
- Extract each page individually
- 🔗 PDF Merging: Combine multiple PDF files into one
- Drag and drop to reorder
- Real-time preview
- Batch processing
- 🎨 Modern UI: Clean, intuitive interface with dark mode support
- 🌍 Multilingual: Support for English, Simplified Chinese, and Traditional Chinese
- ⚡ Fast & Efficient: No server uploads, instant processing
- 📱 Responsive Design: Works on desktop and mobile devices
- Node.js 18+ and npm
# Clone the repository
git clone https://github.com/yourusername/pdf-tailor.git
# Navigate to the project directory
cd pdf-tailor
# Install dependencies
npm install
# Start the development server
npm run devVisit http://localhost:5173 in your browser.
npm run buildThe built files will be in the dist directory.
- Click the Split tab
- Upload or drag a PDF file
- Choose your split mode:
- By Page Count: Split every N pages
- Split into N Parts: Divide into equal parts
- Custom Range: Specify page ranges (e.g., 1-3, 5, 8-10)
- Extract Each Page: Get individual pages
- Click Start Split
- Download individual files or all as a ZIP
- Click the Merge tab
- Upload or drag multiple PDF files
- Reorder files by dragging or using arrow buttons
- Click Merge into One PDF
- Download the merged file
- Frontend Framework: React 18
- Build Tool: Vite
- Language: TypeScript
- Styling: Tailwind CSS
- PDF Processing: pdf-lib
- PDF Rendering: pdfjs-dist
- State Management: Zustand
- Internationalization: Custom i18n implementation
- Icons: Lucide React
pdf-tailor/
├── src/
│ ├── components/ # React components
│ ├── i18n/ # Internationalization
│ ├── services/ # PDF processing services
│ ├── store/ # State management
│ ├── types/ # TypeScript types
│ ├── utils/ # Utility functions
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── public/ # Static assets
├── dist/ # Build output
└── docs/ # Documentation
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- pdf-lib - PDF manipulation
- PDF.js - PDF rendering
- Tailwind CSS - Styling framework
- Lucide Icons - Beautiful icons
If you have any questions or suggestions, please open an issue on GitHub.
Made with ❤️ for privacy-conscious users