Сканер документов с ML Kit на Android
Используйте API сканера документов ML Kit, чтобы легко добавить функцию сканирования документов в ваше приложение.
Особенность | Подробности |
---|---|
Имя SDK | play-services-mlkit-сканер документов |
Выполнение | Модели, логика сканирования и поток пользовательского интерфейса динамически загружаются сервисами Google Play. |
Влияние размера приложения | Увеличение размера загрузки примерно на 300 КБ. |
Время инициализации | Пользователям, возможно, придется подождать загрузки моделей, логики и пользовательского интерфейса перед первым использованием. |
Попробуйте это
Поэкспериментируйте с примером приложения , чтобы увидеть пример использования этого API.
Прежде чем начать
В файле
build.gradle
на уровне проекта обязательно включите репозиторий Google Maven как в разделы buildscript, так и в разделы allprojects.Добавьте зависимость для библиотеки сканера документов ML Kit в файл градиента уровня приложения вашего модуля, который обычно имеет вид 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
. Затем вы можете запустить действие сканера, используя API результатов активности , представленные в 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 "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-08-20 UTC.