PDFCraft

May 12, 2026 ยท View on GitHub

PDFCraft Logo

Professional PDF Tools

Free, Private & Browser-Based

Merge, split, compress, convert, and edit PDF files online without uploading to servers.

Website Next.js React TypeScript Tailwind CSS

๐Ÿ“– About

PDFCraft is a comprehensive suite of PDF tools designed for privacy and performance. Unlike many online converters, PDFCraft processes your files entirely within your browser using WebAssembly technology. Your documents never leave your device, ensuring maximum security for your sensitive data.

This project is built with modern web technologies to provide a slick, app-like experience directly in the browser.

โœจ Key Features

  • ๐Ÿ”’ 100% Private: All processing happens client-side. No file uploads to external servers.
  • ๐Ÿš€ Fast & Responsive: Powered by Next.js and WebAssembly for near-native performance.
  • ๐Ÿ› ๏ธ Comprehensive Toolset: Over 80+ tools to handle any PDF task.
  • ๐ŸŽจ Modern UI: Clean, accessible, and responsive design built with Tailwind CSS.
  • ๐ŸŒ Multi-language: Supports English, Spanish, French, German, Portuguese, Japanese, Korean, and Chinese.

๐Ÿ”„ Workflow Editor (Beta)

โš ๏ธ Early Development Notice: This feature is currently in early development stage. You may encounter bugs or incomplete functionality. We appreciate your feedback and patience!

PDFCraft includes a powerful visual workflow editor that allows you to chain multiple PDF operations together, creating automated processing pipelines.

Workflow Editor Screenshot

Visual workflow editor with drag-and-drop interface

Key Capabilities

  • ๐Ÿ”— Visual Node-Based Editor: Drag and drop tools onto a canvas and connect them to create processing pipelines
  • ๐Ÿ“‹ 23+ Pre-built Templates: Common workflows like "Merge & Compress", "Secure PDF", "Document Preparation", etc.
  • ๐Ÿ’พ Save & Reuse: Save your custom workflows for future use
  • ๐ŸŽฏ Real-time Validation: Automatic format compatibility checking between connected tools
  • ๐Ÿ“ Batch Processing: Process multiple files through the same workflow
  • โ†”๏ธ Collapsible Panels: Maximize canvas workspace with collapsible tool and library sidebars

Available Templates

CategoryTemplates
CommonMerge & Compress, Document Preparation, Split & Watermark, Batch Watermark, Report Assembly, Invoice Processing
ConversionImages to PDF, PDF to Images, Office to PDF, eBook to PDF, Photo Album Creator
OptimizationOptimize for Web, Full Optimization, Grayscale & Compress, Archive Preparation
SecurityCreate Secure PDF, Confidential Document, Unlock & Edit

How to Access

Navigate to /workflow or click on "Workflow Editor" in the navigation menu.

๐Ÿงฐ Complete Tool List (90+ Tools)

๐Ÿ“ Organize & Manage (27 tools)

ToolDescription
PDF Multi ToolAll-in-one PDF editor for merge, split, organize, delete, rotate, and extract
Merge PDFCombine multiple PDFs into one document
Split PDFSeparate specific pages or divide by page ranges
Extract PagesExtract specific pages to a new file
Organize PDFReorder, duplicate, and delete pages with drag-and-drop
Delete PagesRemove unwanted pages from PDF files
Rotate PDFRotate pages by 90ยฐ, 180ยฐ, or 270ยฐ
Rotate by Custom DegreesRotate pages by any angle for straightening scans
Reverse PagesReverse the page order of a PDF
Add Blank PageInsert blank pages at any position
Divide PagesSplit pages horizontally or vertically
N-up PDFCombine multiple pages on a single sheet (2-up, 4-up, etc.)
Combine to Single PageStitch all pages into one continuous page
Alternate MergeInterleave pages from multiple PDFs
OCR PDFMake scanned PDFs searchable with text recognition
Add AttachmentsEmbed files into PDF documents
Extract AttachmentsDownload embedded files from PDFs
Edit AttachmentsView, rename, or remove embedded files
View MetadataView PDF properties, author, dates, and keywords
Edit MetadataModify PDF title, author, subject, and keywords
PDF to ZIPPackage multiple PDFs into a ZIP archive
Compare PDFsCompare two PDFs side-by-side with difference highlighting
Posterize PDFSplit large pages into multiple printable sheets
Grid CombineCombine multiple PDFs into a grid layout with custom spacing
PDF BookletArrange pages for booklet printing (saddle stitch)
PDF ReaderRead and view PDF documents in a clean interface

โœ๏ธ Edit & Annotate (19 tools)

ToolDescription
Edit PDFAdd text, images, annotations, highlights, and shapes
Sign PDFDraw, type, or upload electronic signatures
Crop PDFTrim margins and remove unwanted areas
Edit BookmarksAdd, edit, and manage PDF navigation bookmarks
Table of ContentsGenerate clickable table of contents from bookmarks
Page NumbersAdd customizable page numbering
Add WatermarkApply text or image watermarks
Header & FooterAdd headers and footers with page numbers and dates
Invert ColorsCreate dark mode versions of documents
Background ColorChange or add page background colors
Change Text ColorModify the color of all text content
Add StampsApply preset or custom stamps (Approved, Rejected, etc.)
Remove AnnotationsStrip comments, highlights, and markup
Form FillerComplete interactive PDF forms
Form CreatorAdd text fields, checkboxes, and dropdowns to create forms
Remove Blank PagesAuto-detect and remove empty pages
Deskew PDFAutomatically straighten skewed scanned pages
OCG ManagerManage Optional Content Groups (layers) in PDFs

๐Ÿ“ค Convert to PDF (22 tools)

ToolDescription
Image to PDFConvert any image format to PDF
JPG to PDFConvert JPEG images to PDF
PNG to PDFConvert PNG images with transparency support
WebP to PDFConvert modern WebP images to PDF
SVG to PDFConvert vector graphics to PDF
BMP to PDFConvert bitmap images to PDF
HEIC to PDFConvert iPhone/iPad photos to PDF
TIFF to PDFConvert multi-page TIFF to PDF
TXT to PDFConvert plain text files to PDF
JSON to PDFConvert JSON data with syntax highlighting
PSD to PDFConvert Photoshop files to PDF
Word to PDFConvert Microsoft Word documents to PDF
Excel to PDFConvert Excel spreadsheets to PDF
PowerPoint to PDFConvert PowerPoint presentations to PDF
XPS to PDFConvert XPS documents to PDF
RTF to PDFConvert Rich Text Format files to PDF
EPUB to PDFConvert EPUB ebooks to PDF
MOBI to PDFConvert MOBI ebooks to PDF
Markdown to PDFConvert Markdown files to PDF with styling
Email to PDFConvert email files (EML/MSG) to PDF
CBZ to PDFConvert comic book archives to PDF
DjVu to PDFConvert DjVu documents to PDF

๐Ÿ“ฅ Convert from PDF (13 tools)

ToolDescription
PDF to JPGExtract pages as JPEG images
PDF to PNGExport pages as PNG with transparency
PDF to WebPConvert to modern WebP format
PDF to BMPExport as bitmap images
PDF to TIFFConvert to high-quality TIFF
PDF to GreyscaleConvert colorful PDFs to black and white
PDF to JSONExtract text and metadata as JSON
PDF to DOCXConvert PDF to editable Word document
PDF to PowerPointConvert PDF to editable slides
PDF to ExcelExtract tables to spreadsheet format
Extract ImagesExtract all images embedded in a PDF file
PDF to PDF/AConvert PDF to archival PDF/A format
Extract TablesExtract tables from PDF as structured data

โšก Optimize & Repair (8 tools)

ToolDescription
Compress PDFReduce file size while maintaining quality
Fix Page SizeStandardize page dimensions
Page DimensionsAnalyze and view page sizes
Linearize PDFOptimize for fast web viewing
Repair PDFFix corrupted or damaged PDF files
Remove RestrictionsRemove editing/printing restrictions
Rasterize PDFConvert vector elements to images for compatibility
Font to OutlineConvert text fonts to vector outlines

๐Ÿ”’ Secure PDF (6 tools)

ToolDescription
Encrypt PDFAdd password protection and encryption
Decrypt PDFRemove password from PDFs
Sanitize PDFRemove metadata, scripts, and hidden data
Flatten PDFMerge annotations and form fields into content
Remove MetadataStrip author, dates, and other metadata
Change PermissionsSet print, copy, and edit permissions

๐Ÿ’ป Tech Stack

๐Ÿš€ Getting Started

To run this project locally, follow these steps:

Prerequisites

  • Node.js 18.17 or later
  • npm, yarn, or pnpm

Installation

  1. Clone the repository

    git clone https://github.com/PDFCraftTool/pdfcraft.git
    cd pdfcraft
    
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
    
  3. Start the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
    
  4. Open your browser Navigate to http://localhost:3000 to see the application running.

๐Ÿณ Docker

PDFCraft provides both pre-built Docker images and Docker Compose for flexible deployment options.

The easiest way to run PDFCraft is using our pre-built image from GitHub Container Registry:

# Pull the latest image
docker pull ghcr.io/pdfcrafttool/pdfcraft:latest

# Run the container
docker run -d -p 8080:80 --name pdfcraft ghcr.io/pdfcrafttool/pdfcraft:latest

Open http://localhost:8080 to access PDFCraft.

Available tags:

TagDescription
latestLatest stable release from main branch
v1.0.0Specific version (semantic versioning)
sha-abc1234Specific commit

Option 2: Build from Source with Docker Compose

If you want to build from source or need to modify the code:

โš ๏ธ Note: This method requires cloning the repository first.

# Clone the repository
git clone https://github.com/PDFCraftTool/pdfcraft.git
cd pdfcraft

# Development mode (with hot reload)
docker compose --profile dev up

# Production mode (static build + Nginx)
docker compose --profile prod up --build

To stop containers:

docker compose down

๐ŸŒ Subpath Deployment (basePath Support)

PDFCraft supports deployment under a subpath (e.g., https://your-domain.com/pdfcraft/). To enable this, you must specify the base path during the build process.

Using Docker Build:

docker build --build-arg BASE_PATH=/pdfcraft -t pdfcraft .

Using Docker Compose:

services:
  pdfcraft:
    build:
      context: .
      args:
        - BASE_PATH=/pdfcraft
    environment:
      - BASE_PATH=/pdfcraft

Note: Since the app is statically exported, the BASE_PATH must be provided during the build stage.

๐Ÿ“œ Scripts

  • npm run dev: Starts the development server with Turbopack. Automatically runs predev to decompress LibreOffice WASM files.
  • npm run build: Builds the application for production. Automatically runs postbuild to decompress WASM files in out/.
  • npm run start: Starts the production server.
  • npm run lint: Lints the code using ESLint.
  • npm run test: Runs tests using Vitest.

๐Ÿš€ Production Deployment Guide

PDFCraft is configured for static export (output: 'export'), which means it can be deployed to any service that supports static website hosting without requiring a Node.js server.

๐Ÿ“– For comprehensive deployment instructions, see DEPLOYMENT.md

Quick Start

  1. Build the project:

    npm run build
    

    All static files will be generated in the out directory.

  2. Deploy to your preferred platform:

    • Vercel (Recommended): vercel --prod
    • Netlify: netlify deploy --prod --dir=out
    • GitHub Pages: Push to main branch (uses GitHub Actions)
    • Cloudflare Pages: wrangler pages deploy out
    • Docker + Nginx: docker compose --profile prod up --build

Deployment Files Included

FilePlatform
vercel.jsonVercel
netlify.tomlNetlify
.github/workflows/deploy.ymlGitHub Pages
public/_headersCloudflare Pages / Netlify
docker-compose.yml + nginx.confDocker / Self-hosted
.htaccessApache

Important Notes

  • Headers Configuration: Security and caching headers are pre-configured in all deployment files.
  • Image Optimization: Static export uses images: { unoptimized: true }.
  • WASM Support: All deployment configs include proper MIME types for WebAssembly.
  • Subpath Support: Set BASE_PATH environment variable during build to deploy under a subdirectory.

Verify Deployment

After deployment, please check the following features to ensure everything is working correctly:

  • Multi-language routing (e.g., /en, /zh)
  • Tool page loading
  • WebAssembly (PDF processing) functionality

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿค Acknowledgements

PDFCraft stands on the shoulders of giants. We gratefully acknowledge BentoPDF for their pioneering work in privacy-first, client-side PDF tools.

Their project served as a significant inspiration and reference for our core logic. While PDFCraft has been re-engineered for the Next.js ecosystem and extends functionality with unique features like the Workflow Editor, we deeply respect the foundation laid by the BentoPDF team.

๐Ÿ“„ License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.


Built with โค๏ธ by the PDFCraft Team