# PDFCraft **Repository Path**: mirrors/PDFCraft ## Basic Information - **Project Name**: PDFCraft - **Description**: PDFCraft 是一套全面的 PDF 工具套件,旨在注重隐私和性能 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: main - **Homepage**: https://www.oschina.net/p/pdfcraft - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2026-01-05 - **Last Updated**: 2026-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDFCraft
PDFCraft Logo

Professional PDF Tools

Free, Private & Browser-Based

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

[![Website](https://img.shields.io/website?url=https%3A%2F%2Fpdfcraft.gitu.net%2Fen%2F)](https://pdfcraft.gitu.net/en/) ![Next.js](https://img.shields.io/badge/Next.js-15-black?style=flat-square&logo=next.js) ![React](https://img.shields.io/badge/React-19-blue?style=flat-square&logo=react) ![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?style=flat-square&logo=typescript) ![Tailwind CSS](https://img.shields.io/badge/Tailwind-4-38bdf8?style=flat-square&logo=tailwindcss)
## 📖 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 72+ 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. ## 🧰 Complete Tool List (80+ Tools) ### 📁 Organize & Manage (24 tools) | Tool | Description | |------|-------------| | **PDF Multi Tool** | All-in-one PDF editor for merge, split, organize, delete, rotate, and extract | | **Merge PDF** | Combine multiple PDFs into one document | | **Split PDF** | Separate specific pages or divide by page ranges | | **Extract Pages** | Extract specific pages to a new file | | **Organize PDF** | Reorder, duplicate, and delete pages with drag-and-drop | | **Delete Pages** | Remove unwanted pages from PDF files | | **Rotate PDF** | Rotate pages by 90°, 180°, or 270° | | **Rotate by Custom Degrees** | Rotate pages by any angle for straightening scans | | **Reverse Pages** | Reverse the page order of a PDF | | **Add Blank Page** | Insert blank pages at any position | | **Divide Pages** | Split pages horizontally or vertically | | **N-up PDF** | Combine multiple pages on a single sheet (2-up, 4-up, etc.) | | **Combine to Single Page** | Stitch all pages into one continuous page | | **Alternate Merge** | Interleave pages from multiple PDFs | | **OCR PDF** | Make scanned PDFs searchable with text recognition | | **Add Attachments** | Embed files into PDF documents | | **Extract Attachments** | Download embedded files from PDFs | | **Edit Attachments** | View, rename, or remove embedded files | | **View Metadata** | View PDF properties, author, dates, and keywords | | **Edit Metadata** | Modify PDF title, author, subject, and keywords | | **PDF to ZIP** | Package multiple PDFs into a ZIP archive | | **Compare PDFs** | Compare two PDFs side-by-side with difference highlighting | | **Posterize PDF** | Split large pages into multiple printable sheets | | **Grid Combine** | Combine multiple PDFs into a grid layout with custom spacing | ### ✏️ Edit & Annotate (16 tools) | Tool | Description | |------|-------------| | **Edit PDF** | Add text, images, annotations, highlights, and shapes | | **Sign PDF** | Draw, type, or upload electronic signatures | | **Crop PDF** | Trim margins and remove unwanted areas | | **Edit Bookmarks** | Add, edit, and manage PDF navigation bookmarks | | **Table of Contents** | Generate clickable table of contents from bookmarks | | **Page Numbers** | Add customizable page numbering | | **Add Watermark** | Apply text or image watermarks | | **Header & Footer** | Add headers and footers with page numbers and dates | | **Invert Colors** | Create dark mode versions of documents | | **Background Color** | Change or add page background colors | | **Change Text Color** | Modify the color of all text content | | **Add Stamps** | Apply preset or custom stamps (Approved, Rejected, etc.) | | **Remove Annotations** | Strip comments, highlights, and markup | | **Form Filler** | Complete interactive PDF forms | | **Form Creator** | Add text fields, checkboxes, and dropdowns to create forms | | **Remove Blank Pages** | Auto-detect and remove empty pages | ### 📤 Convert to PDF (18 tools) | Tool | Description | |------|-------------| | **Image to PDF** | Convert any image format to PDF | | **JPG to PDF** | Convert JPEG images to PDF | | **PNG to PDF** | Convert PNG images with transparency support | | **WebP to PDF** | Convert modern WebP images to PDF | | **SVG to PDF** | Convert vector graphics to PDF | | **BMP to PDF** | Convert bitmap images to PDF | | **HEIC to PDF** | Convert iPhone/iPad photos to PDF | | **TIFF to PDF** | Convert multi-page TIFF to PDF | | **TXT to PDF** | Convert plain text files to PDF | | **JSON to PDF** | Convert JSON data with syntax highlighting | | **PSD to PDF** | Convert Photoshop files to PDF | | **Word to PDF** | Convert Microsoft Word documents to PDF | | **Excel to PDF** | Convert Excel spreadsheets to PDF | | **PowerPoint to PDF** | Convert PowerPoint presentations to PDF | | **XPS to PDF** | Convert XPS documents to PDF | | **RTF to PDF** | Convert Rich Text Format files to PDF | | **EPUB to PDF** | Convert EPUB ebooks to PDF | | **MOBI to PDF** | Convert MOBI ebooks to PDF | ### 📥 Convert from PDF (10 tools) | Tool | Description | |------|-------------| | **PDF to JPG** | Extract pages as JPEG images | | **PDF to PNG** | Export pages as PNG with transparency | | **PDF to WebP** | Convert to modern WebP format | | **PDF to BMP** | Export as bitmap images | | **PDF to TIFF** | Convert to high-quality TIFF | | **PDF to Greyscale** | Convert colorful PDFs to black and white | | **PDF to JSON** | Extract text and metadata as JSON | | **PDF to DOCX** | Convert PDF to editable Word document | | **PDF to PowerPoint** | Convert PDF to editable slides | | **PDF to Excel** | Extract tables to spreadsheet format | ### ⚡ Optimize & Repair (6 tools) | Tool | Description | |------|-------------| | **Compress PDF** | Reduce file size while maintaining quality | | **Fix Page Size** | Standardize page dimensions | | **Page Dimensions** | Analyze and view page sizes | | **Linearize PDF** | Optimize for fast web viewing | | **Repair PDF** | Fix corrupted or damaged PDF files | | **Remove Restrictions** | Remove editing/printing restrictions | ### 🔒 Secure PDF (6 tools) | Tool | Description | |------|-------------| | **Encrypt PDF** | Add password protection and encryption | | **Decrypt PDF** | Remove password from PDFs | | **Sanitize PDF** | Remove metadata, scripts, and hidden data | | **Flatten PDF** | Merge annotations and form fields into content | | **Remove Metadata** | Strip author, dates, and other metadata | | **Change Permissions** | Set print, copy, and edit permissions | ## 💻 Tech Stack - **Framework**: [Next.js 15](https://nextjs.org/) (App Router) - **Language**: [TypeScript](https://www.typescriptlang.org/) - **Styling**: [Tailwind CSS 4](https://tailwindcss.com/) - **PDF Processing**: - [PDF.js](https://github.com/mozilla/pdf.js) - [pdf-lib](https://github.com/Hopding/pdf-lib) - [PyMuPDF (WASM)](https://pymupdf.readthedocs.io/) - **State Management**: [Zustand](https://github.com/pmndrs/zustand) ## 🚀 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** ```bash git clone https://github.com/PDFCraftTool/pdfcraft.git cd pdfcraft ``` 2. **Install dependencies** ```bash npm install # or yarn install # or pnpm install ``` 3. **Start the development server** ```bash npm run dev # or yarn dev # or pnpm dev ``` 4. **Open your browser** Navigate to [http://localhost:3000](http://localhost:3000) to see the application running. ## 📜 Scripts - `npm run dev`: Starts the development server with Turbopack. - `npm run build`: Builds the application for production. - `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. ### 1. Build Project Before deploying, build the project to generate static files using the following command: ```bash npm run build ``` After the build is complete, all static files will be located in the `out` directory. ### 2. Deployment Options You can deploy the contents of the `out` directory to any of the following platforms: #### A. Vercel (Recommended) 1. Install Vercel CLI: `npm i -g vercel` 2. Run the `vercel` command. 3. Follow the prompts to set the build command to `npm run build` and the output directory to `out`. 4. Alternatively, connect directly to your GitHub repository, and Vercel will automatically detect Next.js and configure it. #### B. Nginx / Apache Copy the contents of the `out` directory to the root directory of your web server. **Nginx Configuration Example:** ```nginx server { listen 80; server_name example.com; root /path/to/your/pdfcraft/out; index index.html; # Handle static files location / { try_files $uri $uri.html $uri/ =404; } # Enable gzip compression gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; } ``` #### C. GitHub Pages 1. Push the `out` directory to the `gh-pages` branch of your repository. 2. Enable GitHub Pages in your repository settings. 3. Note: If you are not using a custom domain, you might need to modify `basePath` in `next.config.js`. #### D. Netlify 1. Connect your repository to Netlify. 2. Set build command: `npm run build` 3. Set publish directory: `out` ### 3. Important Notes - **Headers Configuration**: The `headers` configuration in `next.config.js` does not automatically take effect in static export mode. You need to configure HTTP headers separately depending on your hosting platform (e.g., `vercel.json` for Vercel or Nginx configuration). - **Image Optimization**: Since static export does not support Next.js's default image optimization server, the project is configured with `images: { unoptimized: true }`. ### 4. 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 ## 📄 License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ---
Built with ❤️ by the PDFCraft Team