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.
β Stargazers over time
β¨ 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. |
Alternate & Mix pages | Merge pages by alternating pages from each PDF. |
Posterize PDF | Split a PDF into multiple smaller pages for print. |
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. |
Remove Blank Pages | Auto detect and remove blank pages in a PDF. |
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. |
Linearize PDF | Optimize PDF for fast web view. |
Sanitize PDF | Remove potentially unwanted or malicous files from PDF. |
π 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.yml
file 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.
π Development Setup
Option 1: Run with npm
-
Clone the Repository:
git clone https://github.com/alam00000/bentopdf.git cd bentopdf
-
Install Dependencies:
npm install
-
Run the Development Server:
npm run dev
The 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 -d
The 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 -d
This 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
.md
files to PDF. - Convert to PDF/A: Convert PDFs to the PDF/A archival format.
- Edit PDF Content: Directly edit text and other content within your PDF.
- 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 editing in pure JS.
- Cropper.js β For intuitive image cropping functionality.
- Vite β For lightning-fast development and build tooling.
- Tailwind CSS β For rapid, flexible, and beautiful UI styling.
- qpdf and qpdf-wasmβ A powerful command-line tool and library for inspecting, repairing, and transforming PDF file ported to wasm
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.