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
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
Llama a
getScannerList()
. Los escáneres disponibles se muestran en una promesa que se resuelve con unaGetScannerListResponse
.- 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.
- El objeto de respuesta contiene un array de objetos
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 propiedaddeviceUuid
.ScannerInfo
también contiene una propiedadimageFormats
con un array de tipos de imágenes compatibles.
Configuración del análisis
Llama a
openScanner()
y pasa el ID de análisis guardado. Muestra una promesa que se resuelve con unOpenScannerResponse
. 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.
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.
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.Pasa el array de objetos
OptionSetting
asetOptions()
para establecer opciones para el análisis. Muestra una promesa que se resuelve con unSetOptionsResponse
. 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
Construye un objeto
StartScanOptions
y pásalo astartScan()
. Muestra una promesa que se resuelve con unStartScanResponse
. Su propiedadjob
es un controlador que usarás para leer los datos del análisis o cancelarlo.Pasa el controlador del trabajo a
readScanData()
. Muestra una promesa que se resuelve con un objetoReadScanDataResponse
. Si los datos se leyeron correctamente, su propiedadresult
es igual aSUCCESS
y su propiedaddata
contiene unArrayBuffer
con parte del análisis. Ten en cuenta queestimatedCompletion
contiene un porcentaje estimado de los datos totales que se entregaron hasta el momento.Repite el paso anterior hasta que la propiedad
result
sea igual aEOF
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
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
oOperationResult.CANCELLED
, se canceló el análisis y está listo para iniciar uno nuevo. Si el resultado esOperationResult.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
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
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
Indica cómo se conectó el escáner a la computadora.
Enum
ConstraintType
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
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
Propiedades
-
grupos
OptionGroup[] opcional
Si
result
esSUCCESS
, 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 propiedadgroups
. -
scannerHandle
cadena
El mismo controlador de análisis que se pasó a
getOptionGroups
.
GetScannerListResponse
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
Propiedades
-
Opciones
objeto opcional
Si
result
esSUCCESS
, 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 deScannerOption
. -
resultado
El resultado que se obtiene al abrir el escáner. Si el valor es
SUCCESS
, se propagarán las propiedadesscannerHandle
yoptions
. -
scannerHandle
cadena opcional
Si
result
esSUCCESS
, 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
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
Propiedades
-
list
string[] | number[] opcional
-
max
número opcional
-
min
número opcional
-
cuantitativo
número opcional
-
Tipo
OptionGroup
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
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
cadena | número | boolean | number[] opcional
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 paravalue
debe coincidir contype
.
OptionType
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 true
false.
"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.
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
Propiedades
-
datos
ArrayBuffer opcional
Si
result
esSUCCESS
, contiene el siguiente fragmento de los datos de la imagen escaneada. Siresult
esEOF
, contiene el último fragmento de los datos de la imagen analizada. -
estimatedCompletion
número opcional
Si
result
esSUCCESS
, 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 esEOF
,data
contiene el último fragmento de datos de imagen.
ScannerInfo
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
Propiedades
-
configuración
Indica si se puede cambiar la opción y cómo.
-
restricción
OptionConstraint opcional
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
cadena | número | boolean | number[] opcional
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
Propiedades
-
name
cadena
Indica el nombre de la opción que se configuró.
-
resultado
Indica el resultado de configurar la opción.
SetOptionsResponse
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 propiedadoptions
enOpenScannerResponse
.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
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
Propiedades
-
trabajo
cadena opcional
Si
result
esSUCCESS
, 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 propiedadjob
. -
scannerHandle
cadena
Proporciona el mismo controlador de análisis que se pasó a
startScan()
.
Métodos
cancelScan()
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
-
respuesta
-
Devuelve
-
Promise<CancelScanResponse>
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()
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
-
respuesta
-
Devuelve
-
Promise<CloseScannerResponse>
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()
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
-
scannerHandle
cadena
El controlador de un escáner abierto que se muestra de una llamada a
openScanner
. -
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(response: GetOptionGroupsResponse) => void
-
respuesta
-
Devuelve
-
Promise<GetOptionGroupsResponse>
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()
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
-
filter
Un objeto
DeviceFilter
que indica qué tipos de escáneres se deben mostrar. -
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(response: GetScannerListResponse) => void
-
respuesta
-
Devuelve
-
Promise<GetScannerListResponse>
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()
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
-
respuesta
-
Devuelve
-
Promise<OpenScannerResponse>
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()
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
-
trabajo
cadena
Controlador de trabajo activo que mostró
startScan
. -
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(response: ReadScanDataResponse) => void
-
respuesta
-
Devuelve
-
Promise<ReadScanDataResponse>
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()
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
-
resultado
-
Devuelve
-
Promise<ScanResults>
Chrome 96 y versiones posterioresLas 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()
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
-
respuesta
-
Devuelve
-
Promise<SetOptionsResponse>
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()
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 propiedadStartScanOptions.format
debe coincidir con una de las entradas que se muestran en elScannerInfo
del escáner. -
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(response: StartScanResponse) => void
-
respuesta
-
Devuelve
-
Promise<StartScanResponse>
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.