chrome.documentScan

Описание

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

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

Разрешения

documentScan

Доступность

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

Концепции и использование

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

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

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

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

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

Открытие

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Повторяйте предыдущий шаг до тех пор, пока свойство result не будет равно EOF или ошибке.

Когда будет достигнут конец сканирования, вызовите closeScanner() с дескриптором сканера, сохраненным на шаге 3. Он возвращает Promise, который разрешается с помощью CloseScannerResponse . Вызов cancelScan() в любой момент после создания задания завершит сканирование.

Объекты ответа

Все методы возвращают обещание, которое разрешается с помощью какого-либо объекта ответа. Большинство из них содержат свойство 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() . Это возвращает обещание, которое разрешается с помощью объекта 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 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" });
}

Отсканируйте одну страницу формата Letter.

В этом примере показано, как выбрать сканер, настроить его параметры и открыть его. Затем он извлекает содержимое одной страницы и закрывает сканер. Этот процесс демонстрирует использование 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

Хром 125+

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

  • работа

    нить

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

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

CloseScannerResponse

Хром 125+

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

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

  • сканерРучка

    нить

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

Configurability

Хром 125+

Как можно изменить опцию.

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

"НЕ_КОНФИГУРИРУЕМО"
Опция доступна только для чтения.

"SOFTWARE_CONFIGURABLE"
Опцию можно настроить программно.

"HARDWARE_CONFIGURABLE"
Эту опцию можно установить пользователем, переключая или нажимая кнопку на сканере.

ConnectionType

Хром 125+

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

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

"НЕУКАЗАНО"

"USB"

"СЕТЬ"

ConstraintType

Хром 125+

Тип данных ограничения, представленный OptionConstraint .

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

"INT_RANGE"
Ограничение диапазона значений OptionType.INT . Свойства min , max и quant OptionConstraint будут long , а его свойство list будет неустановлено.

"FIXED_RANGE"
Ограничение диапазона значений OptionType.FIXED . Свойства min , max и quant OptionConstraint будут иметь double , а его свойство list будет не установлено.

"INT_СПИСОК"
Ограничение на определенный список значений OptionType.INT . Свойство OptionConstraint.list будет содержать long значения, а остальные свойства будут отключены.

"FIXED_LIST"
Ограничение на определенный список значений OptionType.FIXED . Свойство OptionConstraint.list будет содержать double значения, а остальные свойства будут отключены.

"STRING_LIST"
Ограничение на определенный список значений OptionType.STRING . Свойство OptionConstraint.list будет содержать значения DOMString , а остальные свойства будут не заданы.

DeviceFilter

Хром 125+

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

  • местный

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

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

  • безопасный

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

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

GetOptionGroupsResponse

Хром 125+

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

  • группы

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

    Если result является SUCCESS , отображается список групп опций в порядке, указанном драйвером сканера.

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

  • сканерРучка

    нить

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

GetScannerListResponse

Хром 125+

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

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

  • Возможно пустой список сканеров, соответствующих указанному DeviceFilter .

OpenScannerResponse

Хром 125+

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

  • параметры

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

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

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

  • сканерРучка

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

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

  • идентификатор сканера

    нить

    Идентификатор сканера передается в openScanner() .

OperationResult

Хром 125+

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

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

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

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

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

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

"DEVICE_BUSY"
Устройство занято.

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

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

"ЭОФ"
Больше данных нет.

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

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

"COVER_OPEN"
Крышка планшета открыта.

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

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

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

«НЕДОСТИЖИМЫЙ»
Устройство недоступно.

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

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

OptionConstraint

Хром 125+

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

  • список

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

  • Макс

    номер необязательно

  • мин

    номер необязательно

  • количественный

    номер необязательно

OptionGroup

Хром 125+

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

  • члены

    нить[]

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

  • заголовок

    нить

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

OptionSetting

Хром 125+

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

  • имя

    нить

    Указывает имя устанавливаемой опции.

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

  • ценить

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

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

OptionType

Хром 125+

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

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

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

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

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

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

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

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

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

OptionUnit

Хром 125+

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

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

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

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

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

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

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

«ПРЦЕНТ»
Значение представляет собой процент, например, яркость.

«МИКРОСЕКОНДА»
Величина измеряется в микросекундах, например, время экспозиции.

ReadScanDataResponse

Хром 125+

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

  • данные

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

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

  • расчетное завершение

    номер необязательно

    Если resultSUCCESS , это оценка того, какой объем всех данных сканирования был доставлен на данный момент, в диапазоне от 0 до 100.

  • работа

    нить

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

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

ScannerInfo

Хром 125+

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

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

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

  • Uuid устройства

    нить

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

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

    нить[]

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

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

    нить

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

  • модель

    нить

    Модель сканера, если она доступна, или общее описание.

  • имя

    нить

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

  • тип протокола

    нить

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

  • идентификатор сканера

    нить

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

  • безопасный

    логическое значение

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

ScannerOption

Хром 125+

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

  • возможность настройки

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

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

    OptionConstraint необязательно

    Определяет OptionConstraint для текущего параметра сканера.

  • описание

    нить

    Подробное описание опции.

  • isActive

    логическое значение

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

  • isAdvanced

    логическое значение

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

  • isAutoSettable

    логическое значение

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

  • isDetectable

    логическое значение

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

  • isEmulated

    логическое значение

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

  • имя

    нить

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

  • заголовок

    нить

    Печатный однострочный заголовок.

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

  • единица

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

  • ценить

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

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

ScanOptions

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

  • maxImages

    номер необязательно

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

  • mime-типы

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

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

ScanResults

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

  • URL-адреса данных

    нить[]

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

  • mimeType

    нить

    MIME-тип dataUrls .

SetOptionResult

Хром 125+

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

  • имя

    нить

    Указывает имя установленной опции.

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

SetOptionsResponse

Хром 125+

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

  • параметры

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

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

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

  • результаты

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

  • сканерРучка

    нить

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

StartScanOptions

Хром 125+

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

  • формат

    нить

    Указывает тип MIME для возврата отсканированных данных.

  • maxReadSize

    номер необязательно

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

StartScanResponse

Хром 125+

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

  • работа

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

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

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

  • сканерРучка

    нить

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

Методы

cancelScan()

Обещание Chrome 125+
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

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

Параметры

  • работа

    нить

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (response: CancelScanResponse) => void

Возврат

  • Обещание < CancelScanResponse >

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

closeScanner()

Обещание Chrome 125+
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

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

Параметры

  • сканерРучка

    нить

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (response: CloseScannerResponse) => void

Возврат

  • Обещание < CloseScannerResponse >

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

getOptionGroups()

Обещание Chrome 125+
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

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

Параметры

  • сканерРучка

    нить

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (response: GetOptionGroupsResponse) => void

Возврат

  • Обещание < GetOptionGroupsResponse >

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

getScannerList()

Обещание Chrome 125+
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

Параметры

Возврат

  • Обещание < GetScannerListResponse >

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

openScanner()

Обещание Chrome 125+
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

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

Параметры

  • идентификатор сканера

    нить

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (response: OpenScannerResponse) => void

Возврат

  • Обещание< OpenScannerResponse >

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

readScanData()

Обещание Chrome 125+
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

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

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

Параметры

  • работа

    нить

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (response: ReadScanDataResponse) => void

Возврат

  • Обещание <ReadScanDataResponse>

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

scan()

Обещать
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

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

Параметры

Возврат

  • Хром 96+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setOptions()

Обещание Chrome 125+
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

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

Параметры

  • сканерРучка

    нить

    Ручка сканера для настройки параметров. Это должно быть значение, ранее возвращенное при вызове openScanner .

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (response: SetOptionsResponse) => void

Возврат

  • Обещание < SetOptionsResponse >

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

startScan()

Обещание Chrome 125+
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

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

Параметры

  • сканерРучка

    нить

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

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (response: StartScanResponse) => void

Возврат

  • Обещание < StartScanResponse >

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.