| Tool | Description |
|---|---|
| ✂️ Split PDF | Extract pages with custom ranges, batch split, or by chapters |
| 🔗 Merge PDFs | Combine multiple PDFs with drag & drop reordering |
| 🖼️ Convert to Images | Export pages as JPG/PNG with quality control |
| 💬 Annotate | Text, highlight, freehand pen, shapes & arrows; undo/redo; saved as PDF vectors |
| 📝 Extract Text | Pull text content with copy/download options |
| 🔄 Rotate Pages | Rotate individual or all pages |
| 📋 Reorder Pages | Drag & drop page rearrangement |
| 🎨 Add Background | Apply colored backgrounds with opacity |
| 📷 Images to PDF | Convert JPG/PNG/GIF/WEBP to PDF |
| 🖨️ Scannify | Make a clean PDF look like a real scanned document |
| 📄 To Markdown | Convert PDF text to Markdown with heading detection |
| 🗜️ Compress | Shrink file size with a live before/after size estimate |
| 🔤 OCR | Recognize text in scanned PDFs; output text or a searchable PDF |
| 🔒 Protect | Password-protect (encrypt) a PDF, entirely in your browser |
| 🔓 Unlock | Remove the password from a protected PDF (with the correct password) |
| 🗑️ Delete Pages | Select and remove pages from a PDF |
| 💧 Watermark | Stamp a diagonal text watermark across every page |
| 🔢 Page Numbers | Add page numbers with position, format & start options |
- 100% Client-Side — All processing happens in your browser
- No Uploads — Your files never leave your device
- No Registration — Jump in and start editing immediately
- Encrypted PDF Support — Works with password-protected PDFs
# Clone the repository
git clone https://github.com/MohammedTsmu/PDFNinjaPro.git
# Navigate to the project
cd PDFNinjaPro
# Open in browser (no build required!)
start index.html # Windows - Opens landing page
open index.html # macOS
xdg-open index.html # Linux
# Or open the app directly
start app.html # Windows - Opens PDF toolsOr simply visit the Live Demo →
- PDF.js — PDF rendering
- PDF-Lib — PDF manipulation
- Sortable.js — Drag & drop
- JSZip — ZIP creation
- FileSaver.js — File downloads
- Tesseract.js — In-browser OCR
- @cantoo/pdf-lib — PDF encryption
- Font Awesome — Icons
- Modern glassmorphism UI
- Dark theme by default
- Fully responsive (mobile-friendly)
- Smooth animations & transitions
- Collapsible sidebar navigation
- SEO optimized landing page
PDFNinjaPro/
├── index.html # SEO landing page (homepage)
├── app.html # Main PDF tools application
├── landing.css # Landing page styles
├── styles.css # App styles
└── js/
├── ui.js # Toasts, loader, drag-drop routing, cross-tool carry
├── main.js # Core logic
├── split.js # Split tool
├── merge.js # Merge tool
├── convert.js # Image converter
├── comment.js # Annotations
├── extract.js # Text extraction
├── rotate.js # Rotation
├── reorder.js # Page reorder
├── background.js # Backgrounds
├── images-to-pdf.js # IMG to PDF
├── scan.js # Scannify (scanned-look PDF)
├── markdown.js # PDF to Markdown
├── compress.js # Compress (re-encode pages)
├── ocr.js # OCR (Tesseract.js)
└── password.js # Password protect (@cantoo/pdf-lib)
The landing page includes:
- Comprehensive meta tags (title, description, keywords)
- Open Graph tags for social sharing
- Twitter Card support
- JSON-LD structured data for rich search results
- Semantic HTML5 structure
- FAQ section for featured snippets
- Fork the repository
- Create a feature branch:
git checkout -b feature/NewFeature - Commit changes:
git commit -m 'Add NewFeature' - Push to branch:
git push origin feature/NewFeature - Open a Pull Request
This project is licensed under the MIT License — see LICENSE for details.
Made with ❤️ by Mohammed Q. Sattar
⭐ Star this repo if you find it useful!

