11 KiB
BentoPDF
BentoPDF is a powerful, privacy-first, client-side PDF toolkit that allows you to manipulate, edit, merge, and process PDF files directly in your browser. No server-side processing is required, ensuring your files remain secure and private.
✨ Why BentoPDF?
- Privacy First: All processing happens in your browser. Your files are never uploaded to a server, guaranteeing 100% privacy.
- No Limits: Manipulate as many files as you want, as often you want. There are no restrictions or upload limits.
- High Performance: Built with modern web technologies, BentoPDF is fast and efficient, handling even large PDF files with ease.
- Completely Free: BentoPDF is a free and open-source tool for everyone.
🛠️ Features / Tools Supported
BentoPDF offers a comprehensive suite of tools to handle all your PDF needs.
Organize & Manage PDFs
| Tool Name | Description |
|---|---|
| Merge PDFs | Combine multiple PDF files into one. |
| Split PDFs | Extract specific pages or divide a document into smaller files. |
| Organize Pages | Reorder, duplicate, or delete pages with a simple drag-and-drop interface. |
| Extract Pages | Save a specific range of pages as a new PDF. |
| Delete Pages | Remove unwanted pages from your document. |
| Rotate PDF | Rotate individual or all pages in a document. |
| N-Up PDF | Combine multiple pages onto a single page. |
| View PDF | A powerful, integrated PDF viewer. |
Edit & Modify PDFs
| Tool Name | Description |
|---|---|
| PDF Editor | A comprehensive editor to modify your PDFs. |
| Add Page Numbers | Easily add page numbers with customizable formatting. |
| Add Watermark | Add text or image watermarks to protect your documents. |
| Header & Footer | Add customizable headers and footers. |
| Crop PDF | Crop specific pages or the entire document. |
| Invert Colors | Invert the colors of your PDF pages for better readability. |
| Change Background | Modify the background color of your PDF. |
| Change Text Color | Change the color of text content within the PDF. |
| Fill Forms | Fill out PDF forms directly in your browser. |
| Flatten PDF | Flatten form fields and annotations into static content. |
| Remove Annotations | Remove comments, highlights, and other annotations. |
Convert to PDF
| Tool Name | Description |
|---|---|
| Image to PDF | Convert JPG, PNG, WebP, SVG, BMP, HEIC, and TIFF images to PDF. |
| Markdown to PDF | Convert .md files into professional PDF documents. |
| Text to PDF | Convert plain text files into a PDF. |
Convert from PDF
| Tool Name | Description |
|---|---|
| PDF to Image | Convert PDF pages to JPG, PNG, WebP, BMP, or TIFF formats. |
| PDF to Greyscale | Convert a color PDF into a black-and-white version. |
| OCR PDF | Make scanned PDFs searchable and copyable using Optical Character Recognition. |
Secure & Optimize PDFs
| Tool Name | Description |
|---|---|
| Compress PDF | Reduce file size while maintaining quality. |
| Repair PDF | Attempt to repair and recover data from a corrupted PDF. |
| Encrypt PDF | Add a password to protect your PDF from unauthorized access. |
| Decrypt PDF | Remove password protection from a PDF (password required). |
| Change Permissions | Set or modify user permissions for printing, copying, and editing. |
| Sign PDF | Add your digital signature to a document. |
| Redact Content | Permanently remove sensitive content from your PDFs. |
| Edit Metadata | View and modify PDF metadata (author, title, keywords, etc.). |
| Remove Metadata | Strip all metadata from your PDF for privacy. |
🚀 Getting Started
You can run BentoPDF locally for development or personal use.
Prerequisites
- Node.js (v18 or higher recommended)
- npm (or yarn/pnpm)
- Docker & Docker Compose (for containerized setup)
🚀 Quick Start with Docker
You can run BentoPDF directly from Docker Hub without cloning the repository:
docker run -p 3000:80 bentopdf/bentopdf:latest
Open your browser at: http://localhost:3000
This is the fastest way to try BentoPDF without setting up a development environment.
🚀 Run with Docker Compose (Recommended)
For a more robust setup with auto-restart capabilities:
- Download the repo and create a
docker-compose.ymlfile or use the one given in repo:
services:
bentopdf:
image: bentopdf/bentopdf:latest
container_name: bentopdf
ports:
- '3000:80'
restart: unless-stopped
- Start the application:
docker-compose up -d
The application will be available at http://localhost:3000.
🏢 Simple Mode for Internal Use
For organizations that want a clean, distraction-free interface focused solely on PDF tools, BentoPDF supports a Simple Mode that hides all branding and marketing content.
What Simple Mode does:
- Hides navigation, hero section, features, FAQ, testimonials, and footer
- Shows only the essential PDF tools
- Updates page title to "PDF Tools"
- Perfect for internal company tools and educational institutions
For more details, see SIMPLE_MODE.md.
📦 Version Management
BentoPDF supports semantic versioning with multiple Docker tags:
- Latest:
bentopdf/bentopdf:latest - Specific Version:
bentopdf/bentopdf:1.0.0 - Version with Prefix:
bentopdf/bentopdf:v1.0.0
Quick Release
# Release a patch version (0.0.1 → 0.0.2)
npm run release
# Release a minor version (0.0.1 → 0.1.0)
npm run release:minor
# Release a major version (0.0.1 → 1.0.0)
npm run release:major
For detailed release instructions, see [RELEASE.md](RELEASE.md).
### 🚀 Development Setup
#### Option 1: Run with npm
1. **Clone the Repository**:
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
-
Install Dependencies:
npm install -
Run the Development Server:
npm run devThe application will be available at
http://localhost:5173.
Option 2: Build and Run with Docker Compose
-
Clone the Repository:
git clone https://github.com/alam00000/bentopdf.git cd bentopdf -
Run with Docker Compose:
docker-compose -f docker-compose.dev.yml up -dThe application will be available at
http://localhost:3000.Note: After making any local changes to the code, rebuild the Docker image using:
docker-compose -f docker-compose.dev.yml up --build -dThis ensures your latest changes are applied inside the container.
🛠️ Tech Stack & Background
BentoPDF was originally built using HTML, CSS, and vanilla JavaScript. As the project grew, it was migrated to a modern stack for better maintainability and scalability:
- Vite: A fast build tool for modern web development.
- TypeScript: For type safety and an improved developer experience.
- Tailwind CSS: For rapid and consistent UI development.
Note: Some parts of the codebase still use legacy structures from the original implementation. Contributors should expect gradual updates as testing and refactoring continue.
🗺️ Roadmap
Planned Features:
- HTML to PDF: Convert HTML files or web pages into PDF documents.
- Markdown to PDF: Enhanced support for converting
.mdfiles to PDF. - Sanitize PDF: Remove potentially malicious content like scripts from PDFs.
- Convert to PDF/A: Convert PDFs to the PDF/A archival format.
- Edit PDF Content: Directly edit text and other content within your PDF.
- Linearize PDF: Optimize PDFs for fast web viewing.
- PDF to Office: Converts PDF files into editable Word, Excel, and PowerPoint formats.
- Office to PDF: Converts Word, Excel, and PowerPoint documents into optimized PDFs.
Contributions and discussions on the roadmap are welcome! Join the conversation via Discord.
🤝 Contributing
We welcome contributions from the community! Here's how you can get started:
- Fork the repository and create your branch from
main. - Follow the Getting Started steps to set up your local environment.
- Make your changes and commit them with a clear message.
- Open a Pull Request and describe the changes you've made.
Have an idea for a new tool or an improvement? Open an issue to discuss it first.
Special Thanks
BentoPDF wouldn't be possible without the amazing open-source tools and libraries that power it. We'd like to extend our heartfelt thanks to the creators and maintainers of:
- PDFLib.js – For enabling powerful client-side PDF manipulation.
- PDF.js – For the robust PDF rendering engine in the browser.
- PDFKit – For creating and editing PDFs with ease.
- EmbedPDF – For seamless PDF embedding in web pages.
- Cropper.js – For intuitive image cropping functionality.
- Vite – For lightning-fast development and build tooling.
- Tailwind CSS – For rapid, flexible, and beautiful UI styling.
Your work inspires and empowers developers everywhere. Thank you for making open-source amazing!
📜 License
This project is licensed under the Apache 2.0. See the LICENSE file for details.