MCPcopy
hub / github.com/alam00000/bentopdf

github.com/alam00000/bentopdf @v2.8.6 sqlite

repository ↗ · DeepWiki ↗ · release v2.8.6 ↗
17,033 symbols 59,578 edges 453 files 31 documented · 0%
README

BentoPDF

DigitalOcean Referral Badge

BentoPDF is a powerful, privacy-first, client-side PDF toolkit that is self hostable and 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.

Docker Downloads Ko-fi GitHub Stars Sponsor me on GitHub

BentoPDF Tools


Table of Contents


📢 Join Us on Discord

Discord

Have questions, feature requests, or want to chat with the community? Join our Discord server!


📚 Documentation

Documentation

Visit our Documentation for:

  • Getting Started guide
  • Tools Reference (50+ tools)
  • Self-Hosting guides (Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache)
  • Contributing guide
  • Commercial License details

📜 Licensing

BentoPDF is dual-licensed to fit your needs:

License Best For Price
AGPL-3.0 Open-source projects with public source code Free
Commercial Proprietary / closed-source applications $79 (lifetime)

Get Commercial License

One-time purchase · Unlimited devices & users · Lifetime updates · No AGPL obligations

📖 For more details, see our Licensing Page

AGPL Components (Pre-configured via CDN)

BentoPDF does not bundle AGPL-licensed processing libraries in its source code, but pre-configures CDN URLs so all features work out of the box with zero setup:

Component License Features Enabled
PyMuPDF AGPL-3.0 PDF to Text/Markdown/SVG/DOCX, Extract Images/Tables, EPUB/MOBI/XPS conversion, Compression, Deskew
Ghostscript AGPL-3.0 PDF/A Conversion, Font to Outline
CoherentPDF (CPDF) AGPL-3.0 Merge, Split by Bookmarks, Table of Contents, PDF to/from JSON, Attachments

[!TIP] Zero-config by default. WASM modules are loaded at runtime from jsDelivr CDN. No manual configuration is needed. For custom deployments (air-gapped, self-hosted), see WASM Configuration below.


⭐ Stargazers over time

Star History Chart


💖 Thank You to Our Sponsors

We're incredibly grateful to all our sponsors and supporters who help keep BentoPDF free and open source!

Sponsor me on GitHub Buy me a Coffee


✨ 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. Preserves Bookmarks.
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.
Rotate by Custom Degrees Rotate pages by any custom angle.
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. Preserves Bookmarks.
Posterize PDF Split a PDF into multiple smaller pages for print.
PDF Multi Tool Merge, Split, Organize, Delete, Rotate, Add Blank Pages, Extract and Duplicate in an unified interface.
PDF Booklet Rearrange pages for double-sided booklet printing. Fold and staple to create a booklet.
Add Attachments Embed one or more files into your PDF.
Extract Attachments Extract all embedded files from PDF(s) as a ZIP.
Edit Attachments View or remove attachments in your PDF.
Divide Pages Divide pages horizontally or vertically.
Combine to Single Page Stitch all pages into one continuous scroll.
Add Blank Page Insert an empty page anywhere in your PDF.
Reverse Pages Flip the order of all pages in your document.
View Metadata Inspect the hidden properties of your PDF.
PDFs to ZIP Package multiple PDF files into a ZIP archive.
Compare PDFs Compare two PDFs side by side.

Edit & Modify PDFs

Tool Name Description
PDF Editor Annotate, highlight, redact, comment, add shapes/images, search, and view PDFs.
Create Fillable Forms Create professional fillable PDF forms with text fields, checkboxes, dropdowns, radio buttons, signatures, and more. Fully compliant with PDF standards for compatibility with all PDF viewers.
PDF Form Filler Fill in forms directly in the browser. Also supports XFA forms.
Add Page Numbers Easily add page numbers with customizable formatting.
Bates Numbering Add sequential Bates numbers across one or more PDF files.
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.
Deskew PDF Automatically straighten tilted scanned pages using OpenCV.
Font to Outline Convert all fonts to vector outlines for consistent rendering across all devices.
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.
Flatten PDF Flatten form fields and annotations into static content.

Extension points exported contracts — how you extend this code

FileInputNode (Interface)
(no doc) [21 implementers]
src/js/logic/pdf-workflow-page.ts
AddAttachmentsMessage (Interface)
(no doc)
public/workers/add-attachments.worker.d.ts
ImportMetaEnv (Interface)
(no doc)
src/types/globals.d.ts
MockMsgData (Interface)
(no doc)
src/tests/email-to-pdf.test.ts
PageTask (Interface)
* Page rendering task
src/js/utils/render-utils.ts
AddAttachmentsSuccessResponse (Interface)
(no doc)
public/workers/add-attachments.worker.d.ts
ImportMeta (Interface)
(no doc)
src/types/globals.d.ts
MockLoadingTask (Interface)
(no doc)
src/tests/password-prompt.test.ts

Core symbols most depended-on inside this repo

createElement
called by 2150
public/pdfjs-viewer/pdf.mjs
e
called by 1864
public/pdfjs-annotation-viewer/web/pdfjs-annotation-extension/pdfjs-annotation-extension.js
addEventListener
called by 1845
public/pdfjs-viewer/pdf.mjs
get
called by 1298
src/js/types/utils-types.ts
assign
called by 974
public/pdfjs-viewer/pdf.worker.mjs
add
called by 924
public/pdfjs-viewer/pdf.worker.mjs
set
called by 859
src/js/types/utils-types.ts
remove
called by 830
public/pdfjs-viewer/pdf.mjs

Shape

Method 7,981
Function 6,693
Class 2,087
Interface 271
Enum 1

Languages

TypeScript100%

Modules by API surface

public/pdfjs-viewer/pdf.worker.mjs3,945 symbols
public/pdfjs-annotation-viewer/web/pdfjs-annotation-extension/pdfjs-annotation-extension.js3,180 symbols
public/pdfjs-viewer/pdf.mjs2,174 symbols
public/coherentpdf.browser.min.js1,482 symbols
public/pdfjs-viewer/viewer.mjs1,129 symbols
public/pdfjs-annotation-viewer/web/viewer.mjs954 symbols
public/pdfjs-viewer/pdf_viewer.mjs588 symbols
public/libreoffice-wasm/soffice.js543 symbols
public/pdfjs-viewer/wasm/openjpeg_nowasm_fallback.js287 symbols
public/libreoffice-wasm/browser.worker.global.js235 symbols
src/js/types/utils-types.ts73 symbols
public/pdfjs-viewer/pdf.sandbox.mjs44 symbols

Dependencies from manifests, versioned

@eslint/js10.0.1 · 1×
@fontsource/cedarville-cursive5.2.7 · 1×
@fontsource/dancing-script5.2.8 · 1×
@fontsource/dm-sans5.2.8 · 1×
@fontsource/great-vibes5.2.8 · 1×
@fontsource/kalam5.2.8 · 1×
@fontsource/lato5.2.7 · 1×
@fontsource/merriweather5.2.11 · 1×
@kenjiuno/msgreader1.28.0 · 1×
@matbee/libreoffice-converter2.5.0 · 1×
@neslinesli93/qpdf-wasm0.3.0 · 1×
@pdf-lib/fontkit1.1.1 · 1×

For agents

$ claude mcp add bentopdf \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact