https://github.com/js-bhavyansh/document_scanner
Document scanner app using Google ML Kit and Jetpack Compose for seamless document scanning and image handling.
https://github.com/js-bhavyansh/document_scanner
android jetpack-compose kotlin mlkit-android mlkit-document-scanner
Last synced: 2 months ago
JSON representation
Document scanner app using Google ML Kit and Jetpack Compose for seamless document scanning and image handling.
- Host: GitHub
- URL: https://github.com/js-bhavyansh/document_scanner
- Owner: js-bhavyansh
- Created: 2024-08-11T13:47:06.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-11T15:25:15.000Z (almost 2 years ago)
- Last Synced: 2025-01-19T10:08:02.441Z (over 1 year ago)
- Topics: android, jetpack-compose, kotlin, mlkit-android, mlkit-document-scanner
- Language: Kotlin
- Homepage:
- Size: 102 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Document Scanner with Google ML Kit and Jetpack Compose
Integrate document scanning functionality into your Android app using Google ML Kit and Jetpack Compose.
## Features
- Scans documents using Google ML Kit's Document Scanner.
- Supports JPEG and PDF formats.
- Customizable scanner options (page limit, scanner mode, etc.).
- Simple and user-friendly UI with Jetpack Compose.
## Screenshot
## Getting Started
### Installation
1. Clone the repository:
```sh
git clone https://github.com/Bhavyansh03-tech/Document_scanner.git
```
2. Open the project in Android Studio.
3. Build the project and run it on an emulator or a physical device.
### Setup
1. **Dependencies**
Add the following dependencies to your `build.gradle` file:
```kotlin
implementation 'com.google.mlkit:document-scanner:16.0.0-beta1'
implementation 'io.coil-kt:coil-compose:2.7.0'
```
2. **Usage**
Here's the code to implement the document scanner:
```kotlin
val options = GmsDocumentScannerOptions.Builder()
.setGalleryImportAllowed(false)
.setResultFormats(
GmsDocumentScannerOptions.RESULT_FORMAT_JPEG,
GmsDocumentScannerOptions.RESULT_FORMAT_PDF
)
.setPageLimit(2)
.setScannerMode(SCANNER_MODE_FULL)
.build()
var selectedImageUri by remember {
mutableStateOf(Uri.EMPTY)
}
val scanner = GmsDocumentScanning.getClient(options)
val scannerLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.StartIntentSenderForResult()
) { result ->
if (result.resultCode == RESULT_OK) {
val scannerResult =
GmsDocumentScanningResult.fromActivityResultIntent(result.data)
scannerResult?.pages?.let { pages ->
for (page in pages) {
selectedImageUri = pages[0].imageUri
}
}
}
}
// Context
val context = LocalContext.current as Activity
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
AsyncImage(
model = selectedImageUri,
contentDescription = null,
contentScale = ContentScale.Crop, modifier = Modifier.size(200.dp)
)
Spacer(modifier = Modifier.height(10.dp))
Button(onClick = {
scanner.getStartScanIntent(context)
.addOnSuccessListener { intentSender ->
scannerLauncher.launch(
IntentSenderRequest
.Builder(intentSender)
.build()
)
}
}) {
Text(text = "Start Scanning")
}
}
```
## Contributing
Contributions are welcome! Please fork the repository and submit a pull request for any improvements or bug fixes.
1. Fork the repository.
2. Create your feature branch (`git checkout -b feature/your-feature`).
3. Commit your changes (`git commit -am 'Add some feature'`).
4. Push to the branch (`git push origin feature/your-feature`).
5. Create a new Pull Request.
## Contact
For questions or feedback, please contact [@Bhavyansh03-tech](https://github.com/Bhavyansh03-tech).
---