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 apps y extensiones vean el contenido de los documentos en papel en un escáner de documentos adjunto.
Permisos
documentScanDisponibilidad
Conceptos y uso
Esta API admite dos formas de escanear documentos. Si tu caso de uso puede funcionar con cualquier escáner y no requiere el control de la configuración, usa el método scan(). Los casos de uso más complejos requieren una combinación de métodos,
que solo se admiten en Chrome 124 y versiones posteriores.
Análisis simple
Para casos de uso simples, es decir, aquellos que pueden funcionar con cualquier escáner y no requieren control de la configuración, llama a scan(). Este método toma un objeto ScanOptions y devuelve 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 emisor. Los análisis se devuelven como URLs para mostrarse en una etiqueta <img> de una interfaz de usuario.
Análisis complejos
Los análisis complejos se realizan en tres fases, como se describe en esta sección. En este esquema, no se describen todos los argumentos de los métodos ni todas las propiedades que se devuelven en una respuesta. Solo tiene el objetivo de brindarte una guía general para escribir código de escáner.
Discovery
Llama a
getScannerList(). Los escáneres disponibles se devuelven en una promesa que se resuelve con unGetScannerListResponse.- El objeto de respuesta contiene un array de objetos
ScannerInfo. - El array puede contener varias entradas para un solo escáner si este admite varios protocolos o métodos de conexión.
- El objeto de respuesta contiene un array de objetos
Selecciona un escáner del array que se muestra y guarda el valor de su propiedad
scannerId.Usa las propiedades de los objetos
ScannerInfoindividuales para distinguir entre varios objetos del mismo escáner. Los objetos del mismo escáner tendrán el mismo valor para la propiedaddeviceUuid.ScannerInfotambién contiene una propiedadimageFormatsque incluye un array de tipos de imágenes compatibles.
Configuración del escáner
Llama a
openScanner()y pasa el ID del escáner guardado. Devuelve una promesa que se resuelve con unOpenScannerResponse. El objeto de respuesta contiene lo siguiente:Una propiedad
scannerHandle, que deberás guardarUna propiedad de opciones que contiene propiedades específicas del escáner, que deberás configurar. Consulta Recupera las opciones del escáner para obtener más información.
Si necesitas que el usuario proporcione valores para las opciones del escáner, crea una interfaz de usuario (opcional). Necesitarás las opciones del escáner que se proporcionaron en el paso anterior y deberás recuperar los grupos de opciones que proporciona el escáner. Consulta Cómo construir una interfaz de usuario para obtener más información.
Crea un array de objetos
OptionSettingcon valores programáticos o proporcionados por el usuario. Consulta Configura las opciones del escáner para obtener más información.Pasa el array de objetos
OptionSettingasetOptions()para establecer las opciones del escáner. Devuelve una promesa que se resuelve con un objetoSetOptionsResponse. Este objeto contiene una versión actualizada de las opciones del escáner recuperadas en el paso 1 de la configuración del escáner.Dado que cambiar una opción puede alterar las restricciones de otra, es posible que debas repetir estos pasos varias veces.
Análisis
Crea un objeto
StartScanOptionsy pásalo astartScan(). Devuelve una promesa que se resuelve con unStartScanResponse. Su propiedadjobes un controlador que usarás para leer los datos del análisis o cancelarlo.Pasa el identificador del trabajo a
readScanData(). Devuelve una promesa que se resuelve con un objetoReadScanDataResponse. Si los datos se leyeron correctamente, su propiedadresultes igual aSUCCESSy su propiedaddatacontiene unArrayBuffercon parte del análisis. Ten en cuenta queestimatedCompletioncontiene un porcentaje estimado de los datos totales que se entregaron hasta el momento.Repite el paso anterior hasta que la propiedad
resultsea igual aEOFo un error.
Cuando se llegue al final del análisis, llama a closeScanner() con el controlador del escáner guardado en el paso 3. Devuelve una promesa que se resuelve con un objeto
CloseScannerResponse. Si llamas a
cancelScan() en cualquier momento después de que se cree el trabajo,
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 es un 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 sea igual a SUCCESS.
Opciones del escáner
Las opciones de escáner varían considerablemente según el dispositivo. Por lo tanto, no es posible reflejar las opciones del escáner directamente en la API de documentScan. Para solucionar este problema, OpenScannerResponse (recuperado con openScanner()) y 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 un mapa de pares clave-valor
en el que la clave es una opción específica de Dispositivos y el valor es una instancia de
ScannerOption.
Por lo general, la estructura se ve de la siguiente manera:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Por ejemplo, imagina un escáner que devuelve opciones llamadas "fuente" y "resolución". La estructura del objeto options que se devuelve será similar
al siguiente ejemplo. Para simplificar, solo se muestran respuestas parciales de ScannerOption.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Construir una interfaz de usuario
Aunque no es obligatorio usar esta API, es posible que quieras que un usuario elija el valor de
una opción en particular. Esto requiere una interfaz de usuario. Usa
OpenScannerResponse (abierto por
openScanner()) para recuperar las opciones del escáner
conectado, como se describe en la sección anterior.
Algunos escáneres agrupan las opciones de formas específicas del dispositivo. No afectan los comportamientos de las opciones, pero, dado que estos grupos pueden mencionarse en la documentación del producto de un escáner, se deben mostrar al usuario. Puedes recuperar estos grupos llamando a getOptionGroups(). Esto devuelve una
promesa que se resuelve con un
objeto GetOptionGroupsResponse. Su propiedad groups contiene un array de grupos específico del escáner. Usa la información de estos grupos para organizar las opciones en OpenScannerResponse para su visualización.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Como se indica en Configuración del escáner, cambiar una opción puede alterar las restricciones
de otra. Por este motivo,
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 se configuren todas las opciones.
Configura 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 una página de tamaño carta.
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 browser.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != browser.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await browser.documentScan.readScanData(job);
while (response.result == browser.documentScan.OperationResult.SUCCESS) {
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
} else {
// Delay so hardware can make progress.
await new Promise(r => setTimeout(r, 100));
}
response = await browser.documentScan.readScanData(job);
}
if (response.result != browser.documentScan.OperationResult.EOF) {
return null;
}
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
}
return new Blob(imgParts, { type: "image/jpeg" });
}
Escanea una página de tamaño carta
En este ejemplo, se muestra cómo seleccionar un escáner, establecer sus opciones y abrirlo. Luego,
recupera el contenido de una sola página y cierra el escáner. En este proceso,
se muestra cómo usar getScannerList(), openScanner(), setOptions() y
closeScanner(). Ten en cuenta que el contenido de la página se recupera llamando
a la función pageAsBlob() del ejemplo anterior.
async function scan() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.documentScan.openScanner(
response.scanners[0].scannerId);
const handle = scanner.scannerHandle;
let options = [];
for (source of scanner.options["source"].constraint.list) {
if (source.includes("ADF")) {
options.push({
name: "source",
type: browser.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: browser.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: browser.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await browser.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await browser.documentScan.closeScanner(handle);
}
Muestra la configuración
Como se indicó en otra parte, para mostrar las opciones de configuración de un escáner a un usuario, se debe llamar a getOptionGroups(), además de las opciones de escáner que se devuelven de una llamada a openScanner(). Esto permite que se muestren opciones a los usuarios en grupos definidos por el fabricante. En este ejemplo, se muestra cómo hacerlo.
async function showConfig() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await browser.documentScan.getOptionGroups(scanner.scannerHandle);
for (const group of groups.groups) {
console.log("=== " + group.title + " ===");
for (const member of group.members) {
const option = scanner.options[member];
if (option.isActive) {
console.log(" " + option.name + " = " + option.value);
} else {
console.log(" " + option.name + " is inactive");
}
}
}
}
Tipos
CancelScanResponse
Propiedades
-
trabajo
string
Proporciona el mismo identificador de trabajo que se pasó a
cancelScan(). -
resultado
Es el resultado de la cancelación del análisis del backend. Si el resultado es
OperationResult.SUCCESSoOperationResult.CANCELLED, se canceló el análisis y el escáner está listo para iniciar uno nuevo. Si el resultado esOperationResult.DEVICE_BUSY, el escáner aún está procesando la cancelación solicitada; el emisor debe esperar un momento y volver a intentar la solicitud. Otros valores de resultado indican un error permanente que no se debe reintentar.
CloseScannerResponse
Propiedades
-
resultado
Es el resultado de cerrar el escáner. Incluso si este valor no es
SUCCESS, el controlador no será válido y no se debe usar para ninguna otra operación. -
scannerHandle
string
Es el mismo controlador de escáner que se pasó a
closeScanner.
Configurability
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 el software.
"HARDWARE_CONFIGURABLE"
El usuario puede configurar la opción activando o presionando un botón en el escáner.
ConnectionType
Indica cómo se conecta el escáner a la computadora.
Enum
"UNSPECIFIED"
"USB"
"NETWORK"
ConstraintType
Es el tipo de datos de restricción representado por un 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 su propiedad list no se establecerá.
"FIXED_RANGE"
La restricción en un rango de valores de OptionType.FIXED. Las propiedades min, max y quant de OptionConstraint serán double, y su propiedad list no se establecerá.
"INT_LIST"
La restricción en una lista específica de valores OptionType.INT. La propiedad OptionConstraint.list contendrá valores long, y las otras propiedades no se establecerán.
"FIXED_LIST"
La restricción en una lista específica de valores de OptionType.FIXED. La propiedad OptionConstraint.list contendrá valores double, y las otras propiedades no se establecerán.
"STRING_LIST"
La restricción en una lista específica de valores OptionType.STRING. La propiedad OptionConstraint.list contendrá valores DOMString, y las otras propiedades no se establecerán.
DeviceFilter
Propiedades
-
local
booleano opcional
Solo se muestran los escáneres que están conectados directamente a la computadora.
-
seguro
booleano opcional
Solo se devuelven los escáneres que usan un transporte seguro, como USB o TLS.
GetOptionGroupsResponse
Propiedades
-
grupos
OptionGroup[] opcional
Si
resultesSUCCESS, 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 de este parámetro es
SUCCESS, se propagará la propiedadgroups. -
scannerHandle
string
Es el mismo controlador de escáner que se pasó a
getOptionGroups.
GetScannerListResponse
Propiedades
-
resultado
Es el resultado de la enumeración. Ten en cuenta que se podrían devolver resultados parciales incluso si esto indica un error.
-
escáneres
Una lista posiblemente vacía de escáneres que coinciden con el
DeviceFilterproporcionado.
OpenScannerResponse
Propiedades
-
opciones
objeto opcional
Si
resultesSUCCESS, proporciona un mapa de pares clave-valor en el que la clave es una opción específica del dispositivo y el valor es una instancia deScannerOption. -
resultado
Es el resultado de abrir el escáner. Si el valor de este es
SUCCESS, se propagarán las propiedadesscannerHandleyoptions. -
scannerHandle
string opcional
Si
resultesSUCCESS, un controlador para el escáner que se puede usar para operaciones adicionales. -
scannerId
string
Es el ID del escáner que se pasa a
openScanner().
OperationResult
Es un enum 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 pasaron al método no son válidos.
"WRONG_TYPE"
El valor proporcionado es del 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 tapa 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"
No hay suficiente memoria disponible en la Chromebook 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 que no es la aplicación que realiza la llamada.
OptionConstraint
Propiedades
-
list
string[] | number[] opcional
-
máx.
number opcional
-
min
number opcional
-
quant
number opcional
-
tipo
OptionGroup
Propiedades
-
miembros
string[]
Es 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
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 | number | boolean | number[] opcional
Indica el valor que se establecerá. Deja sin configurar para solicitar la configuración automática de las opciones que tienen habilitado
autoSettable. El tipo de datos proporcionado paravaluedebe coincidir contype.
OptionType
Es el tipo de datos de una opción.
Enum
"UNKNOWN"
Se desconoce el tipo de datos de la opción. Se anulará la propiedad value.
"BOOL"
La propiedad value será una de truefalse.
"INT"
Un número entero de 32 bits con firma. La propiedad value será de tipo long o long[], según si la opción toma más de un valor.
"FIXED"
Un valor de tipo double en el rango -32768-32767.9999 con una resolución de 1/65535. La propiedad value será double o double[], según si la opción toma más de un valor. Los valores dobles que no se puedan representar con exactitud se redondearán al rango y la precisión disponibles.
"STRING"
Es una secuencia de cualquier byte, excepto NUL ('\0'). La propiedad value será una DOMString.
"BUTTON"
Una opción de este tipo no tiene valor. En cambio, establecer 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 valores predeterminados o para indicarle a un alimentador automático de documentos que avance a la siguiente hoja de papel.
"GROUP"
Opción de agrupación. No contiene un valor. Se incluye por motivos de compatibilidad, pero normalmente no se devolverá en los valores de ScannerOption. Usa getOptionGroups() para recuperar la lista de grupos con sus opciones de miembros.
OptionUnit
Indica el tipo de datos para ScannerOption.unit.
Enum
"UNITLESS"
El valor es un número sin unidad. Por ejemplo, puede ser un umbral.
"PIXEL"
El valor es una cantidad de píxeles, por ejemplo, las 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 de un 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.
"MICROSECOND"
El valor se mide en microsegundos, por ejemplo, el tiempo de exposición.
ReadScanDataResponse
Propiedades
-
datos
ArrayBuffer opcional
Si
resultesSUCCESS, contiene el siguiente fragmento de datos de imagen analizados. SiresultesEOF, contiene el último fragmento de datos de imagen analizados. -
estimatedCompletion
number opcional
Si
resultesSUCCESS, se trata de una estimación de la cantidad de datos de análisis totales que se entregaron hasta el momento, en el rango de 0 a 100. -
trabajo
string
Proporciona el identificador de trabajo que se pasa a
readScanData(). -
resultado
Es el resultado de la lectura de datos. Si su valor es
SUCCESS,datacontiene el siguiente fragmento (posiblemente de longitud cero) de datos de imagen que está listo para leerse. Si su valor esEOF,datacontiene el último fragmento de datos de imagen.
ScannerInfo
Propiedades
-
connectionType
Indica cómo se conecta el escáner a la computadora.
-
deviceUuid
string
Para que coincida con otras entradas de
ScannerInfoque apuntan al mismo dispositivo físico. -
imageFormats
string[]
Es un array de tipos de MIME que se pueden solicitar para los análisis devueltos.
-
manufacturer
string
Es el fabricante del escáner.
-
modelo
string
El modelo del escáner, si está disponible, o una descripción genérica.
-
nombre
string
Es un nombre legible por humanos para que el escáner lo muestre en la IU.
-
protocolType
string
Es una descripción legible por humanos 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.
-
scannerId
string
Es el ID de un escáner específico.
-
seguro
booleano
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
Propiedades
-
configurabilidad
Indica si la opción se puede cambiar y cómo.
-
restricción
OptionConstraint opcional
Define
OptionConstrainten la opción de escáner actual. -
descripción
string
Es una descripción más larga de la opción.
-
Está activo
booleano
Indica que la opción está activa y se puede configurar o recuperar. Si es falso, no se establecerá la propiedad
value. -
isAdvanced
booleano
Indica que la IU no debe mostrar esta opción de forma predeterminada.
-
isAutoSettable
booleano
El controlador del escáner puede configurarlo automáticamente.
-
isDetectable
booleano
Indica que esta opción se puede detectar desde el software.
-
isEmulated
booleano
Si es verdadero, el controlador del escáner lo emula.
-
nombre
string
El nombre de la opción con letras ASCII en minúscula, números y guiones. No se permiten signos diacríticos.
-
título
string
Un título de una línea que se puede imprimir.
-
tipo
Es el tipo de datos que contiene la propiedad
value, que se necesita para configurar esta opción. -
Unidad
Es la unidad de medida de esta opción.
-
valor
string | number | boolean | number[] opcional
Es 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
number opcional
Es la cantidad de imágenes analizadas permitidas. 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 el valor "src" a una etiqueta de imagen.
-
mimeType
string
Es el tipo de MIME de
dataUrls.
SetOptionResult
Propiedades
-
nombre
string
Indica el nombre de la opción que se estableció.
-
resultado
Indica el resultado de configurar la opción.
SetOptionsResponse
Propiedades
-
opciones
objeto opcional
Es un mapa de pares clave-valor actualizado de los nombres de las opciones a los valores
ScannerOptionque contienen la configuración nueva después de intentar establecer todas las opciones proporcionadas. Tiene la misma estructura que la propiedadoptionsenOpenScannerResponse.Esta propiedad se establecerá incluso si algunas opciones no se establecieron correctamente, pero se anulará si falla la recuperación de la configuración actualizada (por ejemplo, si el escáner se desconecta durante el escaneo).
-
resultados
Un array de resultados, uno para cada
OptionSettingque se pasa. -
scannerHandle
string
Proporciona el controlador del escáner que se pasó a
setOptions().
StartScanOptions
Propiedades
-
formato
string
Especifica el tipo de MIME en el que se devolverán los datos escaneados.
-
maxReadSize
number opcional
Si se especifica un valor distinto de cero, se limita la cantidad máxima de bytes analizados que se devuelven en una sola respuesta
readScanDataa ese valor. El valor mínimo permitido es 32768 (32 KB). Si no se especifica esta propiedad, el tamaño de un fragmento devuelto puede ser tan grande como toda la imagen analizada.
StartScanResponse
Propiedades
-
trabajo
string opcional
Si
resultesSUCCESS, proporciona un controlador que se puede usar para leer los datos del análisis o cancelar el trabajo. -
resultado
Es el resultado de iniciar un análisis. Si el valor de este parámetro es
SUCCESS, se propagará la propiedadjob. -
scannerHandle
string
Proporciona el mismo controlador de escáner que se pasó a
startScan().
Métodos
cancelScan()
browser.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
Cancela un análisis iniciado y devuelve una promesa que se resuelve con un objeto CancelScanResponse. Si se usa una devolución de llamada, se le pasa el objeto.
Parámetros
-
trabajo
string
Es el identificador de un trabajo de análisis activo que se devolvió anteriormente desde una llamada a
startScan.
Muestra
-
Promise<CancelScanResponse>
Devuelve una promesa que se resuelve con el resultado.
closeScanner()
browser.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
Cierra el escáner con el controlador pasado y devuelve una promesa que se resuelve con un objeto CloseScannerResponse. Si se usa una devolución de llamada, se le pasa el objeto. Incluso si la respuesta no es correcta, el controlador proporcionado deja de ser válido y no se debe usar para otras operaciones.
Parámetros
-
scannerHandle
string
Especifica el identificador de un escáner abierto que se devolvió anteriormente desde una llamada a
openScanner.
Muestra
-
Promise<CloseScannerResponse>
Devuelve una promesa que se resuelve con el resultado.
getOptionGroups()
browser.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
Obtiene los nombres de los grupos y las opciones de los miembros de un escáner que abrió openScanner anteriormente. Este método devuelve 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 devueltos.
Parámetros
-
scannerHandle
string
Es el controlador de un escáner abierto que se devuelve de una llamada a
openScanner.
Muestra
-
Promise<GetOptionGroupsResponse>
Devuelve una promesa que se resuelve con el resultado.
getScannerList()
browser.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
Obtiene la lista de escáneres disponibles y devuelve 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 devueltos.
Parámetros
-
filter
Un
DeviceFilterque indica qué tipos de escáneres se deben devolver.
Muestra
-
Promise<GetScannerListResponse>
Devuelve una promesa que se resuelve con el resultado y la lista de escáneres.
openScanner()
browser.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Abre un escáner para acceso exclusivo y devuelve 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 devueltos.
Parámetros
-
scannerId
string
Es el ID de un escáner que se abrirá. Este valor es el que se devuelve de una llamada anterior a
getScannerList.
Muestra
-
Promise<OpenScannerResponse>
Devuelve una promesa que se resuelve con el resultado.
readScanData()
browser.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
Lee el siguiente fragmento de datos de imagen disponibles de un controlador de trabajo activo y devuelve una promesa que se resuelve con un objeto ReadScanDataResponse. Si se usa una devolución de llamada, se le pasa el objeto.
**Nota:**Es válido que un resultado de 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 de EOF. Esta respuesta puede contener un miembro data final que no sea cero.
Parámetros
-
trabajo
string
Es el identificador de trabajo activo que se devolvió anteriormente desde
startScan.
Muestra
-
Promise<ReadScanDataResponse>
Devuelve una promesa que se resuelve con el resultado.
scan()
browser.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
Realiza un escaneo de documentos y devuelve una promesa que se resuelve con un objeto ScanResults. Si se pasa una devolución de llamada a esta función, se le pasan los datos devueltos.
Parámetros
-
opciones
Es un objeto que contiene parámetros de análisis.
Muestra
-
Promise<ScanResults>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Devuelve una promesa que se resuelve con los resultados del análisis.
setOptions()
browser.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
Establece opciones en el escáner especificado y devuelve 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.
Parámetros
-
scannerHandle
string
Es el controlador del escáner en el que se establecerán las opciones. Este debe ser un valor que se haya devuelto anteriormente desde una llamada a
openScanner. -
opciones
Es una lista de objetos
OptionSettingque se aplicarán al escáner.
Muestra
-
Promise<SetOptionsResponse>
Devuelve una promesa que se resuelve con el resultado.
startScan()
browser.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Inicia un análisis en el escáner especificado y devuelve una promesa que se resuelve con un StartScanResponse. Si se usa una devolución de llamada, se le pasa el objeto. Si la llamada se realizó correctamente, la respuesta incluirá un identificador de trabajo que se puede usar en llamadas posteriores para leer datos de análisis o cancelar un análisis.
Parámetros
-
scannerHandle
string
Es el controlador de un escáner abierto. Este debe ser un valor que se haya devuelto anteriormente desde una llamada a
openScanner. -
opciones
Un objeto
StartScanOptionsque indica las opciones que se usarán para el análisis. La propiedadStartScanOptions.formatdebe coincidir con una de las entradas que se devuelven en elScannerInfodel escáner.
Muestra
-
Promise<StartScanResponse>
Devuelve una promesa que se resuelve con el resultado.