chrome.documentScan

Описание

Используйте API chrome.documentScan для обнаружения и получения изображений с подключенных сканеров документов.

API сканирования документов предназначен для того, чтобы приложения и расширения могли просматривать содержимое бумажных документов на подключенном сканере документов.

Разрешения

documentScan

Доступность

Chrome 44+ (только ChromeOS)
Доступность добавленных позже участников API отображается рядом с информацией об этих участниках.

Понятия и применение

Этот API поддерживает два способа сканирования документов. Если ваш сценарий использования может работать с любым сканером и не требует управления конфигурацией, используйте метод scan() . Более сложные сценарии использования требуют комбинации методов, которые поддерживаются только в Chrome 124 и более поздних версиях.

Простое сканирование

Для простых случаев использования, то есть тех, которые могут работать с любым сканером и не требуют управления конфигурацией, вызовите scan() . Этот метод принимает объект ScanOptions и возвращает Promise, который разрешается объектом ScanResults . Возможности этого параметра ограничены количеством сканирований и типами MIME, которые будут приниматься вызывающей стороной. Результаты сканирований возвращаются в виде URL-адресов для отображения в теге <img> для пользовательского интерфейса.

Комплексное сканирование

Сложное сканирование выполняется в три этапа, как описано в этом разделе. Данный план не описывает каждый аргумент метода или каждое свойство, возвращаемое в ответе. Он предназначен лишь для общего ознакомления с написанием кода для сканирования.

Открытие

  1. Вызовите getScannerList() . Доступные сканеры возвращаются в виде промиса, который разрешается с помощью GetScannerListResponse .

    • Объект ответа содержит массив объектов ScannerInfo .
    • Массив может содержать несколько записей для одного сканера, если этот сканер поддерживает несколько протоколов или методов подключения.
  2. Выберите сканер из возвращенного массива и сохраните значение его свойства scannerId .

    Используйте свойства отдельных объектов ScannerInfo , чтобы различать несколько объектов одного и того же сканера. Объекты одного и того же сканера будут иметь одинаковое значение свойства deviceUuid . ScannerInfo также содержит свойство imageFormats , содержащее массив поддерживаемых типов изображений.

Конфигурация сканера

  1. Вызовите openScanner() , передав в качестве параметра сохраненный идентификатор сканера. Он вернет Promise, который разрешается с помощью объекта OpenScannerResponse . Объект ответа содержит:

    • Свойство scannerHandle , которое вам понадобится для сохранения.

    • Свойство options содержит параметры, специфичные для сканера, которые вам необходимо установить. Дополнительную информацию см. в разделе «Получение параметров сканера».

  2. (Необязательно) Если пользователю необходимо указать значения для параметров сканера, создайте пользовательский интерфейс. Вам понадобятся параметры сканера, предоставленные на предыдущем шаге, а также группы параметров, предоставленные сканером. Дополнительную информацию см. в разделе «Создание пользовательского интерфейса» .

  3. Создайте массив объектов OptionSetting , используя программные или предоставленные пользователем значения. Дополнительную информацию см. в разделе «Установка параметров сканера».

  4. Передайте массив объектов OptionSetting в setOptions() , чтобы установить параметры сканера. Он возвращает Promise, который разрешается с помощью SetOptionsResponse . Этот объект содержит обновленную версию параметров сканера, полученных на шаге 1 настройки сканера.

    Поскольку изменение одного параметра может повлиять на ограничения другого параметра, вам может потребоваться повторить эти шаги несколько раз.

Сканирование

  1. Создайте объект StartScanOptions и передайте его в startScan() . Он вернет Promise, который разрешается объектом StartScanResponse . Свойство job представляет собой дескриптор, который вы будете использовать либо для чтения данных сканирования, либо для отмены сканирования.

  2. Передайте дескриптор задания в readScanData() . Он возвращает Promise, который разрешается объектом ReadScanDataResponse . Если данные были успешно прочитаны, свойство result равно SUCCESS , а свойство data содержит ArrayBuffer с частью результатов сканирования. Обратите внимание, что estimatedCompletion содержит приблизительный процент от общего объема данных, которые были доставлены к настоящему моменту.

  3. Повторяйте предыдущий шаг до тех пор, пока свойство 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

Chrome 125+

Характеристики

  • работа

    нить

    Предоставляет тот же дескриптор задания, который был передан в cancelScan() .

  • Результат отмены сканирования на стороне бэкэнда. Если результат равен OperationResult.SUCCESS или OperationResult.CANCELLED , сканирование отменено, и сканер готов начать новое сканирование. Если результат равен OperationResult.DEVICE_BUSY , сканер все еще обрабатывает запрошенную отмену; вызывающей стороне следует немного подождать и повторить запрос. Другие значения результата указывают на необратимую ошибку, которую не следует повторять.

CloseScannerResponse

Chrome 125+

Характеристики

  • Результат закрытия сканера. Даже если это значение не равно SUCCESS , дескриптор будет недействительным и не должен использоваться для каких-либо дальнейших операций.

  • scannerHandle

    нить

    Тот же дескриптор сканера, который был передан функции closeScanner .

Configurability

Chrome 125+

Как можно изменить тот или иной параметр.

Перечисление

"НЕ_НАСТРАИВАЕМО"
Данная опция доступна только для чтения.

"SOFTWARE_CONFIGURABLE"
Этот параметр можно настроить в программном обеспечении.

"НАСТРАИВАЕМОЕ ОБОРУДОВАНИЕ"
Этот параметр пользователь может установить, включив или нажав кнопку на сканере.

ConnectionType

Chrome 125+

Указывает, как сканер подключен к компьютеру.

Перечисление

«НЕ УКАЗАНО»

"USB"

"СЕТЬ"

ConstraintType

Chrome 125+

Тип данных ограничения, представленного объектом 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

Chrome 125+

Характеристики

  • местный

    логический необязательный

    Возвращайте только те сканеры, которые напрямую подключены к компьютеру.

  • безопасный

    логический необязательный

    Возвращайте только сканеры, использующие защищенный канал передачи данных, например USB или TLS.

GetOptionGroupsResponse

Chrome 125+

Характеристики

  • группы

    OptionGroup [] необязательный

    Если resultSUCCESS , предоставляется список групп параметров в порядке, указанном драйвером сканера.

  • Результат получения параметров groups. Если значение параметра равно SUCCESS , свойство groups будет заполнено.

  • scannerHandle

    нить

    Тот же дескриптор сканера, который был передан в getOptionGroups .

GetScannerListResponse

Chrome 125+

Характеристики

  • Результат перечисления. Обратите внимание, что могут быть возвращены частичные результаты, даже если это указывает на ошибку.

  • сканеры

    Список сканеров, соответствующих заданному параметру DeviceFilter , может быть пустым.

OpenScannerResponse

Chrome 125+

Характеристики

  • параметры

    объект необязательный

    Если result равен SUCCESS , предоставляется сопоставление ключ-значение, где ключом является параметр, специфичный для устройства, а значением — экземпляр объекта ScannerOption .

  • Результат открытия сканера. Если значение параметра равно SUCCESS , будут заполнены свойства scannerHandle и options .

  • scannerHandle

    строка необязательный

    Если resultSUCCESS , то передается дескриптор сканера, который можно использовать для дальнейших операций.

  • scannerId

    нить

    Идентификатор сканера, переданный в функцию openScanner() .

OperationResult

Chrome 125+

Перечисление, указывающее результат каждой операции.

Перечисление

"НЕИЗВЕСТНЫЙ"
Произошла неизвестная или общая ошибка.

"УСПЕХ"
Операция прошла успешно.

"НЕ ПОДДЕРЖИВАЕТСЯ"
Данная операция не поддерживается.

«ОТМЕНЕНО»
Операция была отменена.

"УСТРОЙСТВО_ЗАНЯТО"
Устройство занято.

"НЕВЕРНЫЙ"
Либо данные, либо аргумент, переданный методу, недействительны.

"НЕПРАВИЛЬНЫЙ_ТИП"
Предоставленное значение имеет неверный тип данных для базового параметра.

"EOF"
Дополнительные данные отсутствуют.

"ADF_JAMMED"
Устройство подачи документов заклинило.

"ADF_EMPTY"
Устройство подачи документов пусто.

"COVER_OPEN"
Крышка платформы открыта.

"IO_ERROR"
Произошла ошибка при обмене данными с устройством.

"ДОСТУП ЗАПРЕЩЕН"
Для работы устройства требуется аутентификация.

"НЕТ_ПАМЯТИ"
На Chromebook недостаточно памяти для завершения операции.

"Недостижимо"
Устройство недоступно.

"ОТСУТСТВУЮЩИЙ"
Устройство отключено.

"ВНУТРЕННЯЯ_ОШИБКА"
Ошибка произошла не в вызывающем приложении, а в другом месте.

OptionConstraint

Chrome 125+

Характеристики

  • список

    строка[] | число[] необязательно

  • макс

    число необязательно

  • мин

    число необязательно

  • квант

    число необязательно

OptionGroup

Chrome 125+

Характеристики

  • члены

    нить[]

    Массив названий опций в порядке, предоставленном драйвером.

  • заголовок

    нить

    Предоставляет заголовок для печати, например, «Параметры геометрии».

OptionSetting

Chrome 125+

Характеристики

  • имя

    нить

    Указывает название параметра, который необходимо установить.

  • тип

    Указывает тип данных опциона. Запрашиваемый тип данных должен соответствовать реальному типу данных базового опциона.

  • ценить

    строка | число | логическое значение | массив чисел ( необязательно )

    Указывает значение для установки. Оставьте значение пустым, чтобы запросить автоматическую установку для параметров, для которых включена autoSettable . Тип данных, указанный для value должен соответствовать type .

OptionType

Chrome 125+

Тип данных опциона.

Перечисление

"НЕИЗВЕСТНЫЙ"
Тип данных параметра неизвестен. Свойство value не будет установлено.

"БУЛ"
value свойства будет иметь одно из true или false.

"INT"
32-битное знаковое целое число. Свойство value будет иметь тип long или long[], в зависимости от того, принимает ли опция более одного значения.

"ЗАФИКСИРОВАННЫЙ"
Значение типа double в диапазоне от -32768 до 32767,9999 с разрешением 1/65535. Свойство value будет иметь значение double или double[] в зависимости от того, принимает ли опция более одного значения. Значения типа double, которые не могут быть точно представлены, будут округлены до доступного диапазона и точности.

"НИТЬ"
Последовательность любых байтов, кроме NUL ('\0'). Свойство value будет представлять собой DOMString.

"КНОПКА"
Параметр такого типа не имеет значения. Вместо этого установка параметра такого типа вызывает побочный эффект, специфичный для данного параметра, в драйвере сканера. Например, параметр, вызываемый кнопкой, может использоваться драйвером сканера для выбора значений по умолчанию или для управления автоматическим податчиком документов при переходе к следующему листу бумаги.

"ГРУППА"
Параметр группировки. Нет значения. Этот параметр включен для совместимости, но обычно не возвращается в значениях ScannerOption . Используйте getOptionGroups() для получения списка групп с их параметрами-членами.

OptionUnit

Chrome 125+

Указывает тип данных для ScannerOption.unit .

Перечисление

«БЕЗ ЕДИНИЦ»
Значение представляет собой безразмерное число. Например, это может быть пороговое значение.

"ПИКСЕЛЬ"
Значение представляет собой количество пикселей, например, размеры сканирования.

"КУСОЧЕК"
Значение представляет собой количество бит, например, глубину цвета.

"ММ"
Значение измеряется в миллиметрах, например, размеры сканирования.

"DPI"
Значение измеряется в точках на дюйм, например, разрешение.

"ПРОЦЕНТ"
Значение указывается в процентах, например, яркость.

"МИКРОСЕКУНТ"
Значение измеряется в микросекундах, например, время экспозиции.

ReadScanDataResponse

Chrome 125+

Характеристики

  • данные

    ArrayBuffer ( необязательно)

    Если result равен SUCCESS , содержит следующий фрагмент отсканированных данных изображения. Если result равен EOF , содержит последний фрагмент отсканированных данных изображения.

  • оценочная завершенность

    число необязательно

    Если resultSUCCESS , то указывается приблизительное количество уже переданных данных сканирования, в диапазоне от 0 до 100.

  • работа

    нить

    Предоставляет дескриптор задания, переданный в функцию readScanData() .

  • Результат чтения данных. Если его значение равно SUCCESS , то data содержат следующий (возможно, нулевой) фрагмент данных изображения, готовый к чтению. Если его значение равно EOF , то data содержат последний фрагмент данных изображения.

ScannerInfo

Chrome 125+

Характеристики

  • тип соединения

    Указывает, как сканер подключен к компьютеру.

  • deviceUuid

    нить

    Для сопоставления с другими записями ScannerInfo , указывающими на то же физическое устройство.

  • форматы изображений

    нить[]

    Массив MIME-типов, которые можно запросить для возвращаемых результатов сканирования.

  • производитель

    нить

    Производитель сканера.

  • модель

    нить

    Укажите модель сканера (если она известна) или её общее описание.

  • имя

    нить

    Удобочитаемое имя сканера для отображения в пользовательском интерфейсе.

  • protocolType

    нить

    Удобочитаемое описание протокола или драйвера, используемого для доступа к сканеру, например, Mopria, WSD или epsonds. Это в первую очередь полезно для того, чтобы пользователь мог выбирать между протоколами, если устройство поддерживает несколько протоколов.

  • scannerId

    нить

    Идентификатор конкретного сканера.

  • безопасный

    логический

    Если это так, то передача данных через сканирующее соединение не может быть перехвачена пассивным слушателем, таким как TLS или USB.

ScannerOption

Chrome 125+

Характеристики

  • настраиваемость

    Указывает, можно ли изменить этот параметр и каким образом.

  • ограничение

    Определяет OptionConstraint для текущей опции сканера.

  • описание

    нить

    Более подробное описание варианта.

  • isActive

    логический

    Указывает, что опция активна и может быть установлена ​​или получена. Если значение равно false, свойство value не будет установлено.

  • isAdvanced

    логический

    Указывает, что пользовательский интерфейс не должен отображать эту опцию по умолчанию.

  • isAutoSettable

    логический

    Может быть установлено автоматически драйвером сканера.

  • isDetectable

    логический

    Указывает на то, что данная опция может быть обнаружена программным обеспечением.

  • isEmulated

    логический

    Если это так, то эмулируется драйвером сканера.

  • имя

    нить

    Название параметра, написанное строчными буквами ASCII, цифрами и дефисами. Диакритические знаки не допускаются.

  • заголовок

    нить

    Заголовок в одну строку, который можно распечатать.

  • тип

    Тип данных, содержащийся в свойстве value , необходимый для установки этого параметра.

  • единица

    Единица измерения для данного варианта.

  • ценить

    строка | число | логическое значение | массив чисел ( необязательно )

    Текущее значение параметра, если применимо. Обратите внимание, что тип данных этого свойства должен соответствовать типу данных, указанному в type .

ScanOptions

Характеристики

  • maxImages

    число необязательно

    Допустимое количество отсканированных изображений. По умолчанию — 1.

  • mimeTypes

    строка[] необязательный

    MIME-типы, принимаемые вызывающей стороной.

ScanResults

Характеристики

  • dataUrls

    нить[]

    Массив URL-адресов изображений в формате, который можно передать в качестве значения "src" тегу изображения.

  • mimeType

    нить

    MIME-тип данных dataUrls .

SetOptionResult

Chrome 125+

Характеристики

  • имя

    нить

    Указывает название выбранной опции.

  • Указывает результат установки параметра.

SetOptionsResponse

Chrome 125+

Характеристики

  • параметры

    объект необязательный

    Обновленное сопоставление ключ-значение имен параметров со значениями ScannerOption , содержащее новую конфигурацию после попытки установить все предоставленные параметры. Оно имеет ту же структуру, что и свойство options в OpenScannerResponse .

    Это свойство будет установлено, даже если некоторые параметры не были установлены успешно, но будет снято с установки, если получение обновленной конфигурации не удастся (например, если сканер отключится в процессе сканирования).

  • результаты

    Массив результатов, по одному для каждого переданного параметра OptionSetting .

  • scannerHandle

    нить

    Предоставляет дескриптор сканера, переданный в функцию setOptions() .

StartScanOptions

Chrome 125+

Характеристики

  • формат

    нить

    Указывает MIME-тип, в котором следует возвращать отсканированные данные.

  • maxReadSize

    число необязательно

    Если указано ненулевое значение, максимальное количество сканируемых байтов, возвращаемых в одном ответе readScanData , ограничивается этим значением. Наименьшее допустимое значение — 32768 (32 КБ). Если это свойство не указано, размер возвращаемого фрагмента может быть равен размеру всего сканированного изображения.

StartScanResponse

Chrome 125+

Характеристики

  • работа

    строка необязательный

    Если resultSUCCESS , предоставляется дескриптор, который можно использовать для чтения данных сканирования или отмены задания.

  • Результат запуска сканирования. Если значение этого параметра равно SUCCESS , свойство job будет заполнено.

  • scannerHandle

    нить

    Предоставляет тот же дескриптор сканера, который был передан в startScan() .

Методы

cancelScan()

Chrome 125+
chrome.documentScan.cancelScan(
  job: string,
)
: Promise<CancelScanResponse>

Отменяет начатое сканирование и возвращает Promise, который разрешается с объектом CancelScanResponse . Если используется функция обратного вызова, объект передается ей.

Параметры

  • работа

    нить

    Дескриптор активного задания сканирования, ранее возвращенный при вызове функции startScan .

Возвраты

  • Promise< CancelScanResponse >

    Возвращает промис, который разрешается с результатом.

closeScanner()

Chrome 125+
chrome.documentScan.closeScanner(
  scannerHandle: string,
)
: Promise<CloseScannerResponse>

Закрывает сканер, передав дескриптор, и возвращает Promise, который разрешается объектом CloseScannerResponse . Если используется коллбэк, объект передается ему. Даже если ответ не является успешным, предоставленный дескриптор становится недействительным и не должен использоваться для дальнейших операций.

Параметры

  • scannerHandle

    нить

    Указывает дескриптор открытого сканера, который был ранее возвращен в результате вызова функции openScanner .

Возвраты

  • Возвращает промис, который разрешается с результатом.

getOptionGroups()

Chrome 125+
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
)
: Promise<GetOptionGroupsResponse>

Получает имена групп и параметры участников из сканера, ранее открытого с помощью openScanner . Этот метод возвращает Promise, который разрешается с объектом GetOptionGroupsResponse . Если в эту функцию передан обратный вызов, вместо него передаются возвращаемые данные.

Параметры

  • scannerHandle

    нить

    Дескриптор открытого сканера, возвращаемый вызовом функции openScanner .

Возвраты

  • Возвращает промис, который разрешается с результатом.

getScannerList()

Chrome 125+
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
)
: Promise<GetScannerListResponse>

Получает список доступных сканеров и возвращает Promise, который разрешается с объектом GetScannerListResponse . Если в эту функцию передан коллбэк, вместо него ей передаются возвращаемые данные.

Параметры

  • фильтр

    Объект DeviceFilter указывающий, какие типы сканеров следует возвращать.

Возвраты

  • Возвращает промис, который разрешается с результатом и списком сканеров.

openScanner()

Chrome 125+
chrome.documentScan.openScanner(
  scannerId: string,
)
: Promise<OpenScannerResponse>

Открывает сканер для эксклюзивного доступа и возвращает Promise, который разрешается объектом OpenScannerResponse . Если в эту функцию передан обратный вызов, вместо него передаются возвращаемые данные.

Параметры

  • scannerId

    нить

    Идентификатор сканера, который нужно открыть. Это значение возвращается из предыдущего вызова функции getScannerList .

Возвраты

  • Возвращает промис, который разрешается с результатом.

readScanData()

Chrome 125+
chrome.documentScan.readScanData(
  job: string,
)
: Promise<ReadScanDataResponse>

Считывает следующий фрагмент доступных данных изображения из активного дескриптора задания и возвращает Promise, который разрешается объектом ReadScanDataResponse . Если используется функция обратного вызова, объект передается ей.

**Примечание:** Допустимым результатом ответа является SUCCESS при нулевой длине data . Это означает, что сканер все еще работает, но еще не располагает дополнительными данными. Вызывающей стороне следует немного подождать и повторить попытку.

После завершения сканирования ответ будет содержать значение EOF . Этот ответ может содержать последний ненулевой элемент data .

Параметры

  • работа

    нить

    Активный дескриптор задания, ранее возвращенный функцией startScan .

Возвраты

  • Возвращает промис, который разрешается с результатом.

scan()

chrome.documentScan.scan(
  options: ScanOptions,
)
: Promise<ScanResults>

Выполняет сканирование документа и возвращает Promise, который разрешается объектом ScanResults . Если в эту функцию передан обратный вызов, вместо него передаются возвращенные данные.

Параметры

Возвраты

  • Promise< ScanResults >

    Chrome 96+

    Возвращает промис, который разрешается с результатами сканирования.

setOptions()

Chrome 125+
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
)
: Promise<SetOptionsResponse>

Устанавливает параметры для указанного сканера и возвращает Promise, который разрешается объектом SetOptionsResponse содержащим результат попытки установить каждое значение в порядке, указанном в переданном объекте OptionSetting . Если используется функция обратного вызова, объект передается ей.

Параметры

  • scannerHandle

    нить

    Дескриптор сканера, для которого необходимо установить параметры. Это должно быть значение, ранее возвращенное вызовом функции openScanner .

  • параметры

    Список объектов OptionSetting , которые будут применены к сканеру.

Возвраты

  • Возвращает промис, который разрешается с результатом.

startScan()

Chrome 125+
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
)
: Promise<StartScanResponse>

Запускает сканирование на указанном сканере и возвращает Promise, который разрешается с помощью StartScanResponse . Если используется коллбэк, объект передается ему. Если вызов был успешным, ответ содержит дескриптор задания, который можно использовать в последующих вызовах для чтения данных сканирования или отмены сканирования.

Параметры

  • scannerHandle

    нить

    Дескриптор открытого сканера. Это должно быть значение, ранее возвращенное при вызове функции openScanner .

  • параметры

    Объект StartScanOptions , указывающий параметры, используемые для сканирования. Свойство StartScanOptions.format должно соответствовать одной из записей, возвращаемых в ScannerInfo сканера.

Возвраты

  • Promise< StartScanResponse >

    Возвращает промис, который разрешается с результатом.