chrome.documentScan

.

Descripción

Usa la API de chrome.documentScan para descubrir y recuperar imágenes de los escáneres de documentos adjuntos.

La API de Document Scan está diseñada para permitir que las aplicaciones y extensiones vean el contenido de documentos en papel en un escáner de documentos adjunto.

Permisos

documentScan

Disponibilidad

Chrome 44 y versiones posteriores Solo en ChromeOS .
La disponibilidad para los miembros de la API que se agreguen más adelante se mostrará con esos miembros.

Conceptos y uso

Esta API admite dos medios de escaneo de documentos. Si tu caso de uso puede funcionar con ningún escáner y no requiere control de la configuración, usa el scan(). Los casos de uso más complicados requieren una combinación de métodos, que solo se admiten en Chrome 124 y versiones posteriores.

Escaneo simple

Para casos de uso simples, es decir, aquellos que pueden funcionar con cualquier escáner y no requieren el control de la configuración, llama a scan(). Este método toma un ScanOptions y muestra una promesa que se resuelve con ScanResults. . Las capacidades de esta opción se limitan a la cantidad de análisis y los tipos de MIME que aceptará el emisor. Los análisis se devuelven como URLs se mostrará en una etiqueta <img> para una interfaz de usuario.

Análisis complejo

Los análisis complejos se realizan en tres fases, como se describe en esta sección. En este esquema, no se describe cada argumento del método ni cada propiedad que se muestra. en una respuesta. Solo tiene como objetivo ofrecerte una guía general para escribir escáneres código.

Discovery

  1. Llama a getScannerList(). Los escáneres disponibles son se devuelve en una promesa que se resuelve con un GetScannerListResponse

    • El objeto de respuesta contiene un array de ScannerInfo. objetos.
    • El array puede contener varias entradas para un único escáner si ese admite varios protocolos o métodos de conexión.
  2. Selecciona un escáner del array devuelto y guarda su valor. scannerId.

    Cómo usar las propiedades de objetos ScannerInfo individuales para distinguir entre varios objetos para el mismo escáner. Objetos de El mismo escáner tendrá el mismo valor para la propiedad deviceUuid. ScannerInfo también contiene una propiedad imageFormats con un array de tipos de imágenes admitidos.

Configuración del escáner

  1. Llama a openScanner() y pasa el ID del escáner guardado. Muestra una promesa que se resuelve con OpenScannerResponse. El objeto de respuesta contiene lo siguiente:

    • Una propiedad de scannerHandle, que deberás guardar.

    • Una propiedad de opciones que contiene propiedades específicas del escáner, que que se deben configurar. Consulta las opciones del escáner de recuperación para obtener más información.

  2. (Opcional) Si necesita que el usuario proporcione valores para las opciones del escáner construir una interfaz de usuario. Necesitarás las opciones de escáner que proporciona la paso anterior y deberás recuperar los grupos de opciones proporcionados por de Google. Para obtener más información, consulta Cómo construir una interfaz de usuario.

  3. Construye un array de objetos OptionSetting con programáticos o proporcionados por el usuario. Consulta Establecer opciones de escáner para obtener más información información.

  4. Pasa el array de objetos OptionSetting a setOptions() para establecer las opciones del escáner Integra devuelve una promesa que se resuelve con un SetOptionsResponse Este objeto contiene un versión actualizada de las opciones del escáner recuperada en el paso 1 del escáner configuración.

    Desde que se cambió una puede alterar las restricciones de otra, tal vez debas repetirlas varios pasos.

análisis

  1. Construye un objeto StartScanOptions y pásalo para startScan(). Muestra una promesa que resuelve con un objeto StartScanResponse. Su propiedad job es un controlador que usarás para leer los datos o cancelarlo.

  2. Pasa el controlador del trabajo a readScanData(). Muestra un Promesa que se resuelve con un Objeto ReadScanDataResponse. Si se leyeron los datos correctamente, su propiedad result es igual a SUCCESS y su propiedad data contiene un ArrayBuffer con parte del análisis. Ten en cuenta que estimatedCompletion contiene una estimación el porcentaje del total de datos entregados hasta ahora.

  3. Repite el paso anterior hasta que la propiedad result sea igual a EOF o a un error.

Cuando finalice la búsqueda, llama closeScanner() con el controlador del escáner guardado en el paso 3) Muestra una promesa que se resuelve con un CloseScannerResponse Llamando cancelScan() en cualquier momento después de que se cree el trabajo y finalizar el análisis.

Objetos de respuesta

Todos los métodos devuelven una promesa que se resuelve con un objeto de respuesta de algún tipo. La mayoría de estos contienen una propiedad result cuyo valor pertenece a OperationResult Algunas propiedades de los objetos de respuesta no contendrá valores, a menos que el valor de result tenga un valor específico. Estos se describen en la referencia de cada objeto de respuesta.

Por ejemplo, OpenScannerResponse.scannerHandle solo tendrá un valor cuando OpenScannerResponse.result es SUCCESS.

Opciones de escáner

Las opciones de escáneres varían considerablemente según el dispositivo. Por lo tanto, no es posible refleja las opciones del escáner directamente en la API de documentScan. Para desplazarse este, el OpenScannerResponse (recuperado mediante openScanner()) y el SetOptionsResponse (el objeto de respuesta para setOptions()) contienen una propiedad options que es una objeto que contiene opciones específicas del escáner. Cada opción es una asignación de pares clave-valor donde la clave es una opción específica del dispositivo y el valor es una instancia de ScannerOption

En general, la estructura se ve de la siguiente manera:

{
  "key1": { scannerOptionInstance }
  "key2": { scannerOptionInstance }
}

Por ejemplo, imagina un escáner que devuelve opciones llamadas "source" y "resolución". La estructura del objeto options que se muestra tendrá un aspecto similar como en el siguiente ejemplo. Para simplificar, solo se permite una ScannerOption parcial mostrar las respuestas.

{
  "source": {
    "name": "source",
    "type": OptionType.STRING,
...
},
  "resolution": {
    "name": "resolution",
    "type": OptionType.INT,
...
  },
...
}

Crea una interfaz de usuario

Si bien no es necesario usar esta API, es posible que desees que un usuario elija el valor para una opción en particular. Esto requiere una interfaz de usuario. Usa el OpenScannerResponse (abierta por openScanner()) para recuperar las opciones del archivo adjunto de análisis, como se describe en la sección anterior.

Algunos escáneres agrupan las opciones según el dispositivo. No afectan la opción comportamientos, pero como estos grupos pueden mencionarse documentación, estos grupos deben mostrarse al usuario. Puedes recuperar estas grupos llamando a getOptionGroups(). Esto muestra un Promesa que se resuelve con un Objeto GetOptionGroupsResponse. Su groups contiene un array de grupos específico para escáneres. Usa la información de estos grupos para organizar las opciones en la OpenScannerResponse para visualización.

{
  scannerHandle: "123456",
  result: SUCCESS,
  groups: [
    {
      title: "Standard",
      members: [ "resolution", "mode", "source" ]
    }
  ]
}

Como se indicó en la configuración de Scanner, cambiar una opción puede alterar las restricciones en otra opción. Esta es la razón por la que setOptionsResponse (el objeto de respuesta para setOptions()) contiene otra propiedad options. Usa esto para actualizar la interfaz de usuario. Luego, repite el proceso según sea necesario hasta que todas las opciones estén disponibles. automático.

Establecer opciones de escáner

Establecer opciones de escáner pasando un array de Objetos OptionSetting a setOptions() Para ver un ejemplo, consulta la siguiente sección Escanear página en tamaño de una letra.

Ejemplos

Cómo recuperar una página como un BLOB

En este ejemplo, se muestra una forma de recuperar una página desde el escáner como un BLOB y demuestra el uso de startScan() y readScanData() con el valor de 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" });
}

Escanear una página de tamaño letra

En este ejemplo, se muestra cómo seleccionar un escáner, establecer sus opciones y abrirlo. Integra recupera el contenido de una sola página y cierra el escáner. Este proceso demuestra el uso de getScannerList(), openScanner(), setOptions() y closeScanner() Ten en cuenta que el contenido de la página se recupera llamando la función pageAsBlob() del ejemplo anterior.

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);
}

Muestra la configuración

Como se indica en otro lugar, mostrar las opciones de configuración de un escáner a un usuario llamando a getOptionGroups(), además de las opciones de análisis que muestra un llamada a openScanner(). De esta forma, se pueden mostrar opciones a los usuarios definidos por el fabricante. En este ejemplo, se muestra cómo hacerlo.

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");
      }
    }
  }
}

Tipos

CancelScanResponse

Chrome 125 y versiones posteriores

Propiedades

  • trabajo

    string

    Proporciona el mismo controlador de trabajo que se pasó a cancelScan().

  • resultado

    El resultado del análisis de cancelación del backend. Si el resultado es OperationResult.SUCCESS o OperationResult.CANCELLED, significa que se canceló el análisis y está listo para iniciar un análisis nuevo. Si el resultado es OperationResult.DEVICE_BUSY , el escáner aún está procesando la cancelación solicitada. el llamador debe esperar un momento y volver a enviar la solicitud. Otros valores de resultado indican un error permanente que no se debe reintentar.

CloseScannerResponse

Chrome 125 y versiones posteriores

Propiedades

  • resultado

    El resultado de cerrar el escáner. Incluso si este valor no es SUCCESS, el identificador no será válido y no se debe usar para ninguna otra operación.

  • scannerHandle

    string

    El mismo controlador del escáner que se pasó a closeScanner

Configurability

Chrome 125 y versiones posteriores

Cómo se puede cambiar una opción

Enum

"NOT_CONFIGURABLE"
La opción es de solo lectura.

"SOFTWARE_CONFIGURABLE"
La opción se puede configurar en software.

"HARDWARE_CONFIGURABLE"
La opción se puede configurar cuando el usuario activa o presiona un botón del escáner.

ConnectionType

Chrome 125 y versiones posteriores

Indica cómo está conectado el escáner a la computadora.

Enum

"UNSPECIFIED"

"USB"

"RED"

ConstraintType

Chrome 125 y versiones posteriores

El tipo de datos de restricción representado por un OptionConstraint.

Enum

"INT_RANGE"
Es la restricción en un rango de valores OptionType.INT. Las propiedades min, max y quant de OptionConstraint serán long, y no se establecerá la propiedad list.

"FIXED_RANGE"
Es la restricción en un rango de valores OptionType.FIXED. Las propiedades min, max y quant de OptionConstraint serán double, y su propiedad list se desactivará.

"INT_LIST"
Es la restricción sobre una lista específica de valores OptionType.INT. La propiedad OptionConstraint.list contendrá valores long y las demás propiedades no se establecerán.

"FIXED_LIST"
Es la restricción de una lista específica de valores OptionType.FIXED. La propiedad OptionConstraint.list contendrá valores double y las demás propiedades no se establecerán.

"STRING_LIST"
Es la restricción de una lista específica de valores OptionType.STRING. La propiedad OptionConstraint.list contendrá valores DOMString y las demás propiedades no se establecerán.

DeviceFilter

Chrome 125 y versiones posteriores

Propiedades

  • local

    booleano opcional

    Solo devuelve escáneres que estén directamente conectados a la computadora.

  • seguro

    booleano opcional

    Devuelve únicamente escáneres que usen un transporte seguro, como USB o TLS.

GetOptionGroupsResponse

Chrome 125 y versiones posteriores

Propiedades

  • grupos

    OptionGroup[] opcional

    Si result es SUCCESS, proporciona una lista de grupos de opciones en el orden que proporciona el controlador del análisis.

  • resultado

    El resultado de obtener los grupos de opciones. Si el valor es SUCCESS, se propagará la propiedad groups.

  • scannerHandle

    string

    El mismo controlador del escáner que se pasó a getOptionGroups

GetScannerListResponse

Chrome 125 y versiones posteriores

Propiedades

  • resultado

    Es el resultado de la enumeración. Ten en cuenta que se pueden mostrar resultados parciales incluso si esto indica un error.

  • escáneres

    Una lista posiblemente vacía de escáneres que coinciden con el DeviceFilter proporcionado.

OpenScannerResponse

Chrome 125 y versiones posteriores

Propiedades

  • opciones

    objeto opcional

    Si result es SUCCESS, proporciona una asignación de par clave-valor en la que la clave es una opción específica del dispositivo y el valor es una instancia de ScannerOption.

  • resultado

    El resultado de abrir el escáner. Si el valor es SUCCESS, se propagarán las propiedades scannerHandle y options.

  • scannerHandle

    string opcional

    Si result es SUCCESS, un controlador para el escáner que se puede usar en otras operaciones.

  • scannerId

    string

    El ID del escáner que se pasa a openScanner().

OperationResult

Chrome 125 y versiones posteriores

Una enumeración que indica el resultado de cada operación.

Enum

"UNKNOWN"
Se produjo un error desconocido o genérico.

"SUCCESS"
La operación se realizó correctamente.

"UNSUPPORTED"
No se admite la operación.

“CANCELLED”
Se canceló la operación.

"DEVICE_BUSY"
El dispositivo está ocupado.

"INVALID"
Los datos o un argumento que se pasó al método no son válidos.

"WRONG_TYPE"
El valor proporcionado es un tipo de datos incorrecto para la opción subyacente.

"EOF"
No hay más datos disponibles.

"ADF_JAMMED"
El alimentador de documentos está atascado.

"ADF_EMPTY"
El alimentador de documentos está vacío.

"COVER_OPEN"
La cubierta plana está abierta.

"IO_ERROR"
Se produjo un error durante la comunicación con el dispositivo.

"ACCESS_DENIED"
El dispositivo requiere autenticación.

"NO_MEMORY"
La Chromebook no tiene suficiente memoria disponible para completar la operación.

"UNREACHABLE"
No se puede acceder al dispositivo.

"MISSING"
El dispositivo está desconectado.

"INTERNAL_ERROR"
Se produjo un error en un lugar distinto de la aplicación que realiza la llamada.

OptionConstraint

Chrome 125 y versiones posteriores

Propiedades

  • list

    string[] | number[] opcional

  • máx.

    número opcional

  • min

    número opcional

  • cuant.

    número opcional

OptionGroup

Chrome 125 y versiones posteriores

Propiedades

  • miembros

    string[]

    Un array de nombres de opciones en el orden proporcionado por el controlador.

  • título

    string

    Proporciona un título imprimible, por ejemplo, "Opciones de geometría".

OptionSetting

Chrome 125 y versiones posteriores

Propiedades

  • nombre

    string

    Indica el nombre de la opción que se establecerá.

  • tipo

    Indica el tipo de datos de la opción. El tipo de datos solicitado debe coincidir con el tipo de datos real de la opción subyacente.

  • valor

    string | número | boolean | number[] opcional

    Indica el valor que se debe configurar. No estableces la opción para solicitar la configuración automática de las opciones que tienen habilitado autoSettable. El tipo de datos proporcionado para value debe coincidir con type.

OptionType

Chrome 125 y versiones posteriores

Es el tipo de datos de una opción.

Enum

"UNKNOWN"
El tipo de datos de la opción es desconocido. No se establecerá la propiedad value.

"BOOL"
La propiedad value será uno de truefalse.

"INT"
Un número entero de 32 bits con firma. La propiedad value será larga o larga[], dependiendo de si la opción toma más de un valor.

"FIXED"
Un doble en el rango -32768-32767.9999 con una resolución de 1/65535. La propiedad value será doble o doble [], según si la opción toma más de un valor. Los valores dobles que no se pueden representar de forma exacta se redondearán al rango y la precisión disponibles.

"STRING"
Una secuencia de cualquier bytes excepto NUL ("\0"). La propiedad value será una DOMString.

"BUTTON"
Una opción de este tipo no tiene valor. En cambio, configurar una opción de este tipo causa un efecto secundario específico de la opción en el controlador del escáner. Por ejemplo, el controlador de escáner podría usar una opción de tipo botón para seleccionar los valores predeterminados o indicarle a un alimentador automático de documentos que avance a la siguiente hoja de papel.

"GROUP"
Opción de agrupación. Sin valor. Esto se incluye por razones de compatibilidad, pero, por lo general, no se mostrará en los valores ScannerOption. Usa getOptionGroups() para recuperar la lista de grupos con sus opciones de miembros.

OptionUnit

Chrome 125 y versiones posteriores

Indica el tipo de datos de ScannerOption.unit.

Enum

"UNITLESS"
El valor es un número sin unidades. Por ejemplo, puede ser un umbral.

"PIXEL"
El valor es una cantidad de píxeles, por ejemplo, dimensiones de escaneo.

"BIT"
El valor es la cantidad de bits, por ejemplo, la profundidad de color.

"MM"
El valor se mide en milímetros, por ejemplo, las dimensiones del escaneo.

"DPI"
El valor se mide en puntos por pulgada, por ejemplo, resolución.

"PERCENT"
El valor es un porcentaje, por ejemplo, brillo.

"MICROSEGUNDO"
El valor se mide en microsegundos, por ejemplo, el tiempo de exposición.

ReadScanDataResponse

Chrome 125 y versiones posteriores

Propiedades

  • datos

    ArrayBuffer opcional

    Si result es SUCCESS, contiene el siguiente fragmento de datos de imagen escaneada. Si result es EOF, contiene el último fragmento de datos de la imagen analizada.

  • estimatedCompletion

    número opcional

    Si result es SUCCESS, una estimación de la cantidad total de datos de análisis que se entregaron hasta el momento, en el rango de 0 a 100.

  • trabajo

    string

    Proporciona el controlador del trabajo que se pasa a readScanData().

  • resultado

    Es el resultado de la lectura de los datos. Si su valor es SUCCESS, entonces data contiene el fragmento siguiente (posiblemente de longitud cero) de datos de imagen que está listo para leerse. Si su valor es EOF, data contiene el último fragmento de datos de la imagen.

ScannerInfo

Chrome 125 y versiones posteriores

Propiedades

  • connectionType

    Indica cómo está conectado el escáner a la computadora.

  • deviceUuid

    string

    Para buscar coincidencias con otras entradas de ScannerInfo que apunten al mismo dispositivo físico

  • imageFormats

    string[]

    Una matriz de tipos de MIME que se puede solicitar para los análisis devueltos.

  • fabricante

    string

    El fabricante del escáner.

  • modelo

    string

    El modelo del escáner (si está disponible) o una descripción genérica

  • nombre

    string

    Un nombre legible para que el escáner lo muestre en la IU.

  • protocolType

    string

    Una descripción legible del protocolo o el controlador que se usa para acceder al escáner, como Mopria, WSD o epsonds. Esto es principalmente útil para permitir que un usuario elija entre protocolos si un dispositivo admite varios protocolos.

  • scannerId

    string

    El ID de un escáner específico.

  • seguro

    boolean

    Si es verdadero, un objeto de escucha pasivo, como TLS o USB, no puede interceptar el transporte de la conexión del escáner.

ScannerOption

Chrome 125 y versiones posteriores

Propiedades

  • capacidad de configuración

    Indica si se puede cambiar la opción y de qué manera.

  • restricción

    Define OptionConstraint en la opción del análisis actual.

  • descripción

    string

    Es una descripción más larga de la opción.

  • Está activo

    boolean

    Indica que la opción está activa y se puede configurar o recuperar. Si es falso, no se establecerá la propiedad value.

  • isAdvanced

    boolean

    Indica que la IU no debe mostrar esta opción de forma predeterminada.

  • isAutoSettable

    boolean

    El controlador del escáner puede configurarlo automáticamente.

  • isDetectable

    boolean

    Indica que esta opción puede detectarse desde software.

  • isEmulated

    boolean

    Emulado por el controlador del escáner si es verdadero.

  • nombre

    string

    El nombre de la opción con letras minúsculas ASCII, números y guiones. No se permiten signos diacríticos.

  • título

    string

    Título imprimible de una línea.

  • tipo

    El tipo de datos que contiene la propiedad value, que es necesario para configurar esta opción.

  • Unidad

    Es la unidad de medida para esta opción.

  • valor

    string | número | boolean | number[] opcional

    El valor actual de la opción, si corresponde. Ten en cuenta que el tipo de datos de esta propiedad debe coincidir con el tipo de datos especificado en type.

ScanOptions

Propiedades

  • maxImages

    número opcional

    Es la cantidad permitida de imágenes analizadas. El valor predeterminado es 1.

  • mimeTypes

    string[] opcional

    Son los tipos de MIME que acepta el emisor.

ScanResults

Propiedades

  • dataUrls

    string[]

    Un array de URLs de imágenes de datos en un formato que se puede pasar como “src” valor a una etiqueta de imagen.

  • mimeType

    string

    Es el tipo de MIME de dataUrls.

SetOptionResult

Chrome 125 y versiones posteriores

Propiedades

  • nombre

    string

    Indica el nombre de la opción que se estableció.

  • resultado

    Indica el resultado de configurar la opción.

SetOptionsResponse

Chrome 125 y versiones posteriores

Propiedades

  • opciones

    objeto opcional

    Una asignación de pares clave-valor actualizada de nombres de opciones a valores ScannerOption que contienen la configuración nueva después de intentar establecer todas las opciones suministradas Tiene la misma estructura que la propiedad options en OpenScannerResponse.

    Esta propiedad se establecerá incluso si algunas opciones no se establecieron correctamente, pero se desactivará si falla la recuperación de la configuración actualizada (por ejemplo, si se desconecta el escáner durante el análisis).

  • resultados

    Un array de resultados, uno por cada OptionSetting que se pasó.

  • scannerHandle

    string

    Proporciona el controlador del escáner que se pasa a setOptions().

StartScanOptions

Chrome 125 y versiones posteriores

Propiedades

  • formato

    string

    Especifica el tipo de MIME en el que se mostrarán los datos analizados.

  • maxReadSize

    número opcional

    Si se especifica un valor distinto de cero, limita la cantidad máxima de bytes analizados que se muestran en una sola respuesta readScanData a ese valor. El valor más pequeño permitido es 32,768 (32 KB). Si no se especifica esta propiedad, el tamaño de un fragmento devuelto puede ser tan grande como toda la imagen escaneada.

StartScanResponse

Chrome 125 y versiones posteriores

Propiedades

  • trabajo

    string opcional

    Si result es SUCCESS, proporciona un controlador que se puede usar para leer los datos del análisis o cancelar el trabajo.

  • resultado

    Es el resultado del inicio de un análisis. Si el valor es SUCCESS, se propagará la propiedad job.

  • scannerHandle

    string

    Proporciona el mismo controlador de escáner que se pasó a startScan().

Métodos

cancelScan()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Cancela un análisis iniciado y muestra una promesa que se resuelve con un objeto CancelScanResponse. Si se usa una devolución de llamada, se le pasa el objeto en su lugar.

Parámetros

  • trabajo

    string

    El controlador de un trabajo de análisis activo que antes se mostró mediante una llamada a startScan.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (response: CancelScanResponse) => void

Muestra

  • Promise&lt;CancelScanResponse&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

closeScanner()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Cierra el escáner con el controlador pasado y muestra una promesa que se resuelve con un objeto CloseScannerResponse. Si se usa una devolución de llamada, se le pasa el objeto en su lugar. Incluso si la respuesta no es exitosa, el controlador proporcionado deja de ser válido y no debe usarse para otras operaciones.

Parámetros

  • scannerHandle

    string

    Especifica el controlador de un escáner abierto que se mostró antes desde una llamada a openScanner.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (response: CloseScannerResponse) => void

Muestra

  • Promise&lt;CloseScannerResponse&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getOptionGroups()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Obtiene los nombres de los grupos y las opciones de miembros de un escáner que openScanner abrió antes. Este método muestra una promesa que se resuelve con un objeto GetOptionGroupsResponse. Si se pasa una devolución de llamada a esta función, los datos que se muestran se le pasan a ella.

Parámetros

Muestra

  • Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getScannerList()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

Obtiene la lista de analizadores disponibles y muestra una promesa que se resuelve con un objeto GetScannerListResponse. Si se pasa una devolución de llamada a esta función, los datos que se muestran se le pasan a ella.

Parámetros

Muestra

  • Promise&lt;GetScannerListResponse&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

openScanner()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

Abre un escáner para obtener acceso exclusivo y muestra una promesa que se resuelve con un objeto OpenScannerResponse. Si se pasa una devolución de llamada a esta función, los datos que se muestran se le pasan a ella.

Parámetros

  • scannerId

    string

    El ID de un escáner que se abrirá. Este valor es el que se muestra en una llamada anterior a getScannerList.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (response: OpenScannerResponse) => void

Muestra

  • Promise&lt;OpenScannerResponse&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

readScanData()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Lee el siguiente fragmento de datos de imagen disponibles desde un controlador de trabajo activo y muestra una promesa que se resuelve con un objeto ReadScanDataResponse. Si se usa una devolución de llamada, se le pasa el objeto en su lugar.

**Nota:**Es válido que el resultado de una respuesta sea SUCCESS con un miembro data de longitud cero. Esto significa que el escáner sigue funcionando, pero aún no tiene datos adicionales listos. El emisor debe esperar un momento y volver a intentarlo.

Cuando se complete el trabajo de análisis, la respuesta tendrá el valor de resultado EOF. Esta respuesta puede contener un miembro data final distinto de cero.

Parámetros

Muestra

  • Promise&lt;ReadScanDataResponse&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

scan()

Promesa
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

Realiza un análisis de documento y muestra una promesa que se resuelve con un objeto ScanResults. Si se pasa una devolución de llamada a esta función, los datos devueltos se pasan allí.

Parámetros

  • opciones

    Un objeto que contiene parámetros de análisis.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (result: ScanResults) => void

Muestra

  • Promise&lt;ScanResults&gt;

    Chrome 96 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

setOptions()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Establece opciones en el análisis especificado y muestra una promesa que se resuelve con un objeto SetOptionsResponse que contiene el resultado de intentar establecer cada valor en el orden del objeto OptionSetting pasado. Si se usa una devolución de llamada, se le pasa el objeto en su lugar.

Parámetros

  • scannerHandle

    string

    El controlador del escáner para configurar las opciones. Debe ser un valor que se mostró antes de una llamada a openScanner.

  • opciones

    Una lista de objetos OptionSetting que se aplicarán al escáner.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (response: SetOptionsResponse) => void

Muestra

  • Promise&lt;SetOptionsResponse&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

startScan()

Promesa Chrome 125 y versiones posteriores .
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Inicia un análisis en el escáner especificado y muestra una promesa que se resuelve con StartScanResponse. Si se usa una devolución de llamada, se le pasa el objeto en su lugar. Si la llamada se realizó correctamente, la respuesta incluye un identificador de trabajo que puede usarse en llamadas posteriores para leer datos de análisis o cancelarlo.

Parámetros

  • scannerHandle

    string

    El controlador de un escáner abierto. Debe ser un valor que se mostró antes de una llamada a openScanner.

  • opciones

    Un objeto StartScanOptions que indica las opciones que se usarán para el análisis. La propiedad StartScanOptions.format debe coincidir con una de las entradas que se muestran en el ScannerInfo del escáner.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (response: StartScanResponse) => void

Muestra

  • Promise&lt;StartScanResponse&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.