An open API service indexing awesome lists of open source software.

https://github.com/vrajvyas11/pdf-manipulator

A comprehensive PDF tool that allows you to effortlessly edit, merge, split, compress, and convert PDFs. It supports adding pages, extracting images, and viewing PDFs directly within the app. With a user-friendly drag-and-drop interface, it’s fully responsive across all devices, streamlining document management for everyone.
https://github.com/vrajvyas11/pdf-manipulator

add-page image-to-pdf pdf pdf-compressor pdf-document-processor pdf-download pdf-editor pdf-image-extractor pdf-manipulation pdf-merger pdf-viewer split-pdf

Last synced: 3 months ago
JSON representation

A comprehensive PDF tool that allows you to effortlessly edit, merge, split, compress, and convert PDFs. It supports adding pages, extracting images, and viewing PDFs directly within the app. With a user-friendly drag-and-drop interface, it’s fully responsive across all devices, streamlining document management for everyone.

Awesome Lists containing this project

README

        

# **PDF Manipulator**

**A feature-rich PDF management tool for seamless editing, merging, splitting, compression, and more!**

**πŸš€ Fast Live Demo on Vercel.com:** [Explore the App](https://pdf-manipulator-vrajvyas11s-projects.vercel.app/)

**πŸš€ Contingency Live Demo on ONRender.com:** [Explore the App](https://next-js-pdf-manipulator.onrender.com/)

---

## **Overview**

PDF Manipulator is a web-based tool designed for effortless PDF management. From editing to merging, compressing, splitting, and even extracting images from PDF files, this app combines efficiency with simplicity. With its **fully responsive design**, user-friendly drag-and-drop interface, and modern aesthetics, this app caters to the needs of professionals, students, and anyone who frequently works with PDFs.

---

## **Features**

- πŸ–ŠοΈ **Edit PDFs**: Modify content, pages, or annotations seamlessly. Fully responsive for all devices.
- πŸ“‚ **Merge PDFs**: Combine multiple files into a single document effortlessly. Fully responsive for all devices.
- βœ‚οΈ **Split PDFs**: Divide a single PDF into multiple smaller files for better organization. Fully responsive for all devices.
- πŸ–ΌοΈ **Image to PDF**: Convert images (JPG, PNG, etc.) into high-quality PDFs. Fully responsive for all devices.
- πŸ“‰ **Compress PDFs**: Reduce file size without compromising quality. Fully responsive for all devices.
- βž• **Add Pages**: Insert extra pages into existing PDFs easily. Fully responsive for all devices.
- πŸ“Έ **Extract Images**: Save embedded images from PDFs locally. Fully responsive for all devices.
- πŸ‘€ **View PDFs**: Preview and navigate PDFs directly within the app. Fully responsive for all devices.
- πŸ“€ **Drag-and-Drop**: Upload files with a user-friendly drag-and-drop interface. Fully responsive for all devices.
- πŸ”„ **Page Preview**: Rearrange and organize pages before saving changes. Fully responsive for all devices.

---

## **Tech Stack**

### **Frontend**
- **Next.js**: A powerful framework for building server-side rendered React applications.
- **Tailwind CSS**: A utility-first CSS framework for designing responsive and aesthetically pleasing interfaces for all devices.
- **React**: The core library for building the user interface.
- **React DOM**: For rendering React components in the DOM.

### **PDF Handling**
- **pdf-lib**: To create, modify, and manipulate PDFs.
- **pdfjs-dist**: For parsing and rendering PDF documents.
- **jspdf**: For generating PDFs dynamically in the browser.

### **UI Components**
- **Jodit React**: For integrating a WYSIWYG editor.
- **React Quill**: For rich-text editing functionality.
- **Quill Image Resize Module**: To enable image resizing within the editor.
- **Quill Blot Formatter**: For handling custom formatting in the editor.

---

## **Images**

| **Feature** | **Preview** |
|------------------------------------|---------------------------------------------------------------------------------------------|
| 🌐 **Landing Page** | ![Landing Page](./livedemoimages/1.png) - Fully responsive and visually appealing home screen. |
| πŸ“‹ **Feature Overview** | ![Feature Overview](./livedemoimages/2.png) - Displays all the available tools and features, optimized for all devices.|
| πŸ“‚ **Merge PDFs** | ![Merge PDFs](./livedemoimages/3.png) - Interface for combining multiple PDF files, fully responsive. |
| βœ‚οΈ **Split PDFs** | ![Split PDFs](./livedemoimages/14.png) - Divide a single PDF into multiple smaller files. |
| πŸ–ŠοΈ **PDF Editor (Worker-Based)** | ![Worker-Based Editor](./livedemoimages/4.png) ![Worker-Based Editor](./livedemoimages/5.png) - Modify PDFs using a worker-based editor, accessible on all devices. |
| βš™οΈ **PDF Editor (Backend-Based)** | ![Backend Editor](./livedemoimages/6.png) ![Backend Editor](./livedemoimages/7.png) - Modify PDFs using a backend-powered editor, responsive across devices. |
| πŸ–ΌοΈ **Image to PDF Conversion** | ![Image to PDF](./livedemoimages/8.png) - Convert images into high-quality PDF documents, designed to work smoothly on all devices. |
| βž• **Add Pages to PDFs** | ![Add Pages](./livedemoimages/9.png) ![Add Pages](./livedemoimages/10.png) ![Extract Images](./livedemoimages/11.png) - Add extra pages to existing PDFs with ease, responsive UI. |
| πŸ“Έ **Extract Images from PDFs** | ![Extract Images](./livedemoimages/12.png) - Extract embedded images from a PDF file, responsive design for mobile and desktop. |
| πŸ“‰ **Compress PDFs** | ![Compress PDF](./livedemoimages/13.png) - Reduce PDF file size without losing quality, optimized for all devices. |

---

## **Setup and Installation**

Follow these steps to set up and run the project locally:

1. **Clone the Repository**
```bash
git clone https://github.com/VrajVyas11/PDF-Manipulator.git
```

2. **Navigate to the Project Directory**
```bash
cd PDF-Manipulator
```

3. **Install Dependencies**
```bash
npm install
```

4. **Start the Development Server**
```bash
npm run dev
```

5. **Access the App**
Open your browser and visit:
[http://localhost:3000](http://localhost:3000)

---

## **Contributing**

Contributions are welcome! Follow these steps to contribute:

1. **Fork the Repository**
Click the "Fork" button in the top-right corner of the GitHub page.

2. **Clone the Forked Repository**
```bash
git clone https://github.com/VrajVyas11/PDF-Manipulator.git
```

3. **Create a New Branch**
```bash
git checkout -b feature/your-feature-name
```

4. **Make Your Changes**
Implement the desired features or fixes.

5. **Push Changes to Your Branch**
```bash
git push origin feature/your-feature-name
```

6. **Submit a Pull Request**
Create a pull request from your branch to the `main` branch of the original repository.

---

## **Roadmap**

Planned improvements for future releases:

- **Encrypted PDFs**: Add support for opening and editing password-protected PDFs.
- **Light Mode**: Enhanced UI experience with Light mode support.

---

## License

This project is for learning purposes only and is released under the MIT License. See the [`LICENSE`](./Licence) file for details.

---

## **Acknowledgements**

- [pdf-lib](https://pdf-lib.js.org/) for advanced PDF editing.
- [pdf-dist](https://pdf.js.org/) for handling PDF rendering and processing.