FairScan

pynicolasGPL-3.0活跃维护

一款注重隐私的 Android 文档扫描应用,用 OpenCV 和 TFLite 做图像分割与处理,把纸质文件拍成清晰的 PDF,全程本地完成不上传。

An Android app to scan your documents — simple and respectful

v2.3.0发布于 2026-09-20 16:03 UTC1,024star +9 / 7 天67fork同步于 2026-11-10 17:53 UTC

怎么上手

由 README 提炼,执行前请确认
./gradlew clean check assembleRelease
硬件要求按 README 说明

需运行 Android 8.0+ 且带摄像头的设备;README 未说明 CPU/GPU 或显存要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源安卓文档扫描应用,几秒生成干净可分享的 PDF,本地处理不追踪

一款注重隐私的 Android 文档扫描应用,用 OpenCV 和 TFLite 做图像分割与处理,把纸质文件拍成清晰的 PDF,全程本地完成不上传。

核心能力

  • 用自定义分割模型自动检测文档边界
  • 自动做透视校正与图像增强
  • 本地生成 PDF,无需手动调整
  • 所有处理在设备端完成,不上传云端
  • 权限极少、无广告无追踪,GPLv3 开源

容易踩的坑

构建时会通过 download-tflite.gradle.kts 自动下载分割模型,需联网;OCR 依赖 Tesseract,构建环境需能获取相应依赖;通过 intent 调用返回的 PDF URI 生命周期有限,调用方需立即复制内容。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.3.0
  1. v2.3.0最新正式版2026-09-20 · 2026-09-20 16:03 UTC

    What's Changed

    • New color mode: Black and white. This produces very small PDF files. Huge thanks to @toolicious for this contribution, especially for the advanced binarization algorithm. See issue #150 and pull request #229.
    • New app translations:
      • Persian by @RZHSSNZDH (291ad0f)
      • Tamil by @TamilNeram (15a5361)

    Full Changelog: https://github.com/pynicolas/FairScan/compare/v2.2.0...v2.3.0

  2. v2.2.02026-07-19 · 2026-07-19 16:08 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/pynicolas/FairScan/compare/v2.1.0...v2.2.0

  3. v2.1.02026-06-26 · 2026-06-26 13:36 UTC
    查看更新说明

    What's Changed

    • Explicit choice on startup: resume current scan or start new (#204)
    • Trigger capture with the volume buttons (#206), including from a remote control
    • Import photos: the image picker now includes a "Browse" option (#207)

    Bug fixes

    • Manual crop: preserve the edited quad across device rotations (#195)
    • Avoid a crash when tapping a link in the About screen if no app can open it (522dd5a)

    Full Changelog: https://github.com/pynicolas/FairScan/compare/v2.0.0...v2.1.0

  4. v2.0.02026-06-13 · 2026-06-13 19:54 UTC
    查看更新说明

    What's New

    • Create searchable PDFs with text recognition (OCR) (#27). Go to the Settings screen to download language files and enable OCR.

    Other changes

    Note: FairScan now uses the INTERNET permission to download optional OCR language files. All document processing remains local to your device.

    Full Changelog: https://github.com/pynicolas/FairScan/compare/v1.23.0...v2.0.0

  5. v1.23.02026-05-31 · 2026-05-31 07:24 UTC
    查看更新说明

    What's Changed

    • Scan documents directly from compatible apps and web forms (#137). You can now use FairScan whenever an Android app requests a PDF document. This includes file upload forms in browsers such as Chrome and Firefox.

    Full Changelog: https://github.com/pynicolas/FairScan/compare/v1.22.1...v1.23.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    FairScan is an Android app to scan documents quickly, easily and privately.

    It's designed to be simple: users get a clean, shareable PDF in seconds, with no manual adjustments. And respectful: open source, minimal permissions, no tracking, no ads.


    Contributing

    Contributions are welcome, but please read the guidelines first: CONTRIBUTING.md


    Translations

    Translations are managed on Weblate, and everyone is welcome to contribute.

    Translation status

    Start translating: https://hosted.weblate.org/projects/fairscan/


    Screenshots

    ScanPreviewSave & Share

    Features

    • Clear, distraction-free interface
    • Easy flow: scan, review if needed, save or share
    • Automatic document detection using a custom segmentation model
    • Automatic perspective correction
    • Automatic image enhancement
    • Fast PDF generation with no manual adjustments
    • All document processing happens locally on your device, no cloud processing
    • Minimal permissions
    • Open source, GPLv3

    What FairScan is not

    FairScan is not intended to:

    • provide fine-grained manual control over document processing
    • replicate all features found in other scanning apps
    • optimize for highly specific use cases at the expense of simplicity

    Compatibility

    FairScan works on any device that:

    • runs Android 8.0+
    • has a camera

    Experimental: Scan to PDF via intent

    FairScan can be invoked by other Android applications to perform a document scan and return a generated PDF.

    This feature is experimental and intended for developers who want to rely on FairScan as a simple, privacy-respecting scanning tool. The intent contract and behavior may change between versions, and backward compatibility is not guaranteed at this stage.

    Intent action: org.fairscan.app.action.SCAN_TO_PDF

    This is an implicit intent that launches FairScan in a dedicated external mode.

    When started via this intent:

    • FairScan opens directly in scan mode
    • the user scans one or more pages
    • FairScan generates a single PDF
    • the resulting PDF is returned to the calling application as a URI with a limited lifetime
    • the calling application should immediately copy the content of the URI as FairScan deletes it later

    See an example app: fairscan-intent-sample


    Technical details

    FairScan uses:


    The segmentation model

    FairScan uses a custom-trained image segmentation model to detect documents: https://github.com/pynicolas/fairscan-segmentation-model

    It's based on a fully public dataset that is available here: https://github.com/pynicolas/fairscan-dataset

    The build system automatically downloads the model using
    download-tflite.gradle.kts.

    Related blog posts:


    Build

    To build an APK:

    ./gradlew clean check assembleRelease
    

    To build an Android App Bundle:

    ./gradlew clean check :app:bundleRelease
    

    License

    This project is licensed under the GNU GPLv3. See LICENSE for details.