Android पर ML Kit की मदद से दस्तावेज़ स्कैन करने वाले ऐप्लिकेशन
अपने ऐप्लिकेशन में दस्तावेज़ स्कैन करने की सुविधा आसानी से जोड़ने के लिए, ML Kit के document scanner API का इस्तेमाल करें.
| सुविधा | जानकारी |
|---|---|
| एसडीके का नाम | play-services-mlkit-document-scanner |
| लागू करना | Google Play services, मॉडल, स्कैनिंग लॉजिक, और यूज़र इंटरफ़ेस (यूआई) फ़्लो को डाइनैमिक तरीके से डाउनलोड करता है. |
| ऐप्लिकेशन के साइज़ का असर | डाउनलोड किए जाने वाले डेटा का साइज़ करीब 300 केबी बढ़ जाता है. |
| शुरू होने में लगने वाला समय | पहली बार इस्तेमाल करने से पहले, उपयोगकर्ताओं को मॉडल, लॉजिक, और यूज़र इंटरफ़ेस (यूआई) फ़्लो के डाउनलोड होने का इंतज़ार करना पड़ सकता है. |
इसे आज़माएं
इस एपीआई के इस्तेमाल का उदाहरण देखने के लिए, सैंपल के तौर पर मिले ऐप्लिकेशन को आज़माएं.
शुरू करने से पहले
प्रोजेक्ट-लेवल की
build.gradleफ़ाइल में, buildscript और allprojects, दोनों सेक्शन में Google की Maven रिपॉज़िटरी को शामिल करना न भूलें.अपने मॉड्यूल की ऐप्लिकेशन-लेवल की gradle फ़ाइल में, ML Kit के दस्तावेज़ स्कैनर लाइब्रेरी के लिए डिपेंडेंसी जोड़ें. यह फ़ाइल आम तौर पर app/build.gradle होती है:
dependencies {
// …
implementation 'com.google.android.gms:play-services-mlkit-document-scanner:16.0.0'
}
दस्तावेज़ स्कैन करने वाले ऐप्लिकेशन का कॉन्फ़िगरेशन
दस्तावेज़ स्कैन करने वाले ऐप्लिकेशन का यूज़र फ़्लो, एसडीके उपलब्ध कराता है. इसमें व्यूफ़ाइंडर स्क्रीन और झलक वाली स्क्रीन शामिल होती है. व्यूफ़ाइंडर और झलक वाली स्क्रीन पर, पसंद के मुताबिक बनाए जा सकने वाले ये कंट्रोल इस्तेमाल किए जा सकते हैं:
- फ़ोटो गैलरी से इंपोर्ट करना
- स्कैन किए जाने वाले पेजों की संख्या तय करना
- स्कैनर मोड (फ़्लो में सुविधाओं के सेट को कंट्रोल करने के लिए)
स्कैन किए गए दस्तावेज़ों के लिए, PDF और JPEG, दोनों फ़ाइलें वापस पाई जा सकती हैं.
स्कैनर के विकल्पों को कॉन्फ़िगर करने के लिए, GmsDocumentScannerOptions को इंस्टैंशिएट करें:
Kotlin
val options = GmsDocumentScannerOptions.Builder()
.setGalleryImportAllowed(false)
.setPageLimit(2)
.setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF)
.setScannerMode(SCANNER_MODE_FULL)
.build()Java
GmsDocumentScannerOptions options = new GmsDocumentScannerOptions.Builder()
.setGalleryImportAllowed(false)
.setPageLimit(2)
.setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF)
.setScannerMode(SCANNER_MODE_FULL)
.build();दस्तावेज़ स्कैन करें
GmsDocumentScannerOptions बनाने के बाद, GmsDocumentScanner का इंस्टेंस पाएं. इसके बाद, AndroidX में पेश किए गए Activity Result API का इस्तेमाल करके, स्कैनर की गतिविधि शुरू की जा सकती है.
दस्तावेज़ स्कैन होने के बाद, GmsDocumentScanningResult ऑब्जेक्ट से स्कैन किए गए पेजों की संख्या, JPEG फ़ॉर्मैट में मौजूद इमेज के यूआरआई, और PDF को ऐक्सेस किया जा सकेगा. यह ऐक्सेस, setResultFormats के ज़रिए तय की गई जानकारी के मुताबिक मिलेगा:
Kotlin
val scanner = GmsDocumentScanning.getClient(options) val scannerLauncher = registerForActivityResult(StartIntentSenderForResult()) { result -> { if (result.resultCode == RESULT_OK) { val result = GmsDocumentScanningResult.fromActivityResultIntent(result.data) result.getPages()?.let { pages -> for (page in pages) { val imageUri = pages.get(0).getImageUri() } } result.getPdf()?.let { pdf -> val pdfUri = pdf.getUri() val pageCount = pdf.getPageCount() } } } } scanner.getStartScanIntent(activity) .addOnSuccessListener { intentSender -> scannerLauncher.launch(IntentSenderRequest.Builder(intentSender).build()) } .addOnFailureListener { ... }
Java
GmsDocumentScanner scanner = GmsDocumentScanning.getClient(options); ActivityResultLauncher<IntentSenderRequest> scannerLauncher = registerForActivityResult( new StartIntentSenderForResult(), result -> { if (result.getResultCode() == RESULT_OK) { GmsDocumentScanningResult result = GmsDocumentScanningResult.fromActivityResultIntent(result.getData()); for (Page page : result.getPages()) { Uri imageUri = pages.get(0).getImageUri(); } Pdf pdf = result.getPdf(); Uri pdfUri = pdf.getUri(); int pageCount = pdf.getPageCount(); } }); scanner.getStartScanIntent(activity) .addOnSuccessListener(intentSender -> scannerLauncher.launch(new IntentSenderRequest.Builder(intentSender).build())) .addOnFailureListener(...);
परफ़ॉर्मेंस को बेहतर बनाने के लिए सलाह
ध्यान रखें कि दस्तावेज़ फ़ाइलें जनरेट करने में समय लगता है और इसके लिए प्रोसेसिंग पावर की ज़रूरत होती है. इसलिए, सिर्फ़ उन आउटपुट फ़ॉर्मैट (JPEG, PDF या दोनों) का अनुरोध करें जिनकी आपको वाकई ज़रूरत है.