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: 8 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!**

[![Koyeb Demo](https://img.shields.io/badge/Koyeb-Live%20Demo-brightgreen?style=for-the-badge&logo=koyeb)](https://adjacent-filia-vrajvyas-6f3d840f.koyeb.app/) [![OnRender Demo](https://img.shields.io/badge/OnRender-Backup%20Demo-orange?style=for-the-badge&logo=render)](https://pdf-manipulator-gdqt.onrender.com/)

---

## ✨ **Overview**

PDF Manipulator is a web-based tool designed for effortless PDF management. From editing to merging, compressing, splitting, converting Word files to PDFs, 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 and Word documents.

## **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.
- πŸ“„ **Word File TO PDFs**: Effortlessly convert your Word Doc/Docx files into PDF documents. 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. |
| πŸ“„ **Word File TO PDFs** | ![Compress PDF](./livedemoimages/15.png) - Effortlessly convert your Word Doc/Docx files into PDF. |

---

## **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.