اسکنر اسناد با کیت ML در اندروید
از API اسکنر اسناد ML Kit استفاده کنید تا به راحتی یک ویژگی اسکنر اسناد را به برنامه خود اضافه کنید.
ویژگی | جزئیات |
---|---|
نام Sdk | play-services-mlkit-document scanner |
پیاده سازی | مدلها، منطق اسکن و جریان رابط کاربری به صورت پویا توسط سرویسهای Google Play دانلود میشوند. |
تاثیر اندازه برنامه | افزایش حجم دانلود تا 300 کیلوبایت |
زمان اولیه سازی | کاربران ممکن است قبل از اولین استفاده، منتظر بمانند تا مدلها، منطق و جریان رابط کاربری دانلود شوند. |
آن را امتحان کنید
با برنامه نمونه بازی کنید تا نمونه استفاده از این API را ببینید.
قبل از شروع
در فایل
build.gradle
در سطح پروژه خود، مطمئن شوید که مخزن Maven Google را در هر دو بخش buildscript و allprojects خود قرار دهید.وابستگی کتابخانه اسکنر اسناد ML Kit را به فایل gradle سطح برنامه ماژول خود اضافه کنید، که معمولا app/build.gradle است:
dependencies {
// …
implementation 'com.google.android.gms:play-services-mlkit-document-scanner:16.0.0-beta1'
}
پیکربندی اسکنر اسناد
جریان کاربر اسکنر اسناد (که شامل یک صفحه نمایاب اختصاصی و صفحه پیش نمایش است) توسط SDK ارائه می شود. منظره یاب و صفحه پیش نمایش از کنترل های قابل تنظیم زیر پشتیبانی می کند:
- وارد کردن از گالری عکس
- تعیین محدودیت برای تعداد صفحات اسکن شده
- حالت اسکنر (برای کنترل مجموعه ویژگی ها در جریان)
شما می توانید فایل های PDF و JPEG را برای اسناد اسکن شده خود بازیابی کنید.
برای پیکربندی گزینههای اسکنر، GmsDocumentScannerOptions
Instantiate کنید:
کاتلین
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
را دریافت کنید. سپس می توانید فعالیت اسکنر را به دنبال API های Activity Result معرفی شده در AndroidX شروع کنید.
هنگامی که اسکن سند کامل شد، یک شی GmsDocumentScanningResult
به تعداد صفحات اسکن شده، URI تصاویر در فرمت JPEG و PDF بر اساس آنچه از طریق 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، یا هر دو) را که واقعاً نیاز دارید درخواست کنید.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-11-12 بهوقت ساعت هماهنگ جهانی.