Android-এ ML Kit-এর মাধ্যমে ডকুমেন্ট স্ক্যানার

আপনার অ্যাপে সহজেই ডকুমেন্ট স্ক্যানার ফিচার যোগ করতে ML Kit ডকুমেন্ট স্ক্যানার API ব্যবহার করুন।

ফিচার বিবরণ
Sdk-এর নাম play-services-mlkit-document-scanner
প্রয়োগ মডেল, স্ক্যানিং লজিক ও UI ফ্লো Google Play পরিষেবার মাধ্যমে ডায়নামিক ডাউনলোড করা হয়।
অ্যাপের সাইজের প্রভাব ডাউনলোড সাইজ প্রায় ৩০০ কেবি বেড়ে যায়।
ইনিশিয়ালাইজ করার সময় প্রথমবার ব্যবহারের আগে ব্যবহারকারীদের মডেল, লজিক ও UI ফ্লো ডাউনলোড হওয়ার জন্য অপেক্ষা করতে হতে পারে।

এটি ব্যবহার করে দেখুন

এই API-এর ব্যবহারিক উদাহরণ দেখতে স্যাম্পেল অ্যাপ নিয়ে এক্সপেরিমেন্ট করুন।

শুরু করার আগে

  1. আপনার প্রোজেক্ট-লেভেল build.gradle ফাইলে, আপনার বিল্ডস্ক্রিপ্ট ও অলপ্রোজেক্ট, দুটি বিভাগেই Google-এর Maven রিপোজিটরি অন্তর্ভুক্ত করতে ভুলবেন না।

  2. আপনার মডিউলের অ্যাপ-লেভেল গ্রেডেল ফাইলে ML Kit ডকুমেন্ট স্ক্যানার লাইব্রেরির জন্য ডিপেন্ডেন্সি যোগ করুন, যা সাধারণত app/build.gradle:

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

ডকুমেন্ট স্ক্যানারের কনফিগারেশন

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-এর একটি ইনস্ট্যান্স পান। আপনি তারপর AndroidX-এ পরিচয় করানো অ্যাক্টিভিটি রেজাল্ট API অনুসরণ করে স্ক্যানার অ্যাক্টিভিটি শুরু করতে পারবেন।

ডকুমেন্ট স্ক্যান করা সম্পূর্ণ হলে, GmsDocumentScanningResult অবজেক্ট স্ক্যান করা পৃষ্ঠার সংখ্যা, JPEG ফর্ম্যাটে ছবির URI এবং setResultFormats-এর মাধ্যমে যা সংজ্ঞায়িত করা হয়েছে সেই অনুযায়ী PDF-এ অ্যাক্সেস দেবে:

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, বা দুটিই) অনুরোধ করুন যেগুলি আপনার প্রকৃতপক্ষে প্রয়োজন।