Android पर एमएल किट के साथ दस्तावेज़ स्कैन करने वाले ऐप्लिकेशन

दस्तावेज़ स्कैनर की सुविधा आसानी से जोड़ने के लिए, ML Kit दस्तावेज़ स्कैनर एपीआई का इस्तेमाल करें आपका ऐप्लिकेशन.

सुविधा जानकारी
Sdk का नाम play-services-mlkit-document-scanner
लागू करना मॉडल, स्कैनिंग लॉजिक, और यूज़र इंटरफ़ेस (यूआई) फ़्लो, डाइनैमिक तरीके से Google Play सेवाएं.
ऐप्लिकेशन के साइज़ का असर डाउनलोड का साइज़ ~300 केबी हो गया है.
प्रोसेस शुरू करने का समय उपयोगकर्ताओं को यह देखने के लिए मॉडल, लॉजिक, और यूज़र इंटरफ़ेस (यूआई) फ़्लो का इंतज़ार करना पड़ सकता है पहले इस्तेमाल करने से पहले डाउनलोड कर लें.

इसे आज़माएं

गेम की दुनिया ऐप्लिकेशन का नमूना पर जाकर, एपीआई के इस्तेमाल का उदाहरण देखें.

शुरू करने से पहले

  1. अपनी प्रोजेक्ट-लेवल build.gradle फ़ाइल में, Google की बिल्डस्क्रिप्ट और सभीप्रोजेक्ट, दोनों सेक्शन में Maven रिपॉज़िटरी.

  2. ML Kit दस्तावेज़ स्कैनर लाइब्रेरी के लिए डिपेंडेंसी जोड़ें मॉड्यूल की ऐप्लिकेशन-लेवल की Gradle फ़ाइल, जो आम तौर पर app/build.gradle:

dependencies {
   // …
   implementation 'com.google.android.gms:play-services-mlkit-document-scanner:16.0.0-beta1'
}

Document Scanner का कॉन्फ़िगरेशन

दस्तावेज़ स्कैनर का यूज़र फ़्लो (जिसमें एक खास व्यूफ़ाइंडर स्क्रीन होती है और प्रीव्यू स्क्रीन) का इस्तेमाल SDK टूल से किया जाता है. व्यूफ़ाइंडर और झलक दिखाने वाली स्क्रीन, पसंद के मुताबिक बनाए जा सकने वाले इन कंट्रोल के साथ काम करती है:

  • फ़ोटो गैलरी से आयात करना
  • स्कैन किए गए पेजों की संख्या की सीमा सेट करके
  • स्कैनर मोड (फ़्लो में उपलब्ध सुविधा सेट को कंट्रोल करने के लिए)

स्कैन किए गए दस्तावेज़ों के लिए, 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 का इंस्टेंस. इसके बाद, स्कैनर गतिविधि शुरू की जा सकती है फ़ॉलो किया जा रहा है Activity नतीजे के एपीआई AndroidX में पेश किया गया.

दस्तावेज़ की स्कैनिंग पूरी हो जाने पर, 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 या दोनों) में ही अनुरोध करें ज़रूरत.