A privacy-first PDF toolkit for the browser and desktop. Most tools run 100% client-side β your files stay on your device. Website URL to PDF uses local headless-browser rendering (same approach as major online converters).
- β Client-Side PDF Tools - Merge, split, compress, OCR, and more run in your browser
- β Website to PDF - Public URLs rendered with headless Chrome (local server / desktop app)
- β 18+ PDF Tools - Convert, merge, split, compress, watermark, and more
- β Intuitive UI - Modern, responsive design for desktop and mobile
- β Real-Time Preview - See changes instantly as you edit
- β No Installation Required - Works directly in your browser
- β Open Source - Full transparency, community-driven
| Tool | Description |
|---|---|
| Merge PDF | Combine multiple PDFs into one |
| Split PDF | Extract specific pages from a PDF |
| Compress PDF | Reduce file size while maintaining quality |
| Protect PDF | Add password protection to PDFs |
| Unlock PDF | Remove password protection |
| Rotate PDF | Rotate pages 90Β°, 180Β°, or 270Β° |
| Add Page Numbers | Insert page numbers with custom styling |
| Watermark PDF | Add text or image watermarks |
| Stamp PDF | Apply stamps to specific pages |
| Draw / Highlight PDF | Draw freehand strokes or highlight text and annotations |
| OCR PDF | Extract text from scanned documents |
| PDF to JPG | Convert pages to high-quality images |
| JPG to PDF | Create PDFs from image files |
| PDF to Word | Extract content to Word documents |
| Website / HTML to PDF | Convert public webpages or local HTML into a downloadable PDF |
| Organize PDF | Reorder, delete, or duplicate pages |
All processing happens locally in your browser. Here's the complete data flow:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β YOUR BROWSER (CLIENT) β
β β
β ββββββββββββββββ ββββββββββββββββββββ β
β β Your Files ββββββββββΆβ PDF.js Library β β
β β (Never β β (Renders pages β β
β β uploaded) β β in memory) β β
β ββββββββββββββββ ββββββββββββββββββββ β
β β² β β
β β βΌ β
β β ββββββββββββββββββββ β
β β β pdf-lib β β
β β β (PDF mutations) β β
β β ββββββββββββββββββββ β
β β β β
β βββββββββββββββββββββββββββββ β
β β β
β β
DOWNLOAD β
β (Your edited PDF) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NO CLOUD PDF UPLOAD β
β NO THIRD-PARTY CONVERTER β
β NO DATA TRACKING β
Website URL to PDF uses your **local app server** (headless Chrome), not a third-party cloud.
| Aspect | Pdfing Pro | Traditional Cloud Tools |
|---|---|---|
| Data Privacy | π 100% private | |
| Processing Speed | β‘ Instant | π’ Depends on network |
| No Account Needed | β Yes | β Requires registration |
| Offline Support | β Works offline | β Requires internet |
| No Data Retention | β Guaranteed | β Files stored on servers |
| Cost | β Free |
- Node.js 18.18+ and npm 9+ (required for Next.js build and CI)
- Node.js 25.7+ recommended if you use Unlock PDF (
modern-pdf-libdeclares this engine requirement) - Modern web browser with JavaScript enabled
Note:
npm installmay show anEBADENGINEwarning formodern-pdf-libon Node 18β25.6. The web app and most tools still work; only unlock/decrypt flows depend on that package.
Website to PDF requires headless Chrome. It is installed automatically via postinstall, or run manually:
npx puppeteer browsers install chromegit clone https://github.com/inievolabs/pdfingpro.git
cd pdfingpro
# Install dependencies
npm install
# Start the development server
npm run devThe application will be available at http://localhost:3000
npm run build
npm startnpm testCI runs lint, tests, and production build on Node 20 and 22 (see .github/workflows/ci.yml).
npm run build:desktopThis creates a Windows portable executable in the release/ folder, similar to a desktop app shell.
pdfingpro/
βββ app/ # Next.js app directory
β βββ (tools)/ # Dynamic tool routes
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
β βββ globals.css # Global styles
βββ components/
β βββ layout/ # Header, Footer
β βββ shared/ # Reusable components
βββ lib/
β βββ pdf/ # PDF processing logic
β βββ tools.ts # Tool definitions
β βββ utils.ts # Utility functions
βββ assets/
β βββ mockup_images/ # UI mockups
βββ public/ # Static assets
- Framework: Next.js 14
- Language: TypeScript
- Styling: Tailwind CSS
- PDF Processing:
- OCR: Tesseract.js
- Document Export: docx
- Compression: JSZip
- Upload PDF - Drag and drop or click to select
- Choose Tool - Select the operation you want to perform
- Configure - Adjust settings in the sidebar
- Preview - See changes in real-time
- Download - Export your processed PDF
- Open the "Merge PDF" tool
- Upload multiple PDFs in order
- Preview the merged result
- Click "Download" to save
- Open the "Watermark PDF" tool
- Upload your PDF
- Enter watermark text and customize appearance
- Click "Apply" to preview
- Download the watermarked PDF
We welcome contributions! Please see CONTRIBUTING.md for detailed guidelines on:
- Setting up your development environment
- Code standards and conventions
- Pull request process
- Bug reporting
- Feature requests
This project is licensed under the MIT License - see the LICENSE file for details.
Built with love using:
- Maintained & Enhanced by: Inievo Technologies
Your data is your own. Pdfing Pro operates with transparency:
- β No analytics tracking
- β No cookies
- β No third-party data sharing for PDF file uploads
- β PDF file tools run client-side (files stay in your browser)
β οΈ Website URL to PDF sends the URL to your local app server for headless rendering β not to a third-party cloud converter- β No user accounts required
Your uploaded PDF files are never sent to external servers.
- Batch processing for multiple files
- Custom template creation
- Advanced OCR with language support
- Form filling automation
- Signature verification
- Cloud storage integration (optional, user opt-in)
- Mobile app (React Native)
- Browser extensions
- 18+ Tools ready to use
- Most tools client-side β files stay in the browser
- Website URL rendering runs on your own app server (local/desktop)
- β Free forever
Made with β€οΈ for privacy-conscious users everywhere.
