chrome.documentScan

Descripción

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

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

Permisos

documentScan

Disponibilidad

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

Conceptos y uso

Esta API admite dos métodos para escanear documentos. Si tu caso de uso puede funcionar con cualquier escáner y no requiere control de la configuración, usa el método 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 control de configuración, llama a scan(). Este método toma un objeto ScanOptions y muestra una promesa que se resuelve con un objeto ScanResults. Las capacidades de esta opción se limitan a la cantidad de análisis y los tipos de MIME que aceptará el llamador. Los análisis se muestran como URLs para mostrarlos en una etiqueta <img> de una interfaz de usuario.

Análisis complejo

Los análisis complejos se realizan en tres fases, como se describe en esta sección. Este esquema no describe cada argumento de método ni cada propiedad que se muestra en una respuesta. Solo está pensado para brindarte una guía general para escribir el código del escáner.

Campañas discovery

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

    • El objeto de respuesta contiene un array de objetos ScannerInfo.
    • El array puede contener varias entradas para un solo escáner si ese escáner admite varios protocolos o métodos de conexión.
  2. Selecciona un análisis del array que se muestra y guarda el valor de su propiedad scannerId.

    Utiliza las propiedades de los objetos ScannerInfo individuales para distinguir entre varios objetos para el mismo análisis. Los objetos del mismo análisis tendrán el mismo valor para la propiedad deviceUuid. ScannerInfo también contiene una propiedad imageFormats con un array de tipos de imágenes compatibles.

Configuración del análisis

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

    • Una propiedad scannerHandle, que deberás guardar.

    • Una propiedad de opciones que contiene propiedades específicas del análisis, que deberás configurar. Consulta Recupera las opciones del escáner para obtener más información.

  2. Si necesitas que el usuario proporcione valores para las opciones del análisis, crea una interfaz de usuario (opcional). Necesitarás las opciones del análisis que se proporcionaron en el paso anterior y deberás recuperar los grupos de opciones que proporcionó el análisis. Consulta Construye una interfaz de usuario para obtener más información.

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

  4. Pasa el array de objetos OptionSetting a setOptions() para establecer opciones para el análisis. Muestra una promesa que se resuelve con un SetOptionsResponse. Este objeto contiene una versión actualizada de las opciones del análisis que se recuperaron en el paso 1 de la configuración del análisis.

    Dado que cambiar una opción puede alterar las restricciones de otra opción, es posible que debas repetir estos pasos varias veces.

análisis

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

  2. Pasa el controlador del trabajo a readScanData(). Muestra una promesa que se resuelve con un objeto ReadScanDataResponse. Si los datos se leyeron 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 un porcentaje estimado de los datos totales que se entregaron hasta el momento.

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

Cuando se alcance el final del análisis, llama a closeScanner() con el controlador del análisis guardado en el paso 3. Muestra una promesa que se resuelve con un CloseScannerResponse. Llamar a cancelScan() en cualquier momento después de la creación del trabajo finalizará el análisis.

Objetos de respuesta

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

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

Opciones de análisis

Las opciones de escáner varían considerablemente según el dispositivo. En consecuencia, no es posible reflejar las opciones del escáner directamente dentro de la API de documentScan. Para solucionar este problema, el OpenScannerResponse (recuperado mediante openScanner()) y el SetOptionsResponse (el objeto de respuesta para setOptions()) contienen una propiedad options, que es un objeto que contiene opciones específicas del escáner. Cada opción es 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.

La estructura generalmente se ve de la siguiente manera:

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

Por ejemplo, imagina un escáner que devuelve opciones denominadas “source” y “resolution”. La estructura del objeto options que se muestra será similar al siguiente ejemplo. Para simplificar, solo se muestran las respuestas ScannerOption parciales.

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

Construir una interfaz de usuario

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

Algunos escáneres agrupan las opciones en formas específicas del dispositivo. No afectan los comportamientos de las opciones, pero como estos grupos se pueden mencionar en la documentación del producto de un escáner, esos grupos deben mostrarse al usuario. Para recuperar estos grupos, llama a getOptionGroups(). Esto muestra una promesa que se resuelve con un objeto GetOptionGroupsResponse. Su propiedad groups contiene un array de grupos específico del análisis. Usa la información de estos grupos para organizar las opciones de OpenScannerResponse que se mostrarán.

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

Como se indica en la configuración de Scanner, cambiar una opción puede alterar las restricciones de otra. Es por eso que setOptionsResponse (el objeto de respuesta de setOptions()) contiene otra propiedad options. Úsalo para actualizar la interfaz de usuario. Luego, repite la acción según sea necesario hasta que se configuren todas las opciones.

Cómo configurar las opciones del escáner

Para configurar las opciones del escáner, pasa un array de objetos OptionSetting a setOptions(). Para ver un ejemplo, consulta la siguiente sección Escanea la página de tamaño una letra.

Ejemplos

Recupera una página como un BLOB

En este ejemplo, se muestra una forma de recuperar una página del escáner como un BLOB y se 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" });
}

Escanea una página de tamaño letra

En este ejemplo, se muestra cómo seleccionar un escáner, configurar sus opciones y abrirlo. Luego, recupera el contenido de una sola página y cierra el análisis. Este proceso se demuestra con getScannerList(), openScanner(), setOptions() y closeScanner(). Ten en cuenta que el contenido de la página se recupera mediante una llamada a 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);
}

Mostrar la configuración

Como se indica en otro lugar, para mostrar las opciones de configuración de un escáner a un usuario, se requiere llamar a getOptionGroups(), además de las opciones del escáner que se muestran después de una llamada a openScanner(). Esto es para que las opciones se puedan mostrar a los usuarios de los grupos definidos por el fabricante. Este ejemplo 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

Pendiente

Propiedades

  • trabajo

    cadena

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

  • resultado

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

CloseScannerResponse

Pendiente

Propiedades

  • resultado

    El resultado que se obtiene al 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

    cadena

    El mismo controlador de análisis que se pasó a closeScanner.

Configurability

Pendiente

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

Pendiente

Indica cómo se conectó el escáner a la computadora.

Enum

ConstraintType

Pendiente

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

Enum

"INT_RANGE"
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á su propiedad list.

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

"INT_LIST"
La restricción en una lista específica de valores OptionType.INT. La propiedad OptionConstraint.list contendrá valores long y no se establecerá el resto de las propiedades.

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

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

DeviceFilter

Pendiente

Propiedades

  • local

    booleano opcional

    Solo devuelve los escáneres conectados directamente a la computadora.

  • seguro

    booleano opcional

    Solo muestra escáneres que usan un transporte seguro, como USB o TLS.

GetOptionGroupsResponse

Pendiente

Propiedades

  • grupos

    OptionGroup[] opcional

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

  • resultado

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

  • scannerHandle

    cadena

    El mismo controlador de análisis que se pasó a getOptionGroups.

GetScannerListResponse

Pendiente

Propiedades

  • resultado

    El resultado de la enumeración. Ten en cuenta que se podrían 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

Pendiente

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 que se obtiene al abrir el escáner. Si el valor es SUCCESS, se propagarán las propiedades scannerHandle y options.

  • scannerHandle

    cadena opcional

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

  • scannerId

    cadena

    El ID del escáner se pasó a openScanner().

OperationResult

Pendiente

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 el argumento que se pasó al método no son válidos.

"WRONG_TYPE"
El valor proporcionado es el 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 feed de documentos está vacío.

"COVER_OPEN"
La cubierta de la cama 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 para completar la operación.

"UNREACHABLE"
No se puede acceder al dispositivo.

"MISSING"
El dispositivo está desconectado.

"INTERNAL_ERROR"
Se produjo un error en otro lugar que no es la aplicación que realiza la llamada.

OptionConstraint

Pendiente

Propiedades

  • list

    string[]|number[] optional

  • temp.

    número opcional

  • min

    número opcional

  • cuantitativo

    número opcional

OptionGroup

Pendiente

Propiedades

  • miembros.

    string[]

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

  • title

    cadena

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

OptionSetting

Pendiente

Propiedades

  • name

    cadena

    Indica el nombre de la opción que se debe configurar.

  • 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.

  • value

    string|number|boolean|number[] optional

    Indica el valor que se debe establecer. No la establezcas 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

Pendiente

Es el tipo de datos de una opción.

Enum

"UNKNOWN"
El tipo de datos de la opción es desconocido. Se desactivará la propiedad value.

"BOOL"
La propiedad value tendrá un valor truefalse.

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

"FIXED"
Es un doble dentro del rango -32768-32767.9999 con una resolución de 1/65535. La propiedad value será doble o doble [] dependiendo de si la opción admite más de un valor. Los valores dobles que no se pueden representar con exactitud se redondearán al rango y la precisión disponibles.

"STRING"
Secuencia de cualquier byte excepto NUL ("\0"). La propiedad value será una DOMString.

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

"GROUP"
Opción de agrupación. No tiene valor. Se incluye por motivos de compatibilidad, pero, por lo general, no se muestra en valores ScannerOption. Usa getOptionGroups() para recuperar la lista de grupos con sus opciones de miembros.

OptionUnit

Pendiente

Indica el tipo de datos para ScannerOption.unit.

Enum

"UNIDAD"
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, las dimensiones de análisis.

“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 de escaneo.

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

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

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

ReadScanDataResponse

Pendiente

Propiedades

  • datos

    ArrayBuffer opcional

    Si result es SUCCESS, contiene el siguiente fragmento de los datos de la imagen escaneada. Si result es EOF, contiene el último fragmento de los 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 entregó hasta el momento, en el rango de 0 a 100.

  • trabajo

    cadena

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

  • resultado

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

ScannerInfo

Pendiente

Propiedades

  • connectionType

    Indica cómo se conectó el escáner a la computadora.

  • deviceUuid

    cadena

    Para establecer coincidencias con otras entradas de ScannerInfo que apuntan al mismo dispositivo físico.

  • imageFormats

    string[]

    Un array de tipos de MIME que se puede solicitar para los análisis mostrados.

  • fabricante

    cadena

    El fabricante del escáner.

  • model

    cadena

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

  • name

    cadena

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

  • protocolType

    cadena

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

  • scannerId

    cadena

    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 de escáner.

ScannerOption

Pendiente

Propiedades

  • configuración

    Indica si se puede cambiar la opción y cómo.

  • restricción

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

  • description

    cadena

    Una descripción más larga de la opción.

  • isActive

    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 debería mostrar esta opción de forma predeterminada.

  • isAutoSettable

    boolean

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

  • isDetectable

    boolean

    Indica que esta opción se puede detectar desde el software.

  • isEmulated

    boolean

    El controlador del escáner lo emula si es verdadero.

  • name

    cadena

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

  • title

    cadena

    Es un título imprimible de una línea.

  • Tipo

    Es el tipo de datos contenido en la propiedad value, que es necesario para configurar esta opción.

  • Unidad

    La unidad de medida para esta opción.

  • value

    string|number|boolean|number[] optional

    El valor actual de la opción, si es relevante. 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

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

  • mimeTypes

    string[] opcional

    Los tipos de MIME que acepta el emisor.

ScanResults

Propiedades

  • dataUrls

    string[]

    Es un array de URLs de imágenes de datos en un formato que se puede pasar como el valor "src" a una etiqueta de imagen.

  • mimeType

    cadena

    Es el tipo de MIME de dataUrls.

SetOptionResult

Pendiente

Propiedades

  • name

    cadena

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

  • resultado

    Indica el resultado de configurar la opción.

SetOptionsResponse

Pendiente

Propiedades

  • Opciones

    objeto opcional

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

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

  • resultados

    Un array de resultados, uno para cada uno de los OptionSetting pasados

  • scannerHandle

    cadena

    Proporciona el controlador del análisis que se pasa a setOptions().

StartScanOptions

Pendiente

Propiedades

  • formato

    cadena

    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 de readScanData para 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 mostrado puede ser tan grande como toda la imagen escaneada.

StartScanResponse

Pendiente

Propiedades

  • trabajo

    cadena opcional

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

  • resultado

    El resultado que se obtiene cuando se inicia un análisis. Si el valor es SUCCESS, se propagará la propiedad job.

  • scannerHandle

    cadena

    Proporciona el mismo controlador de análisis que se pasó a startScan().

Métodos

cancelScan()

Promesa Pendiente
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

    cadena

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

  • callback

    Función opcional

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

    (response: CancelScanResponse)=>void

Devuelve

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

closeScanner()

Promesa Pendiente
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Cierra el escáner con el controlador que se pasó 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 correcta, el identificador proporcionado deja de ser válido y no debe usarse en otras operaciones.

Parámetros

  • scannerHandle

    cadena

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

  • callback

    Función opcional

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

    (response: CloseScannerResponse)=>void

Devuelve

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

getOptionGroups()

Promesa Pendiente
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Obtiene los nombres de los grupos y las opciones de miembros de un análisis que abrió openScanner. 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, se le pasan los datos que se muestran en su lugar.

Parámetros

Devuelve

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

getScannerList()

Promesa Pendiente
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

Parámetros

Devuelve

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

openScanner()

Promesa Pendiente
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, se le pasan los datos que se muestran en su lugar.

Parámetros

  • scannerId

    cadena

    El ID de un escáner que se abrirá. Este valor es uno 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

Devuelve

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

readScanData()

Promesa Pendiente
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Lee el siguiente fragmento de datos de imagen disponible 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 un resultado de respuesta sea SUCCESS con un miembro de data de longitud cero. Esto significa que el escáner aún funciona, pero aún no tiene datos adicionales listos. El emisor debería esperar unos momentos y volver a intentarlo.

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

Parámetros

Devuelve

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

scan()

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

Analiza un documento y muestra una promesa que se resuelve con un objeto ScanResults. Si se pasa una devolución de llamada a esta función, en su lugar se le pasan los datos que se muestran.

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

Devuelve

  • Promise<ScanResults>

    Chrome 96 y versiones posteriores

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

setOptions()

Promesa Pendiente
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Establece opciones en el escáner 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

    cadena

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

  • Opciones

    Una lista de objetos OptionSetting que se aplicarán al análisis.

  • callback

    Función opcional

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

    (response: SetOptionsResponse)=>void

Devuelve

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

startScan()

Promesa Pendiente
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 un 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 incluirá un controlador de trabajo que puede usarse en llamadas posteriores para leer los datos del análisis o cancelarlo.

Parámetros

  • scannerHandle

    cadena

    El controlador de un escáner abierto. Debe ser un valor que previamente mostró 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

Devuelve

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