অ্যান্ড্রয়েডে এমএল কিট সহ ডকুমেন্ট স্ক্যানার

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

বৈশিষ্ট্য বিস্তারিত
Sdk নাম play-services-mlkit-ডকুমেন্ট-স্ক্যানার
বাস্তবায়ন মডেল, স্ক্যানিং লজিক এবং UI প্রবাহ গতিশীলভাবে Google Play পরিষেবা দ্বারা ডাউনলোড করা হয়।
অ্যাপের আকারের প্রভাব ~300KB ডাউনলোডের আকার বৃদ্ধি।
প্রারম্ভিক সময় ব্যবহারকারীদের প্রথম ব্যবহারের আগে ডাউনলোড করার জন্য মডেল, যুক্তি এবং UI প্রবাহের জন্য অপেক্ষা করতে হতে পারে।

চেষ্টা করে দেখুন

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

আপনি শুরু করার আগে

  1. আপনার প্রকল্প-স্তরের build.gradle ফাইলে, আপনার বিল্ডস্ক্রিপ্ট এবং সমস্ত প্রকল্প উভয় বিভাগেই Google-এর Maven সংগ্রহস্থল অন্তর্ভুক্ত করা নিশ্চিত করুন৷

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

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

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

ডকুমেন্ট স্ক্যানার ইউজার ফ্লো (যাতে একটি ডেডিকেটেড ভিউফাইন্ডার স্ক্রিন এবং প্রিভিউ স্ক্রীন রয়েছে) SDK দ্বারা প্রদান করা হয়েছে। ভিউফাইন্ডার এবং প্রিভিউ স্ক্রীন নিম্নলিখিত কাস্টমাইজযোগ্য নিয়ন্ত্রণগুলিকে সমর্থন করে:

  • ফটো গ্যালারি থেকে আমদানি করা হচ্ছে
  • স্ক্যান করা পৃষ্ঠার সংখ্যার একটি সীমা নির্ধারণ করা
  • স্ক্যানার মোড (প্রবাহে বৈশিষ্ট্য সেট নিয়ন্ত্রণ করতে)

আপনি আপনার স্ক্যান করা নথিগুলির জন্য PDF এবং JPEG উভয় ফাইল পুনরুদ্ধার করতে পারেন।

স্ক্যানার বিকল্পগুলি কনফিগার করতে GmsDocumentScannerOptions ইনস্ট্যান্টিয়েট করুন:

কোটলিন

val options = GmsDocumentScannerOptions.Builder()
    .setGalleryImportAllowed(false)
    .setPageLimit(2)
    .setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF)
    .setScannerMode(SCANNER_MODE_FULL)
    .build()

জাভা

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 APIs অনুসরণ করে স্ক্যানার কার্যকলাপ শুরু করতে পারেন।

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

কোটলিন

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 {
    ...
  }

জাভা

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, বা উভয়) অনুরোধ করুন৷

,

অ্যান্ড্রয়েডে এমএল কিট সহ ডকুমেন্ট স্ক্যানার

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

বৈশিষ্ট্য বিস্তারিত
Sdk নাম play-services-mlkit-ডকুমেন্ট-স্ক্যানার
বাস্তবায়ন মডেল, স্ক্যানিং লজিক এবং UI প্রবাহ গতিশীলভাবে Google Play পরিষেবা দ্বারা ডাউনলোড করা হয়।
অ্যাপের আকারের প্রভাব ~300KB ডাউনলোডের আকার বৃদ্ধি।
প্রারম্ভিক সময় ব্যবহারকারীদের প্রথম ব্যবহারের আগে ডাউনলোড করার জন্য মডেল, যুক্তি এবং UI প্রবাহের জন্য অপেক্ষা করতে হতে পারে।

চেষ্টা করে দেখুন

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

আপনি শুরু করার আগে

  1. আপনার প্রকল্প-স্তরের build.gradle ফাইলে, আপনার বিল্ডস্ক্রিপ্ট এবং সমস্ত প্রকল্প উভয় বিভাগেই Google-এর Maven সংগ্রহস্থল অন্তর্ভুক্ত করা নিশ্চিত করুন৷

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

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

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

ডকুমেন্ট স্ক্যানার ইউজার ফ্লো (যাতে একটি ডেডিকেটেড ভিউফাইন্ডার স্ক্রিন এবং প্রিভিউ স্ক্রীন রয়েছে) SDK দ্বারা প্রদান করা হয়েছে। ভিউফাইন্ডার এবং প্রিভিউ স্ক্রীন নিম্নলিখিত কাস্টমাইজযোগ্য নিয়ন্ত্রণগুলিকে সমর্থন করে:

  • ফটো গ্যালারি থেকে আমদানি করা হচ্ছে
  • স্ক্যান করা পৃষ্ঠার সংখ্যার একটি সীমা নির্ধারণ করা
  • স্ক্যানার মোড (প্রবাহে বৈশিষ্ট্য সেট নিয়ন্ত্রণ করতে)

আপনি আপনার স্ক্যান করা নথিগুলির জন্য PDF এবং JPEG উভয় ফাইল পুনরুদ্ধার করতে পারেন।

স্ক্যানার বিকল্পগুলি কনফিগার করতে GmsDocumentScannerOptions ইনস্ট্যান্টিয়েট করুন:

কোটলিন

val options = GmsDocumentScannerOptions.Builder()
    .setGalleryImportAllowed(false)
    .setPageLimit(2)
    .setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF)
    .setScannerMode(SCANNER_MODE_FULL)
    .build()

জাভা

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 APIs অনুসরণ করে স্ক্যানার কার্যকলাপ শুরু করতে পারেন।

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

কোটলিন

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 {
    ...
  }

জাভা

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, বা উভয়) অনুরোধ করুন৷