GitPedia

Scan

Free document to PDF scanner

From addyosmaniยทUpdated May 28, 2026ยทView on GitHubยท

A modern, web-based document scanner built with React. Scan documents using your device's camera or upload existing images, process them for clarity, and convert them to PDF format. The project is written primarily in TypeScript, distributed under the MIT License license, first published in 2024. Key topics include: pdf, pdf-generation, scanner-web, scanning, scanning-tool.

๐Ÿ“„ Scan

A modern, web-based document scanner built with React. Scan documents using your device's camera or upload existing images, process them for clarity, and convert them to PDF format.

โœจ Features

  • ๐Ÿ“ฑ Mobile-optimized interface
  • ๐Ÿ“ธ Capture documents using device camera
  • ๐Ÿ“ค Upload existing images
  • โœ‚๏ธ Smart document cropping
  • ๐Ÿ”„ Portrait and landscape orientation support
  • ๐Ÿ“‘ Multi-page document support
  • ๐Ÿ” Image enhancement and processing
  • ๐Ÿ“‹ Page reordering capabilities
  • ๐Ÿ”Ž Full-screen preview mode
  • ๐Ÿ“ Export to PDF

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18 or higher
  • npm or yarn

Installation

  1. Clone the repository:
bash
git clone https://github.com/addyosmani/scan.git cd scan
  1. Install dependencies:
bash
npm install
  1. Start the development server:
bash
npm run dev

๐Ÿ› ๏ธ Tech Stack

  • React - UI framework
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • Vite - Build tool
  • react-webcam - Camera access
  • react-easy-crop - Image cropping
  • jsPDF - PDF generation
  • Lucide React - Icons

๐Ÿ“ฑ Usage

  1. Capture or Upload

    • Click "Take Photo" to use your device's camera
    • Click "Upload Image" to select an existing image
  2. Crop and Adjust

    • Use the cropping tool to select the document area
    • Toggle between portrait and landscape orientation
    • Confirm or cancel the crop
  3. Manage Pages

    • Add multiple pages to create a multi-page document
    • Reorder pages using the arrow buttons
    • Preview pages in full screen
    • Delete unwanted pages
  4. Export

    • Click "Download PDF" to generate and download your document
    • Use "Reset" to start over

๐Ÿค 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 file for details.

๐Ÿ™ Acknowledgments

๐Ÿ“ง Contact

Addy Osmani - @addyosmani

Project Link: https://github.com/addyosmani/scan

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub โ†’

This article is auto-generated from addyosmani/scan via the GitHub API.Last fetched: 6/27/2026