Описание
Используйте chrome.documentScan API, чтобы находить и получать изображения с подключенных сканеров документов.
Document Scan API позволяет приложениям и расширениям просматривать содержимое бумажных документов на подключенном сканере документов.
Разрешения
documentScanДоступность
Основные понятия и использование
Этот API поддерживает два способа сканирования документов. Если для вашего сценария подходит любой сканер и не требуется управление конфигурацией, используйте метод scan(). В более сложных случаях требуется сочетание методов, которые поддерживаются только в Chrome 124 и более поздних версиях.
Простое сканирование
Для простых случаев, когда можно использовать любой сканер и не требуется управлять конфигурацией, вызовите scan(). Этот метод принимает объект ScanOptions и возвращает объект Promise, который разрешается с помощью объекта ScanResults. Возможности этого варианта ограничены количеством сканирований и MIME-типами, которые будут приняты вызывающим абонентом. Результаты сканирования возвращаются в виде URL, которые можно показывать в теге <img> в пользовательском интерфейсе.
Сложное сканирование
Сложное сканирование выполняется в три этапа, описанных в этом разделе. В этом описании не указаны все аргументы методов и все свойства, возвращаемые в ответе. Оно предназначено только для того, чтобы дать вам общее представление о написании кода сканера.
Discovery
Позвоните по номеру
getScannerList(). Доступные сканеры возвращаются в Promise, который разрешается с помощью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.
Параметры сканера
Настройки сканера могут значительно различаться в зависимости от устройства. Поэтому отразить настройки сканера непосредственно в documentScan API невозможно. Чтобы обойти это ограничение, OpenScannerResponse (полученный с помощью openScanner()) и SetOptionsResponse (объект ответа для setOptions()) содержат свойство options, которое является объектом, содержащим параметры, специфичные для сканера. Каждый параметр представляет собой сопоставление ключ-значение, где ключ – это параметр, относящийся к устройству, а значение – экземпляр ScannerOption.
Обычно структура выглядит следующим образом:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Например, сканер возвращает параметры с названиями "source" и "resolution". Структура возвращаемого объекта 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.
Примеры
Получение страницы в виде большого двоичного объекта
В этом примере показано, как получить страницу со сканера в виде большого двоичного объекта, а также как использовать startScan() и readScanData() со значением OperationResult.
async function pageAsBlob(handle) {
let response = await browser.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != browser.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await browser.documentScan.readScanData(job);
while (response.result == browser.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 browser.documentScan.readScanData(job);
}
if (response.result != browser.documentScan.OperationResult.EOF) {
return null;
}
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
}
return new Blob(imgParts, { type: "image/jpeg" });
}
Сканировать одну страницу формата Letter
В этом примере показано, как выбрать сканер, задать его параметры и открыть его. Затем он извлекает содержимое одной страницы и закрывает сканер. В этом примере используются getScannerList(), openScanner(), setOptions() и closeScanner(). Обратите внимание, что содержимое страницы извлекается путем вызова функции pageAsBlob() из предыдущего примера.
async function scan() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.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: browser.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: browser.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: browser.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await browser.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await browser.documentScan.closeScanner(handle);
}
Показать конфигурацию
Как уже говорилось, чтобы показать пользователю параметры конфигурации сканера, необходимо вызвать getOptionGroups() в дополнение к параметрам сканера, возвращенным из вызова openScanner(). Это нужно, чтобы показывать пользователям варианты в группах, определенных производителем. В примере ниже показано, как это сделать.
async function showConfig() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await browser.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
Свойства
-
работа
string
Предоставляет тот же дескриптор задания, который был передан в
cancelScan(). -
Результат
Результат отмены сканирования. Если результат –
OperationResult.SUCCESSилиOperationResult.CANCELLED, сканирование отменено и сканер готов к новому сканированию. Если результат –OperationResult.DEVICE_BUSY, сканер все ещё обрабатывает запрос на отмену. Подождите немного и повторите попытку. Другие значения указывают на постоянную ошибку, при которой не следует повторять попытку.
CloseScannerResponse
Свойства
-
Результат
Результат закрытия сканера. Даже если это значение не равно
SUCCESS, дескриптор будет недействительным и не должен использоваться для дальнейших операций. -
scannerHandle
string
Тот же дескриптор сканера, который был передан в
closeScanner.
Configurability
Как можно изменить вариант.
Перечисление
"NOT_CONFIGURABLE"
Параметр доступен только для чтения.
SOFTWARE_CONFIGURABLE
Параметр можно задать в программном обеспечении.
"HARDWARE_CONFIGURABLE"
Пользователь может задать параметр, нажав кнопку на сканере.
ConnectionType
Указывает, как сканер подключен к компьютеру.
Перечисление
"UNSPECIFIED"
USB
"NETWORK"
ConstraintType
Тип данных ограничения, представленный OptionConstraint.
Перечисление
"INT_RANGE"
Ограничение на диапазон значений OptionType.INT. Свойства min, max и quant объекта OptionConstraint будут иметь значение long, а свойство list не будет задано.
"FIXED_RANGE"
Ограничение на диапазон значений OptionType.FIXED. Свойства min, max и quant объекта OptionConstraint будут иметь значение double, а свойство list не будет задано.
"INT_LIST"
Ограничение на определенный список значений OptionType.INT. Свойство OptionConstraint.list будет содержать значения long, а другие свойства не будут заданы.
"FIXED_LIST"
Ограничение на определенный список значений OptionType.FIXED. Свойство OptionConstraint.list будет содержать значения double, а другие свойства не будут заданы.
"STRING_LIST"
Ограничение на определенный список значений OptionType.STRING. Свойство OptionConstraint.list будет содержать значения DOMString, а другие свойства не будут заданы.
DeviceFilter
Свойства
-
локальный
Логическое значение (необязательно)
Возвращать только сканеры, подключенные непосредственно к компьютеру.
-
безопасно
Логическое значение (необязательно)
Возвращать только сканеры, использующие безопасный транспорт, например USB или TLS.
GetOptionGroupsResponse
Свойства
-
группы
OptionGroup[] необязательный
Если
result–SUCCESS, предоставляет список групп параметров в порядке, заданном драйвером сканера. -
Результат
Результат получения групп вариантов. Если значение равно
SUCCESS, будет заполнено свойствоgroups. -
scannerHandle
string
Тот же дескриптор сканера, который был передан в
getOptionGroups.
GetScannerListResponse
Свойства
-
Результат
Результат перечисления. Обратите внимание, что даже если возвращается ошибка, результаты могут быть получены частично.
-
сканеры
Список сканеров, соответствующих указанному
DeviceFilter(может быть пустым).
OpenScannerResponse
Свойства
-
Параметры
Объект (необязательно)
Если
result– этоSUCCESS, предоставляет сопоставление ключ-значение, где ключ – это параметр, относящийся к устройству, а значение – экземплярScannerOption. -
Результат
Результат открытия сканера. Если значение этого поля –
SUCCESS, будут заполнены свойстваscannerHandleиoptions. -
scannerHandle
Строка (необязательно)
Если
result–SUCCESS, дескриптор сканера, который можно использовать для дальнейших операций. -
scannerId
string
Идентификатор сканера, переданный в
openScanner().
OperationResult
Перечисление, указывающее результат каждой операции.
Перечисление
UNKNOWN
Произошла неизвестная или общая ошибка.
SUCCESS
Операция выполнена успешно.
"UNSUPPORTED"
Операция не поддерживается.
"CANCELLED"
Операция отменена.
"DEVICE_BUSY"
Устройство занято.
INVALID
Данные или аргумент, переданные методу, недействительны.
"WRONG_TYPE"
Указанное значение относится к неправильному типу данных для базового варианта.
EOF
Данные больше недоступны.
ADF_JAMMED
Замятие бумаги в устройстве подачи документов.
"ADF_EMPTY"
Устройство автоматической подачи документов пусто.
"COVER_OPEN"
Крышка планшетного сканера открыта.
"IO_ERROR"
При взаимодействии с устройством произошла ошибка.
ACCESS_DENIED
Устройство требует аутентификации.
"NO_MEMORY"
На устройстве Chromebook недостаточно памяти для выполнения операции.
UNREACHABLE
Устройство недоступно.
"MISSING"
Устройство отключено.
INTERNAL_ERROR
Произошла ошибка за пределами вызывающего приложения.
OptionConstraint
Свойства
-
list
string[] | number[] необязательно
-
Функция max
number (необязательно)
-
мин.
number (необязательно)
-
quant
number (необязательно)
-
тип
OptionGroup
Свойства
-
участники
string[]
Массив названий вариантов в порядке, указанном водителем.
-
название
string
Предоставляет заголовок для печати, например "Параметры геометрии".
OptionSetting
Свойства
-
name
string
Указывает название параметра, который нужно задать.
-
тип
Указывает тип данных параметра. Запрошенный тип данных должен соответствовать реальному типу данных базового параметра.
-
value
string | number | boolean | number[] optional
Указывает значение, которое нужно задать. Если оставить поле пустым, то для параметров, у которых включено свойство
autoSettable, будет запрашиваться автоматическая настройка. Тип данных, указанный дляvalue, должен соответствоватьtype.
OptionType
Тип данных параметра.
Перечисление
UNKNOWN
Тип данных параметра неизвестен. Свойство value будет удалено.
BOOL
Свойство value будет иметь значение truefalse.
INT
32-битное целое число со знаком. Свойство value будет иметь тип long или long[] в зависимости от того, принимает ли параметр более одного значения.
"FIXED"
Число с плавающей запятой двойной точности в диапазоне от -32768 до 32767,9999 с разрешением 1/65535. Свойство value будет иметь тип double или double[] в зависимости от того, принимает ли параметр более одного значения. Значения с двойной точностью, которые не могут быть представлены точно, будут округлены до доступного диапазона и точности.
"STRING"
Последовательность любых байтов, кроме NUL ('\0'). Свойство value будет иметь тип DOMString.
"BUTTON"
У параметра этого типа нет значения. Вместо этого установка параметра такого типа вызывает побочный эффект, характерный для этого параметра, в драйвере сканера. Например, драйвер сканера может использовать параметр типа "кнопка", чтобы предоставить возможность выбора значений по умолчанию или указать устройству автоматической подачи документов перейти к следующему листу бумаги.
"GROUP"
Вариант группировки. Значение не задано. Этот параметр включен для совместимости, но обычно не возвращается в значениях ScannerOption. Используйте getOptionGroups(), чтобы получить список групп с параметрами участников.
OptionUnit
Указывает тип данных для ScannerOption.unit.
Перечисление
"UNITLESS"
Значение является числом без единицы измерения. Например, это может быть пороговое значение.
"PIXEL"
Значение в пикселях, например размеры сканирования.
"BIT"
Значение – количество битов, например глубина цвета.
"MM"
Значение измеряется в миллиметрах, например размеры сканирования.
DPI
Значение измеряется в точках на дюйм, например разрешение.
PERCENT
Значение в процентах, например яркость.
"MICROSECOND"
Значение измеряется в микросекундах, например время экспозиции.
ReadScanDataResponse
Свойства
-
делал.
ArrayBuffer (необязательно)
Если
result–SUCCESS, содержит следующий фрагмент данных отсканированного изображения. Еслиresultимеет значениеEOF, содержит последний фрагмент данных отсканированного изображения. -
estimatedCompletion
number (необязательно)
Если
result–SUCCESS, то это приблизительная доля от общего объема данных сканирования, доставленных на данный момент (от 0 до 100). -
работа
string
Предоставляет дескриптор задания, переданный в
readScanData(). -
Результат
Результат чтения данных. Если значение равно
SUCCESS, тоdataсодержит следующий (возможно, нулевой длины) фрагмент данных изображения, готовый для чтения. Если значение равноEOF, тоdataсодержит последний фрагмент данных изображения.
ScannerInfo
Свойства
-
connectionType
Указывает, как сканер подключен к компьютеру.
-
deviceUuid
string
Для сопоставления с другими записями
ScannerInfo, указывающими на то же физическое устройство. -
imageFormats
string[]
Массив MIME-типов, которые можно запросить для возвращенных сканов.
-
производитель
string
Производитель сканера.
-
модель
string
Модель сканера (если доступна) или общее описание.
-
name
string
Человекочитаемое название сканера, которое будет показываться в интерфейсе.
-
protocolType
string
Человекочитаемое описание протокола или драйвера, используемого для доступа к сканеру, например Mopria, WSD или epsonds. Это полезно, если устройство поддерживает несколько протоколов и пользователю нужно выбрать один из них.
-
scannerId
string
Идентификатор определенного сканера.
-
безопасно
Логическое значение
Если установлено значение True, транспортное соединение сканера не может быть перехвачено пассивным прослушивателем, например TLS или USB.
ScannerOption
Свойства
-
настраиваемость
Указывает, можно ли изменить параметр и как это сделать.
-
ограничение
OptionConstraint необязательный
Определяет
OptionConstraintдля текущего параметра сканера. -
описание
string
Подробное описание варианта.
-
isActive
Логическое значение
Указывает, что параметр активен и его можно задать или получить. Если задано значение false, свойство
valueне будет установлено. -
isAdvanced
Логическое значение
Указывает, что этот вариант не должен показываться в интерфейсе по умолчанию.
-
isAutoSettable
Логическое значение
Может быть автоматически задано драйвером сканера.
-
isDetectable
Логическое значение
Указывает, что этот параметр может быть обнаружен программным обеспечением.
-
isEmulated
Логическое значение
Если установлено значение True, эмулируется драйвером сканера.
-
name
string
Название варианта, состоящее из строчных букв ASCII, цифр и дефисов. Диакритические знаки не допускаются.
-
название
string
Название, которое можно напечатать в одну строку.
-
тип
Тип данных, содержащийся в свойстве
value, который необходим для настройки этого параметра. -
единицы
Единица измерения для этого варианта.
-
value
string | number | boolean | number[] optional
Текущее значение параметра (если применимо). Обратите внимание, что тип данных этого свойства должен соответствовать типу данных, указанному в
type.
ScanOptions
Свойства
-
maxImages
number (необязательно)
Допустимое количество отсканированных изображений. Значение по умолчанию – 1.
-
mimeTypes
string[] необязательно
MIME-типы, которые принимаются вызывающим объектом.
ScanResults
Свойства
-
dataUrls
string[]
Массив URL изображений в форме, которая может быть передана в качестве значения src в тег изображения.
-
mimeType
string
MIME-тип
dataUrls.
SetOptionResult
Свойства
-
name
string
Название заданного параметра.
-
Результат
Указывает результат настройки параметра.
SetOptionsResponse
Свойства
-
Параметры
Объект (необязательно)
Обновленное сопоставление ключ-значение, в котором названиям параметров соответствуют значения
ScannerOption, содержащие новую конфигурацию, полученную после попытки задать все указанные параметры. Структура этого свойства такая же, как у свойстваoptionsвOpenScannerResponse.Это свойство будет задано, даже если некоторые параметры не были установлены успешно, но будет отменено, если не удастся получить обновленную конфигурацию (например, если сканер отключится в процессе сканирования).
-
результаты
Массив результатов, по одному для каждого переданного
OptionSetting. -
scannerHandle
string
Предоставляет дескриптор сканера, переданный в
setOptions().
StartScanOptions
Свойства
-
format
string
Указывает MIME-тип, в котором возвращаются отсканированные данные.
-
maxReadSize
number (необязательно)
Если указано ненулевое значение, ограничивает максимальное количество отсканированных байтов, возвращаемых в одном ответе
readScanData, этим значением. Минимальное допустимое значение – 32768 (32 КБ). Если это свойство не указано, размер возвращаемого фрагмента может быть равен размеру всего отсканированного изображения.
StartScanResponse
Свойства
-
работа
Строка (необязательно)
Если
result–SUCCESS, предоставляет дескриптор, который можно использовать для чтения данных сканирования или отмены задания. -
Результат
Результат запуска сканирования. Если значение равно
SUCCESS, будет заполнено свойствоjob. -
scannerHandle
string
Предоставляет тот же дескриптор сканера, который был передан в
startScan().
Методы
cancelScan()
browser.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
Отменяет начатое сканирование и возвращает объект Promise, который разрешается с объектом CancelScanResponse. Если используется обратный вызов, объект передается ему.
Параметры
-
работа
string
Дескриптор активного задания сканирования, ранее возвращенный вызовом
startScan.
Возвраты
-
Promise<CancelScanResponse>
Возвращает объект Promise, который распознается с результатом.
closeScanner()
browser.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
Закрывает сканер с переданным дескриптором и возвращает объект Promise, который разрешается с объектом CloseScannerResponse. Если используется обратный вызов, объект передается ему. Даже если ответ не будет успешным, предоставленный дескриптор станет недействительным и его нельзя будет использовать для дальнейших операций.
Параметры
-
scannerHandle
string
Указывает дескриптор открытого сканера, который ранее был возвращен из вызова
openScanner.
Возвраты
-
Promise<CloseScannerResponse>
Возвращает объект Promise, который распознается с результатом.
getOptionGroups()
browser.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
Получает названия групп и параметры участников из сканера, ранее открытого с помощью openScanner. Этот метод возвращает объект Promise, который распознается как объект GetOptionGroupsResponse. Если этой функции передается обратный вызов, возвращенные данные передаются ему.
Параметры
-
scannerHandle
string
Дескриптор открытого сканера, возвращенный вызовом
openScanner.
Возвраты
-
Promise<GetOptionGroupsResponse>
Возвращает объект Promise, который распознается с результатом.
getScannerList()
browser.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
Получает список доступных сканеров и возвращает объект Promise, который разрешается с помощью объекта GetScannerListResponse. Если этой функции передается обратный вызов, возвращенные данные передаются ему.
Параметры
-
фильтр
DeviceFilter, указывающий, какие типы сканеров должны быть возвращены.
Возвраты
-
Promise<GetScannerListResponse>
Возвращает объект Promise, который преобразуется в результат и список сканеров.
openScanner()
browser.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Открывает сканер для эксклюзивного доступа и возвращает объект Promise, который распознается как объект OpenScannerResponse. Если этой функции передается обратный вызов, возвращенные данные передаются ему.
Параметры
-
scannerId
string
Идентификатор сканера, который нужно открыть. Это значение возвращается из предыдущего вызова
getScannerList.
Возвраты
-
Promise<OpenScannerResponse>
Возвращает объект Promise, который распознается с результатом.
readScanData()
browser.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
Считывает следующий фрагмент доступных данных изображения из активного дескриптора задания и возвращает объект Promise, который разрешается с помощью объекта ReadScanDataResponse. Если используется обратный вызов, объект передается ему.
**Примечание.**Ответ может содержать результат SUCCESS с элементом data нулевой длины. Это означает, что сканер все ещё работает, но у него пока нет дополнительных данных. Пользователю следует подождать некоторое время и повторить попытку.
Когда сканирование завершится, в ответе будет значение EOF. Этот ответ может содержать последний ненулевой элемент data.
Параметры
-
работа
string
Активный дескриптор задания, ранее возвращенный из
startScan.
Возвраты
-
Promise<ReadScanDataResponse>
Возвращает объект Promise, который распознается с результатом.
scan()
browser.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
Сканирует документ и возвращает объект Promise, который преобразуется в объект ScanResults. Если этой функции передается обратный вызов, то вместо этого ему передаются возвращенные данные.
Параметры
-
Параметры
Объект, содержащий параметры сканирования.
Возвраты
-
Promise<ScanResults>
Chrome 96 и более поздние версии browser.* начиная с Chrome 148Возвращает объект Promise, который распознается с результатами сканирования.
setOptions()
browser.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
Задает параметры для указанного сканера и возвращает объект Promise, который разрешается с объектом SetOptionsResponse, содержащим результат попытки задать каждое значение в порядке переданного объекта OptionSetting. Если используется обратный вызов, объект передается ему.
Параметры
-
scannerHandle
string
Дескриптор сканера, для которого нужно задать параметры. Это должно быть значение, ранее возвращенное из вызова
openScanner. -
Параметры
Список объектов
OptionSetting, которые будут применены к сканеру.
Возвраты
-
Promise<SetOptionsResponse>
Возвращает объект Promise, который распознается с результатом.
startScan()
browser.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Запускает сканирование на указанном сканере и возвращает объект Promise, который распознается с помощью StartScanResponse. Если используется обратный вызов, объект передается ему. Если вызов выполнен успешно, ответ включает дескриптор задания, который можно использовать в последующих вызовах для чтения данных сканирования или отмены сканирования.
Параметры
-
scannerHandle
string
Ручка открытого сканера. Это должно быть значение, ранее возвращенное из вызова
openScanner. -
Параметры
Объект
StartScanOptions, указывающий параметры, которые будут использоваться для сканирования. СвойствоStartScanOptions.formatдолжно соответствовать одной из записей, возвращенных вScannerInfoсканера.
Возвраты
-
Promise<StartScanResponse>
Возвращает объект Promise, который распознается с результатом.