Skip to content

Akshit2004/Pdfeditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PDFusion Logo

PDFusion - Modern PDF Editor

React Vite pdf-lib License

Responsive PWA Ready Zero Backend

GitHub Repo

✨ The Ultimate Modern PDF Editor for the Web ✨

Transform, edit, and enhance your PDFs with a stunning glassmorphic interface

🎯 100% Client-Side β€’ πŸš€ Lightning Fast β€’ 🎨 Beautiful UI β€’ πŸ“± Mobile Friendly


🎬 Live Demo

Experience PDFusion in action

🌐 Try PDFusion Live!

πŸ“± Fully responsive β€’ πŸš€ No installation required β€’ πŸ”’ 100% secure

Live Demo


🌟 Key Features

🌈

🌈 Glassmorphic UI
Modern translucent design with blur effects
πŸ“€

πŸ“€ Smart Upload
Drag & drop with instant preview
πŸ–ΌοΈ

πŸ–ΌοΈ Live Preview
Real-time PDF rendering
🧩

🧩 Page Reordering
Intuitive drag & drop interface
πŸ—‘οΈ

πŸ—‘οΈ Page Management
Delete unwanted pages instantly
πŸ”„

πŸ”„ Smart Rotation
90Β° rotation with preview
πŸ–ŠοΈ

πŸ–ŠοΈ Rich Annotations
Text, highlights & more
πŸͺ„

πŸͺ„ Smart Filters
Grayscale, sepia, brightness
πŸ’Ύ

πŸ’Ύ Export Options
Custom filename & formats
⚑

⚑ Lightning Fast
Optimized performance
πŸ“±

πŸ“± Mobile Ready
Touch-optimized interface
πŸ”—

πŸ”— PDF Merger
Combine multiple PDFs

πŸ› οΈ How It Works

graph TD
    A[πŸ“ Upload PDF] --> B[πŸ–ΌοΈ React PDF Rendering]
    B --> C[✏️ Edit Tools]
    C --> D[πŸ”§ PDF-lib Processing]
    D --> E[πŸ’Ύ Download Enhanced PDF]
    
    C --> F[πŸ“ Add Text]
    C --> G[🎨 Highlights]
    C --> H[πŸ”„ Rotate/Reorder]
    C --> I[🎭 Apply Filters]
Loading

πŸ—οΈ Architecture Overview

  • 🎨 Frontend: React 19 + Vite for blazing-fast development
  • πŸ“„ PDF Rendering: react-pdf for accurate, fast PDF display
  • πŸ”§ PDF Manipulation: pdf-lib for client-side PDF operations
  • πŸ’Ύ State Management: React hooks for real-time updates
  • 🎯 Zero Backend: Everything runs in your browser
  • ⚑ Performance: Optimized rendering with lazy loading

πŸš€ Quick Start

πŸ“‹ Prerequisites

  • Node.js 16+
  • npm or yarn package manager

⚑ Installation & Setup

# πŸ“₯ Clone the repository
git clone https://github.com/akshit2004/pdfeditor.git
cd pdfeditor

# πŸ“¦ Install dependencies
npm install

# πŸš€ Start development server
npm run dev

# 🌐 Open your browser
# Visit http://localhost:5173

πŸ—οΈ Build for Production

# πŸ“¦ Create optimized build
npm run build

# πŸ‘€ Preview production build
npm run preview

🐳 Docker Setup (Optional)

# Coming soon - Docker support
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "run", "preview"]

πŸ“ Project Structure

πŸ“¦ PDFusion
β”œβ”€β”€ πŸ“ public/
β”‚   β”œβ”€β”€ πŸ–ΌοΈ logo-removebg-preview.png    # App logo
β”‚   β”œβ”€β”€ βš™οΈ pdf.worker.js                 # PDF.js worker
β”‚   └── πŸ”§ service-worker.js             # PWA support
β”œβ”€β”€ πŸ“ src/
β”‚   β”œβ”€β”€ πŸ“„ App.jsx                       # Main app component
β”‚   β”œβ”€β”€ πŸ“ pages/
β”‚   β”‚   β”œβ”€β”€ πŸ“ landing page/
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏠 landing.jsx           # Landing page + PDF merger
β”‚   β”‚   β”‚   └── 🎨 landing.css           # Landing styles
β”‚   β”‚   └── πŸ“ PDF-Editor/
β”‚   β”‚       β”œβ”€β”€ ✏️ editor.jsx            # Main editor logic
β”‚   β”‚       β”œβ”€β”€ 🎨 editor.css            # Editor styling
β”‚   β”‚       β”œβ”€β”€ πŸ› οΈ EditToolbar.jsx       # Edit tools component
β”‚   β”‚       β”œβ”€β”€ 🎭 FilterToolbar.jsx     # Filter tools component
β”‚   β”‚       └── 🎯 react-pdf-overrides.css # PDF display customizations
β”‚   └── πŸ“ assets/                       # Static assets
β”œβ”€β”€ βš™οΈ package.json                      # Dependencies & scripts
β”œβ”€β”€ βš™οΈ vite.config.js                    # Vite configuration
└── πŸ“– README.md                         # You are here!

πŸ—οΈ Core Components

Component Purpose Key Features
🏠 Landing.jsx Homepage & PDF Merger Hero section, file merger, glassmorphic UI
✏️ Editor.jsx Main PDF Editor PDF rendering, editing tools, state management
πŸ› οΈ EditToolbar.jsx Editing Interface Text, highlight, reorder, erase tools
🎭 FilterToolbar.jsx Filter Effects Grayscale, sepia, brightness controls

🎨 Customization Guide

πŸ› οΈ Adding New Tools

  1. Edit Tools: Modify EditToolbar.jsx
const EDIT_TOOLS = [
  { icon: <FaYourIcon />, label: 'Your Tool', action: 'yourAction' },
  // Add your custom tool here
];
  1. Tool Logic: Update editor.jsx
const handleEditToolSelect = (tool) => {
  if (tool === 'yourAction') {
    // Implement your tool logic
  }
};

🎨 Styling Customization

Color Scheme: Update CSS variables in editor.css

:root {
  --primary-purple: #9d4edd;
  --secondary-purple: #c77dff;
  --accent-blue: #6a82fb;
  /* Customize your colors */
}

Glassmorphic Effects: Modify backdrop filters

.glass-element {
  backdrop-filter: blur(15px);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

πŸ“± Responsive Breakpoints

  • Mobile: max-width: 768px
  • Tablet: 769px - 1024px
  • Desktop: min-width: 1025px

πŸ”§ Technical Specifications

πŸ“Š Performance Metrics

  • ⚑ Bundle Size: ~2.1MB (gzipped)
  • πŸš€ First Paint: <1.2s
  • πŸ–₯️ Desktop Score: 98/100
  • β™Ώ Accessibility: AA Compliant

πŸ”’ Security & Privacy

  • πŸ›‘οΈ 100% Client-Side Processing - Your PDFs never leave your device
  • 🚫 No Server Uploads - Complete privacy protection
  • βœ… GDPR Compliant - Privacy by design

🌐 Browser Support

Browser Version Status
Chrome 90+ βœ… Full Support
Firefox 88+ βœ… Full Support
Safari 14+ βœ… Full Support
Edge 90+ βœ… Full Support
Mobile All Modern βœ… Optimized

⚠️ Known Limitations & Roadmap

🚧 Current Limitations

  • πŸ“Š Large PDFs (>50MB) may experience slower loading
  • πŸ–ΌοΈ Image-heavy PDFs require more processing time
  • πŸ“± Mobile text editing has limited precision
  • πŸ”€ Font embedding not yet supported

πŸ—ΊοΈ Upcoming Features

  • πŸ€– AI-powered text extraction
  • πŸ”— Cloud storage integration
  • πŸ“ Digital signature support
  • 🎨 Advanced annotation tools
  • πŸ“Š Batch processing
  • πŸŒ™ Dark/Light theme toggle
  • πŸ”„ Real-time collaboration
  • πŸ“§ Email sharing integration

🀝 Contributing

We welcome contributions! Here's how you can help:

πŸ› Bug Reports

  1. Check existing issues first
  2. Use the bug report template
  3. Include browser/OS information
  4. Provide steps to reproduce

✨ Feature Requests

  1. Search existing feature requests
  2. Explain the use case clearly
  3. Consider implementation complexity
  4. Provide mockups if possible

πŸ”§ Development Setup

# Fork the repository
git clone https://github.com/akshit2004/pdfeditor.git

# Create feature branch
git checkout -b feature/amazing-feature

# Make changes and test
npm run dev

# Commit with conventional commits
git commit -m "feat: add amazing feature"

# Push and create PR
git push origin feature/amazing-feature

πŸ“ Code Style

  • Use ESLint configuration
  • Follow React best practices
  • Add JSDoc comments for complex functions
  • Maintain responsive design principles

πŸ™ Credits & Acknowledgments

πŸ† Built With Amazing Libraries

react-pdf pdf-lib React Icons Vite

πŸ’– Special Thanks

  • Mozilla PDF.js Team - For the amazing PDF rendering engine
  • Hopding - For the incredible pdf-lib library
  • React Community - For the awesome ecosystem
  • You - For using and supporting this project!

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

License: MIT


πŸ“ž Support & Contact

πŸ“§ Contact

⭐ Star this project if you find it helpful!


PDFusion - Transforming the way we work with PDFs
Made with πŸ’œ using React, Vite, and a passion for beautiful user experiences

Β© 2025 PDFusion. Built with ❀️ and lots of β˜•

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published