pagescan#

PyPI Python versions License: MIT

A privacy-first document scanner for Python. Phone photo in, deskewed print-ready PDF out — without uploading anything to a cloud.

import pagescan

pagescan.scan("photo.jpg", "output.pdf")

That’s it. No service account, no API key, no network round-trip. The pre-trained models (~50 MB) download from Hugging Face Hub on first use and cache locally.

Why pagescan?#

  • No cloud round-trip. Everything runs locally; nothing leaves the machine.

  • Headless / scriptable. No GUI, no mobile dependency, batch-friendly.

  • Open weights. Hosted on Hugging Face under MIT-compatible licenses; auditable and fine-tunable.

  • Tuned for real-world phone photos. Wood tables, uneven lighting, hand occlusion, perspective tilt.

  • Built for regulated environments. EU data-residency requirements, on-prem deployments, scriptable pipelines.

If you need a mobile SDK, Apple’s VisionKit and Google’s ML Kit are excellent. If you need server/desktop/headless and care about data residency, pagescan is built for that case.

Get started#

Reference

Project status#

pagescan is developed by 7R+ GmbH. The first public release on PyPI is 0.1.0. Until then, the API is stabilising — pin to an exact version if you depend on it from production code.