MobKBK 1848a88fcf
Some checks failed
Android CI / build (push) Has been cancelled
初步完成框架
- 实时图传:WebSocket JPEG 帧发送 + 帧率控制 + PC 浏览器预览
- PDF 上传与处理:上传/处理分离,支持 ocrpdf 和 markdown 两种类型
- MinerU 真实接入:markdown 处理 + images ZIP 打包
- OCRmyPDF 接入:ocrpdf 生成可搜索双层 PDF
- 手机端任务管理面板:轮询状态 + SAF 目录选择下载
- PC 管理面板:/dashboard 文件与任务管理
- 网络层:OkHttp 客户端、WebSocket 图传、局域网发现占位

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-04 17:03:18 +08:00
2026-06-04 17:03:18 +08:00
2026-06-04 17:03:18 +08:00
2026-05-31 06:56:07 +02:00
2026-06-04 17:03:18 +08:00
2026-06-04 17:03:18 +08:00
2025-05-09 12:10:11 +02:00
2025-03-30 15:07:54 +02:00
2026-04-20 18:54:45 +02:00

FairScan icon

FairScan

An Android app to scan your documents —
simple and respectful.

License

Get it on: F-Droid · Google Play · GitHub


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


Screenshots

Scan Preview Save & 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
  • Fully offline the app has no internet permission
  • 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.

Description
No description provided
Readme GPL-3.0 5 MiB
Languages
Kotlin 93.9%
Python 5.7%
xBase 0.4%