Описание
Используйте API chrome.documentScan для обнаружения и получения изображений с подключенных сканеров документов.
API сканирования документов предназначен для того, чтобы приложения и расширения могли просматривать содержимое бумажных документов на подключенном сканере документов.
Разрешения
documentScanДоступность
Понятия и применение
Этот API поддерживает два способа сканирования документов. Если ваш сценарий использования может работать с любым сканером и не требует управления конфигурацией, используйте метод scan() . Более сложные сценарии использования требуют комбинации методов, которые поддерживаются только в Chrome 124 и более поздних версиях.
Простое сканирование
Для простых случаев использования, то есть тех, которые могут работать с любым сканером и не требуют управления конфигурацией, вызовите scan() . Этот метод принимает объект ScanOptions и возвращает Promise, который разрешается объектом ScanResults . Возможности этого параметра ограничены количеством сканирований и типами MIME, которые будут приниматься вызывающей стороной. Результаты сканирований возвращаются в виде URL-адресов для отображения в теге <img> для пользовательского интерфейса.
Комплексное сканирование
Сложное сканирование выполняется в три этапа, как описано в этом разделе. Данный план не описывает каждый аргумент метода или каждое свойство, возвращаемое в ответе. Он предназначен лишь для общего ознакомления с написанием кода для сканирования.
Открытие
Вызовите
getScannerList(). Доступные сканеры возвращаются в виде промиса, который разрешается с помощьюGetScannerListResponse.- Объект ответа содержит массив объектов
ScannerInfo. - Массив может содержать несколько записей для одного сканера, если этот сканер поддерживает несколько протоколов или методов подключения.
- Объект ответа содержит массив объектов
Выберите сканер из возвращенного массива и сохраните значение его свойства
scannerId.Используйте свойства отдельных объектов
ScannerInfo, чтобы различать несколько объектов одного и того же сканера. Объекты одного и того же сканера будут иметь одинаковое значение свойстваdeviceUuid.ScannerInfoтакже содержит свойствоimageFormats, содержащее массив поддерживаемых типов изображений.
Конфигурация сканера
Вызовите
openScanner(), передав в качестве параметра сохраненный идентификатор сканера. Он вернет Promise, который разрешается с помощью объектаOpenScannerResponse. Объект ответа содержит:Свойство
scannerHandle, которое вам понадобится для сохранения.Свойство options содержит параметры, специфичные для сканера, которые вам необходимо установить. Дополнительную информацию см. в разделе «Получение параметров сканера».
(Необязательно) Если пользователю необходимо указать значения для параметров сканера, создайте пользовательский интерфейс. Вам понадобятся параметры сканера, предоставленные на предыдущем шаге, а также группы параметров, предоставленные сканером. Дополнительную информацию см. в разделе «Создание пользовательского интерфейса» .
Создайте массив объектов
OptionSetting, используя программные или предоставленные пользователем значения. Дополнительную информацию см. в разделе «Установка параметров сканера».Передайте массив объектов
OptionSettingвsetOptions(), чтобы установить параметры сканера. Он возвращает Promise, который разрешается с помощьюSetOptionsResponse. Этот объект содержит обновленную версию параметров сканера, полученных на шаге 1 настройки сканера.Поскольку изменение одного параметра может повлиять на ограничения другого параметра, вам может потребоваться повторить эти шаги несколько раз.
Сканирование
Создайте объект
StartScanOptionsи передайте его вstartScan(). Он вернет Promise, который разрешается объектомStartScanResponse. Свойствоjobпредставляет собой дескриптор, который вы будете использовать либо для чтения данных сканирования, либо для отмены сканирования.Передайте дескриптор задания в
readScanData(). Он возвращает Promise, который разрешается объектомReadScanDataResponse. Если данные были успешно прочитаны, свойствоresultравноSUCCESS, а свойствоdataсодержитArrayBufferс частью результатов сканирования. Обратите внимание, чтоestimatedCompletionсодержит приблизительный процент от общего объема данных, которые были доставлены к настоящему моменту.Повторяйте предыдущий шаг до тех пор, пока свойство
resultне станет равнымEOFили не возникнет ошибка.
По завершении сканирования вызовите closeScanner() , используя дескриптор сканера, сохраненный на шаге 3. Он вернет Promise, который разрешается с помощью CloseScannerResponse . Вызов метода cancelScan() в любое время после создания задания завершит сканирование.
Объекты ответа
Все методы возвращают Promise, который разрешается с объектом ответа какого-либо типа. Большинство из них содержат свойство result , значение которого является членом класса OperationResult . Некоторые свойства объектов ответа не будут содержать значений, если значение result не имеет определенного значения. Эти взаимосвязи описаны в справочнике для каждого объекта ответа.
Например, OpenScannerResponse.scannerHandle будет иметь значение только тогда, когда OpenScannerResponse.result равен SUCCESS .
Параметры сканера
Параметры сканера значительно различаются в зависимости от устройства. Следовательно, невозможно напрямую отобразить параметры сканера в API documentScan. Чтобы обойти это ограничение, OpenScannerResponse (получаемый с помощью openScanner() ) и SetOptionsResponse (объект ответа для setOptions() ) содержат свойство options , представляющее собой объект, содержащий параметры, специфичные для сканера. Каждый параметр представляет собой сопоставление ключ-значение, где ключом является параметр, специфичный для устройства, а значением — экземпляр ScannerOption .
В целом, структура выглядит примерно так:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Например, представьте себе сканер, который возвращает параметры с именами «источник» и «разрешение». Структура возвращаемого объекта options будет выглядеть примерно так, как в следующем примере. Для простоты показаны только частичные ответы ScannerOption .
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Создайте пользовательский интерфейс.
Хотя использование этого API не является обязательным, вы можете захотеть, чтобы пользователь выбирал значение для определенного параметра. Для этого необходим пользовательский интерфейс. Используйте объект OpenScannerResponse (открываемый функцией openScanner() ), чтобы получить параметры подключенного сканера, как описано в предыдущем разделе.
Некоторые сканеры группируют параметры в соответствии со спецификой устройства. Это не влияет на поведение параметров, но поскольку эти группы могут упоминаться в документации к сканеру, их следует показывать пользователю. Получить эти группы можно, вызвав метод getOptionGroups() . Он возвращает `Promise`, который разрешается объектом ` GetOptionGroupsResponse . Его свойство groups содержит массив групп, специфичный для данного сканера. Используйте информацию из этих групп для организации параметров в ` OpenScannerResponse для отображения.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Как указано в разделе «Конфигурация сканера», изменение одного параметра может изменить ограничения для другого параметра. Именно поэтому setOptionsResponse (объект ответа для setOptions() ) содержит еще одно свойство options . Используйте его для обновления пользовательского интерфейса. Затем повторяйте по мере необходимости, пока не будут установлены все параметры.
Настройте параметры сканера
Задайте параметры сканера, передав массив объектов OptionSetting в функцию setOptions() . Пример см. в разделе «Сканирование одной страницы формата Letter» .
Примеры
Получить страницу в виде двоичного объекта (blob).
В этом примере показан один из способов получения страницы со сканера в виде двоичных данных (blob) и продемонстрировано использование функций startScan() и readScanData() со значением OperationResult .
async function pageAsBlob(handle) {
let response = await chrome.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != chrome.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await chrome.documentScan.readScanData(job);
while (response.result == chrome.documentScan.OperationResult.SUCCESS) {
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
} else {
// Delay so hardware can make progress.
await new Promise(r => setTimeout(r, 100));
}
response = await chrome.documentScan.readScanData(job);
}
if (response.result != chrome.documentScan.OperationResult.EOF) {
return null;
}
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
}
return new Blob(imgParts, { type: "image/jpeg" });
}
Отсканируйте одну страницу формата A4.
В этом примере показано, как выбрать сканер, установить его параметры и открыть его. Затем он извлекает содержимое одной страницы и закрывает сканер. В этом процессе демонстрируется использование getScannerList() , openScanner() , setOptions() и closeScanner() . Обратите внимание, что содержимое страницы извлекается путем вызова функции pageAsBlob() из предыдущего примера.
async function scan() {
let response = await chrome.documentScan.getScannerList({ secure: true });
let scanner = await chrome.documentScan.openScanner(
response.scanners[0].scannerId);
const handle = scanner.scannerHandle;
let options = [];
for (source of scanner.options["source"].constraint.list) {
if (source.includes("ADF")) {
options.push({
name: "source",
type: chrome.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: chrome.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: chrome.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: chrome.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: chrome.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await chrome.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await chrome.documentScan.closeScanner(handle);
}
Показать конфигурацию
Как уже говорилось ранее, для отображения пользователю параметров конфигурации сканера необходимо вызывать getOptionGroups() в дополнение к параметрам сканера, возвращаемым вызовом метода openScanner() . Это необходимо для того, чтобы параметры отображались пользователям в группах, определенных производителем. В этом примере показано, как это сделать.
async function showConfig() {
let response = await chrome.documentScan.getScannerList({ secure: true });
let scanner = await chrome.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await chrome.documentScan.getOptionGroups(scanner.scannerHandle);
for (const group of groups.groups) {
console.log("=== " + group.title + " ===");
for (const member of group.members) {
const option = scanner.options[member];
if (option.isActive) {
console.log(" " + option.name + " = " + option.value);
} else {
console.log(" " + option.name + " is inactive");
}
}
}
}
Типы
CancelScanResponse
Характеристики
- работа
нить
Предоставляет тот же дескриптор задания, который был передан в
cancelScan(). - результат
Результат отмены сканирования на стороне бэкэнда. Если результат равен
OperationResult.SUCCESSилиOperationResult.CANCELLED, сканирование отменено, и сканер готов начать новое сканирование. Если результат равенOperationResult.DEVICE_BUSY, сканер все еще обрабатывает запрошенную отмену; вызывающей стороне следует немного подождать и повторить запрос. Другие значения результата указывают на необратимую ошибку, которую не следует повторять.
CloseScannerResponse
Характеристики
- результат
Результат закрытия сканера. Даже если это значение не равно
SUCCESS, дескриптор будет недействительным и не должен использоваться для каких-либо дальнейших операций. - scannerHandle
нить
Тот же дескриптор сканера, который был передан функции
closeScanner.
Configurability
Как можно изменить тот или иной параметр.
Перечисление
"НЕ_НАСТРАИВАЕМО" "SOFTWARE_CONFIGURABLE" "НАСТРАИВАЕМОЕ ОБОРУДОВАНИЕ"
Данная опция доступна только для чтения.
Этот параметр можно настроить в программном обеспечении.
Этот параметр пользователь может установить, включив или нажав кнопку на сканере.
ConnectionType
Указывает, как сканер подключен к компьютеру.
Перечисление
«НЕ УКАЗАНО» "USB" "СЕТЬ"
Перечисление
"INT_RANGE" "FIXED_RANGE" "INT_LIST" "FIXED_LIST" "STRING_LIST"
Ограничение на диапазон значений OptionType.INT . Свойства min , max и quant объекта OptionConstraint будут иметь long , а свойство list будет не задано.
Ограничение на диапазон значений OptionType.FIXED . Свойства min , max и quant объекта OptionConstraint будут иметь double , а свойство list будет не задано.
Ограничение на определенный список значений типа OptionType.INT . Свойство OptionConstraint.list будет содержать значения long , а остальные свойства останутся незаданными.
Ограничение на определенный список значений OptionType.FIXED . Свойство OptionConstraint.list будет содержать значения double , а остальные свойства будут не заданы.
Ограничение на определенный список значений OptionType.STRING . Свойство OptionConstraint.list будет содержать значения DOMString , а остальные свойства останутся незаданными.
DeviceFilter
Характеристики
- местный
логический необязательный
Возвращайте только те сканеры, которые напрямую подключены к компьютеру.
- безопасный
логический необязательный
Возвращайте только сканеры, использующие защищенный канал передачи данных, например USB или TLS.
GetOptionGroupsResponse
Характеристики
- группы
OptionGroup [] необязательный
Если
result—SUCCESS, предоставляется список групп параметров в порядке, указанном драйвером сканера. - результат
Результат получения параметров groups. Если значение параметра равно
SUCCESS, свойствоgroupsбудет заполнено. - scannerHandle
нить
Тот же дескриптор сканера, который был передан в
getOptionGroups.
GetScannerListResponse
Характеристики
- результат
Результат перечисления. Обратите внимание, что могут быть возвращены частичные результаты, даже если это указывает на ошибку.
- сканеры
ScannerInfo []
Список сканеров, соответствующих заданному параметру
DeviceFilter, может быть пустым.
OpenScannerResponse
Характеристики
- параметры
объект необязательный
Если
resultравенSUCCESS, предоставляется сопоставление ключ-значение, где ключом является параметр, специфичный для устройства, а значением — экземпляр объектаScannerOption. - результат
Результат открытия сканера. Если значение параметра равно
SUCCESS, будут заполнены свойстваscannerHandleиoptions. - scannerHandle
строка необязательный
Если
result—SUCCESS, то передается дескриптор сканера, который можно использовать для дальнейших операций. - scannerId
нить
Идентификатор сканера, переданный в функцию
openScanner().
OperationResult
Перечисление, указывающее результат каждой операции.
Перечисление
"НЕИЗВЕСТНЫЙ" "УСПЕХ" "НЕ ПОДДЕРЖИВАЕТСЯ" «ОТМЕНЕНО» "УСТРОЙСТВО_ЗАНЯТО" "НЕВЕРНЫЙ" "НЕПРАВИЛЬНЫЙ_ТИП" "EOF" "ADF_JAMMED" "ADF_EMPTY" "COVER_OPEN" "IO_ERROR" "ДОСТУП ЗАПРЕЩЕН" "НЕТ_ПАМЯТИ" "Недостижимо" "ОТСУТСТВУЮЩИЙ" "ВНУТРЕННЯЯ_ОШИБКА"
Произошла неизвестная или общая ошибка.
Операция прошла успешно.
Данная операция не поддерживается.
Операция была отменена.
Устройство занято.
Либо данные, либо аргумент, переданный методу, недействительны.
Предоставленное значение имеет неверный тип данных для базового параметра.
Дополнительные данные отсутствуют.
Устройство подачи документов заклинило.
Устройство подачи документов пусто.
Крышка платформы открыта.
Произошла ошибка при обмене данными с устройством.
Для работы устройства требуется аутентификация.
На Chromebook недостаточно памяти для завершения операции.
Устройство недоступно.
Устройство отключено.
Ошибка произошла не в вызывающем приложении, а в другом месте.
OptionConstraint
Характеристики
- список
строка[] | число[] необязательно
- макс
число необязательно
- мин
число необязательно
- квант
число необязательно
- тип
OptionGroup
Характеристики
- члены
нить[]
Массив названий опций в порядке, предоставленном драйвером.
- заголовок
нить
Предоставляет заголовок для печати, например, «Параметры геометрии».
OptionSetting
Характеристики
- имя
нить
Указывает название параметра, который необходимо установить.
- тип
Указывает тип данных опциона. Запрашиваемый тип данных должен соответствовать реальному типу данных базового опциона.
- ценить
строка | число | логическое значение | массив чисел ( необязательно )
Указывает значение для установки. Оставьте значение пустым, чтобы запросить автоматическую установку для параметров, для которых включена
autoSettable. Тип данных, указанный дляvalueдолжен соответствоватьtype.
OptionType
Тип данных опциона.
Перечисление
"НЕИЗВЕСТНЫЙ" "БУЛ" "INT" "ЗАФИКСИРОВАННЫЙ" "НИТЬ" "КНОПКА" "ГРУППА"
Тип данных параметра неизвестен. Свойство value не будет установлено.
value свойства будет иметь одно из true или false.
32-битное знаковое целое число. Свойство value будет иметь тип long или long[], в зависимости от того, принимает ли опция более одного значения.
Значение типа double в диапазоне от -32768 до 32767,9999 с разрешением 1/65535. Свойство value будет иметь значение double или double[] в зависимости от того, принимает ли опция более одного значения. Значения типа double, которые не могут быть точно представлены, будут округлены до доступного диапазона и точности.
Последовательность любых байтов, кроме NUL ('\0'). Свойство value будет представлять собой DOMString.
Параметр такого типа не имеет значения. Вместо этого установка параметра такого типа вызывает побочный эффект, специфичный для данного параметра, в драйвере сканера. Например, параметр, вызываемый кнопкой, может использоваться драйвером сканера для выбора значений по умолчанию или для управления автоматическим податчиком документов при переходе к следующему листу бумаги.
Параметр группировки. Нет значения. Этот параметр включен для совместимости, но обычно не возвращается в значениях ScannerOption . Используйте getOptionGroups() для получения списка групп с их параметрами-членами.
Перечисление
«БЕЗ ЕДИНИЦ» "ПИКСЕЛЬ" "КУСОЧЕК" "ММ" "DPI" "ПРОЦЕНТ" "МИКРОСЕКУНТ"
Значение представляет собой безразмерное число. Например, это может быть пороговое значение.
Значение представляет собой количество пикселей, например, размеры сканирования.
Значение представляет собой количество бит, например, глубину цвета.
Значение измеряется в миллиметрах, например, размеры сканирования.
Значение измеряется в точках на дюйм, например, разрешение.
Значение указывается в процентах, например, яркость.
Значение измеряется в микросекундах, например, время экспозиции.
ReadScanDataResponse
Характеристики
- данные
ArrayBuffer ( необязательно)
Если
resultравенSUCCESS, содержит следующий фрагмент отсканированных данных изображения. ЕслиresultравенEOF, содержит последний фрагмент отсканированных данных изображения. - оценочная завершенность
число необязательно
Если
result—SUCCESS, то указывается приблизительное количество уже переданных данных сканирования, в диапазоне от 0 до 100. - работа
нить
Предоставляет дескриптор задания, переданный в функцию
readScanData(). - результат
Результат чтения данных. Если его значение равно
SUCCESS, тоdataсодержат следующий (возможно, нулевой) фрагмент данных изображения, готовый к чтению. Если его значение равноEOF, тоdataсодержат последний фрагмент данных изображения.
ScannerInfo
Характеристики
- тип соединения
Указывает, как сканер подключен к компьютеру.
- deviceUuid
нить
Для сопоставления с другими записями
ScannerInfo, указывающими на то же физическое устройство. - форматы изображений
нить[]
Массив MIME-типов, которые можно запросить для возвращаемых результатов сканирования.
- производитель
нить
Производитель сканера.
- модель
нить
Укажите модель сканера (если она известна) или её общее описание.
- имя
нить
Удобочитаемое имя сканера для отображения в пользовательском интерфейсе.
- protocolType
нить
Удобочитаемое описание протокола или драйвера, используемого для доступа к сканеру, например, Mopria, WSD или epsonds. Это в первую очередь полезно для того, чтобы пользователь мог выбирать между протоколами, если устройство поддерживает несколько протоколов.
- scannerId
нить
Идентификатор конкретного сканера.
- безопасный
логический
Если это так, то передача данных через сканирующее соединение не может быть перехвачена пассивным слушателем, таким как TLS или USB.
ScannerOption
Характеристики
- настраиваемость
Указывает, можно ли изменить этот параметр и каким образом.
- ограничение
OptionConstraint optional
Определяет
OptionConstraintдля текущей опции сканера. - описание
нить
Более подробное описание варианта.
- isActive
логический
Указывает, что опция активна и может быть установлена или получена. Если значение равно false, свойство
valueне будет установлено. - isAdvanced
логический
Указывает, что пользовательский интерфейс не должен отображать эту опцию по умолчанию.
- isAutoSettable
логический
Может быть установлено автоматически драйвером сканера.
- isDetectable
логический
Указывает на то, что данная опция может быть обнаружена программным обеспечением.
- isEmulated
логический
Если это так, то эмулируется драйвером сканера.
- имя
нить
Название параметра, написанное строчными буквами ASCII, цифрами и дефисами. Диакритические знаки не допускаются.
- заголовок
нить
Заголовок в одну строку, который можно распечатать.
- тип
Тип данных, содержащийся в свойстве
value, необходимый для установки этого параметра. - единица
Единица измерения для данного варианта.
- ценить
строка | число | логическое значение | массив чисел ( необязательно )
Текущее значение параметра, если применимо. Обратите внимание, что тип данных этого свойства должен соответствовать типу данных, указанному в
type.
ScanOptions
Характеристики
- maxImages
число необязательно
Допустимое количество отсканированных изображений. По умолчанию — 1.
- mimeTypes
строка[] необязательный
MIME-типы, принимаемые вызывающей стороной.
ScanResults
Характеристики
- dataUrls
нить[]
Массив URL-адресов изображений в формате, который можно передать в качестве значения "src" тегу изображения.
- mimeType
нить
MIME-тип данных
dataUrls.
SetOptionResult
Характеристики
- имя
нить
Указывает название выбранной опции.
- результат
Указывает результат установки параметра.
SetOptionsResponse
Характеристики
- параметры
объект необязательный
Обновленное сопоставление ключ-значение имен параметров со значениями
ScannerOption, содержащее новую конфигурацию после попытки установить все предоставленные параметры. Оно имеет ту же структуру, что и свойствоoptionsвOpenScannerResponse.Это свойство будет установлено, даже если некоторые параметры не были установлены успешно, но будет снято с установки, если получение обновленной конфигурации не удастся (например, если сканер отключится в процессе сканирования).
- результаты
Массив результатов, по одному для каждого переданного параметра
OptionSetting. - scannerHandle
нить
Предоставляет дескриптор сканера, переданный в функцию
setOptions().
StartScanOptions
Характеристики
- формат
нить
Указывает MIME-тип, в котором следует возвращать отсканированные данные.
- maxReadSize
число необязательно
Если указано ненулевое значение, максимальное количество сканируемых байтов, возвращаемых в одном ответе
readScanData, ограничивается этим значением. Наименьшее допустимое значение — 32768 (32 КБ). Если это свойство не указано, размер возвращаемого фрагмента может быть равен размеру всего сканированного изображения.
StartScanResponse
Характеристики
- работа
строка необязательный
Если
result—SUCCESS, предоставляется дескриптор, который можно использовать для чтения данных сканирования или отмены задания. - результат
Результат запуска сканирования. Если значение этого параметра равно
SUCCESS, свойствоjobбудет заполнено. - scannerHandle
нить
Предоставляет тот же дескриптор сканера, который был передан в
startScan().
Методы
cancelScan()
chrome.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
Отменяет начатое сканирование и возвращает Promise, который разрешается с объектом CancelScanResponse . Если используется функция обратного вызова, объект передается ей.
Параметры
- работа
нить
Дескриптор активного задания сканирования, ранее возвращенный при вызове функции
startScan.
Возвраты
Promise< CancelScanResponse >
Возвращает промис, который разрешается с результатом.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
Закрывает сканер, передав дескриптор, и возвращает Promise, который разрешается объектом CloseScannerResponse . Если используется коллбэк, объект передается ему. Даже если ответ не является успешным, предоставленный дескриптор становится недействительным и не должен использоваться для дальнейших операций.
Параметры
- scannerHandle
нить
Указывает дескриптор открытого сканера, который был ранее возвращен в результате вызова функции
openScanner.
Возвраты
Promise< CloseScannerResponse >
Возвращает промис, который разрешается с результатом.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
Получает имена групп и параметры участников из сканера, ранее открытого с помощью openScanner . Этот метод возвращает Promise, который разрешается с объектом GetOptionGroupsResponse . Если в эту функцию передан обратный вызов, вместо него передаются возвращаемые данные.
Параметры
- scannerHandle
нить
Дескриптор открытого сканера, возвращаемый вызовом функции
openScanner.
Возвраты
Promise< GetOptionGroupsResponse >
Возвращает промис, который разрешается с результатом.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
Получает список доступных сканеров и возвращает Promise, который разрешается с объектом GetScannerListResponse . Если в эту функцию передан коллбэк, вместо него ей передаются возвращаемые данные.
Параметры
- фильтр
Объект
DeviceFilterуказывающий, какие типы сканеров следует возвращать.
Возвраты
Promise< GetScannerListResponse >
Возвращает промис, который разрешается с результатом и списком сканеров.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Открывает сканер для эксклюзивного доступа и возвращает Promise, который разрешается объектом OpenScannerResponse . Если в эту функцию передан обратный вызов, вместо него передаются возвращаемые данные.
Параметры
- scannerId
нить
Идентификатор сканера, который нужно открыть. Это значение возвращается из предыдущего вызова функции
getScannerList.
Возвраты
Promise< OpenScannerResponse >
Возвращает промис, который разрешается с результатом.
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
Считывает следующий фрагмент доступных данных изображения из активного дескриптора задания и возвращает Promise, который разрешается объектом ReadScanDataResponse . Если используется функция обратного вызова, объект передается ей.
**Примечание:** Допустимым результатом ответа является SUCCESS при нулевой длине data . Это означает, что сканер все еще работает, но еще не располагает дополнительными данными. Вызывающей стороне следует немного подождать и повторить попытку.
После завершения сканирования ответ будет содержать значение EOF . Этот ответ может содержать последний ненулевой элемент data .
Параметры
- работа
нить
Активный дескриптор задания, ранее возвращенный функцией
startScan.
Возвраты
Promise< ReadScanDataResponse >
Возвращает промис, который разрешается с результатом.
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
Выполняет сканирование документа и возвращает Promise, который разрешается объектом ScanResults . Если в эту функцию передан обратный вызов, вместо него передаются возвращенные данные.
Параметры
- параметры
Объект, содержащий параметры сканирования.
Возвраты
Promise< ScanResults >
Chrome 96+Возвращает промис, который разрешается с результатами сканирования.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
Устанавливает параметры для указанного сканера и возвращает Promise, который разрешается объектом SetOptionsResponse содержащим результат попытки установить каждое значение в порядке, указанном в переданном объекте OptionSetting . Если используется функция обратного вызова, объект передается ей.
Параметры
- scannerHandle
нить
Дескриптор сканера, для которого необходимо установить параметры. Это должно быть значение, ранее возвращенное вызовом функции
openScanner. - параметры
Список объектов
OptionSetting, которые будут применены к сканеру.
Возвраты
Promise <SetOptionsResponse>
Возвращает промис, который разрешается с результатом.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Запускает сканирование на указанном сканере и возвращает Promise, который разрешается с помощью StartScanResponse . Если используется коллбэк, объект передается ему. Если вызов был успешным, ответ содержит дескриптор задания, который можно использовать в последующих вызовах для чтения данных сканирования или отмены сканирования.
Параметры
- scannerHandle
нить
Дескриптор открытого сканера. Это должно быть значение, ранее возвращенное при вызове функции
openScanner. - параметры
Объект
StartScanOptions, указывающий параметры, используемые для сканирования. СвойствоStartScanOptions.formatдолжно соответствовать одной из записей, возвращаемых вScannerInfoсканера.
Возвраты
Promise< StartScanResponse >
Возвращает промис, который разрешается с результатом.