Skip to main content

Scanlite

Release License: MIT Python 3.10+

Turn photos of documents into clean, searchable PDFs.

Load scanned pages or photos from your phone, let Scanlite straighten, crop, and clean them automatically, reorder as needed, and export a single PDF with an optional OCR text layer.

Getting Started

pip install scanlite
scanlite

Or download a native installer from Releases:

Platform Download Install
Windows x64 Scanlite-0.1.1.msi Double-click; installs to Program Files with Start Menu shortcut
macOS Apple Silicon Scanlite-0.1.1.dmg Open, drag to Applications
Debian / Ubuntu scanlite-0.1.1.deb sudo dpkg -i scanlite-0.1.1.deb
Fedora / RHEL scanlite-0.1.1.rpm sudo rpm -i scanlite-0.1.1.rpm

Native installers bundle Tesseract for OCR out of the box. When installing via pip, Tesseract must be available on your system PATH for the OCR export to work.

Features

Import

  • PDF (rendered at 200 DPI), PNG, JPG, TIFF, BMP, WebP
  • Multi-page PDFs split into individual pages automatically
  • Drag-and-drop support (when tkdnd is available)

Processing

  • Auto-crop: Otsu threshold + contour detection trims to the document edge

  • Auto-perspective: Canny edge detection finds a 4-point quadrilateral and warps it flat

  • Scan enhance: three modes that produce a clean, scanner-like look:

    Mode What it does
    auto Detects page brightness; picks B&W for white pages, CLAHE for darker ones
    bw Adaptive Gaussian threshold for pure black-on-white text
    gray CLAHE contrast enhancement for photos or diagrams
  • Every operation works per-page or as a batch across all pages

  • Reset any page to its original at any time

Reorder and Manage

  • Move Up / Move Down (or arrow keys) to reorder
  • Delete to remove a page
  • Thumbnail panel shows the current page order at a glance

Export

  • PDF: combines all pages into a single document
  • PDF + OCR: Tesseract generates an invisible text layer per page, making the output searchable and copy-pasteable
  • Keyboard shortcuts: Ctrl+S export, Ctrl+Shift+S export with OCR

Keyboard Shortcuts

Key Action
Ctrl+O Import files
Up / Down Navigate pages
Delete Remove selected page
Ctrl+S Export PDF
Ctrl+Shift+S Export PDF + OCR

How It Works

Scanlite's processing pipeline runs perspective correction first (to avoid cropping a skewed quad), then crop, then enhancement. Each step is independent and can be applied or skipped per page.

The perspective detector looks for the largest 4-sided contour in the edge map and computes a homography to warp it into a rectangle. If no quadrilateral is found, the image passes through unchanged.

The scan enhancer auto-detects whether a page is mostly white (median brightness > 170) and picks adaptive thresholding for text-heavy pages or CLAHE for photos and diagrams.

System Requirements

  • Python 3.10+
  • Tesseract OCR (bundled in native installers; for pip installs, install separately)

Support

"Software is like sex: it's better when it's free." -- Linus Torvalds

If this tool saved you a trip to the copy shop, buying me a coffee is a nice way to say thanks.

Buy Me A Coffee

License

MIT (see LICENSE.md)

Citation

@software{scanlite,
  author = {Colling, Gilles},
  title = {Scanlite: Cross-Platform Document Scanner},
  year = {2026},
  url = {https://github.com/gcol33/scanlite}
}

Release files for scanlite 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scanlite 0.1.1
File Size Uploaded
scanlite-0.1.1.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scanlite 0.1.1
File Interpreter ABI Platform
scanlite-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 30.4 kB

Release files / scanlite-0.1.1.tar.gz

Download URL scanlite-0.1.1.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
43db59b6e48fc31c6452e4b82d3b131e50abe8f2bf576f3d22b4f228a2431d9d
BLAKE2b-256 checksum
How to use checksums
70a0fed19b7874e8c0dd0f1d63b1387bbc6a0cf376e8ae095885d73cd631790e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.

Transparency log

Release files / scanlite-0.1.1-py3-none-any.whl

Download URL scanlite-0.1.1-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6de504276b19f914630f788bc0963abd800f8f141a917d72b7f46fdd7a5d792
BLAKE2b-256 checksum
How to use checksums
96a00dcee12f10e865afa46dd6c4fe0ff1f037b997d9454cec3952953fec27de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page