Descripción
Usa la API de chrome.documentScan
para descubrir y recuperar imágenes de 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
documentScan
Disponibilidad
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 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 son compatibles con 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 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 a los tipos de MIME que aceptará el llamador. Los análisis se muestran como URLs para mostrarse 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. En este esquema, no se describen todos los argumentos del método ni todas las propiedades que se muestran en una respuesta. Su único objetivo es brindarte una guía general para escribir código de escáner.
Discovery
Llama a
getScannerList()
. Los escáneres disponibles se muestran 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 objetos
ScannerInfo
individuales para distinguir entre varios objetos del mismo escáner. Los objetos del mismo escáner tendrán el mismo valor para la propiedaddeviceUuid
.ScannerInfo
también contiene una propiedadimageFormats
que contiene un array de tipos de imagen compatibles.
Configuración del escáner
Llama a
openScanner()
y pasa el ID del escáner guardado. Muestra una promesa que se resuelve con unOpenScannerResponse
. El objeto de respuesta contiene lo siguiente:Una propiedad
scannerHandle
, que deberás guardar.Es una propiedad de opciones que contiene propiedades específicas del escáner que deberás configurar. Consulta Cómo recuperar opciones de escáner para obtener más información.
(Opcional) Si necesitas que el usuario proporcione valores para las opciones del escáner, construye una interfaz de usuario. Necesitarás las opciones del escáner que proporcionó el paso anterior y deberás recuperar los grupos de opciones que proporcionó el escáner. Consulta Cómo crear 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 Configura las opciones del escáner para obtener más información.Pasa el array de objetos
OptionSetting
asetOptions()
para configurar las opciones del escáner. Muestra una promesa que se resuelve con unSetOptionsResponse
. 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
Construye un objeto
StartScanOptions
y pásalo astartScan()
. Muestra una promesa que se resuelve con unStartScanResponse
. Su propiedadjob
es un identificador que usarás para leer los datos del análisis o cancelarlo.Pasa el identificador de trabajo a
readScanData()
. Muestra una promesa que se resuelve con un objetoReadScanDataResponse
. Si los datos se leyeron con éxito, su propiedadresult
es igual aSUCCESS
y su propiedaddata
contiene un elementoArrayBuffer
con parte del análisis. Ten en cuenta queestimatedCompletion
contiene un porcentaje estimado del total de datos que se entregaron hasta el momento.Repite el paso anterior hasta que la propiedad
result
sea igual aEOF
o muestre un error.
Cuando se alcance el final del análisis, llama a closeScanner()
con el identificador del escáner guardado en el paso 3. Muestra una promesa que se resuelve con un CloseScannerResponse
. Si llamas a cancelScan()
en cualquier momento después de crear el 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 de ellos 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. En consecuencia, no es posible reflejar las opciones del escáner directamente dentro de la API de documentScan. Para evitar esto, 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 una asignación clave-valor en la que la clave es una opción específica del dispositivo 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 muestra opciones denominadas "fuente" y "resolución". La estructura del objeto options
que se muestra se verá como el siguiente ejemplo. Para simplificar, solo se muestran respuestas parciales de ScannerOption
.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Cómo crear una interfaz de usuario
Aunque no es obligatorio usar esta API, es posible que desees que un usuario elija el valor para una opción en particular. Esto requiere una interfaz de usuario. Usa OpenScannerResponse
(que abre 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 para cada dispositivo. No afectan el comportamiento de las opciones, pero, como es posible que estos grupos se mencionen en la documentación del producto de un escáner, se deben mostrar 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 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 la 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
. Úsalo para actualizar la interfaz de usuario. Luego, repite el proceso 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 Cómo escanear una página de tamaño carta.
Ejemplos
Cómo recuperar 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 carta
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 escáner. En este proceso, se muestra el uso de 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 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);
}
Cómo mostrar la configuración
Como se indicó en otro lugar, mostrar las opciones de configuración de un escáner a un usuario requiere llamar a getOptionGroups()
, además de las opciones del escáner que se muestran desde una llamada a openScanner()
. Esto permite que las opciones se muestren a los usuarios en grupos definidos por el fabricante. En este ejemplo, se muestra cómo hacerlo.
async function showConfig() {
let response = await chrome.documentScan.getScannerList({ secure: true });
let scanner = await chrome.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await chrome.documentScan.getOptionGroups(scanner.scannerHandle);
for (const group of groups.groups) {
console.log("=== " + group.title + " ===");
for (const member of group.members) {
const option = scanner.options[member];
if (option.isActive) {
console.log(" " + option.name + " = " + option.value);
} else {
console.log(" " + option.name + " is inactive");
}
}
}
}
Tipos
CancelScanResponse
Propiedades
-
trabajo
string
Proporciona el mismo identificador de trabajo que se pasó a
cancelScan()
. -
resultado
El resultado del análisis de cancelación del backend Si el resultado es
OperationResult.SUCCESS
oOperationResult.CANCELLED
, significa que se canceló el análisis y que 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 llamador debe esperar un momento y volver a intentar la solicitud. Otros valores de resultados 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 identificador no será válido y no se debe usar para ninguna otra operación. -
scannerHandle
string
Es el mismo identificador de escáner que se pasó a
closeScanner
.
Configurability
Indica 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 la restricción representada por un OptionConstraint
.
Enum
"INT_RANGE"
Es la restricción en un rango de valores OptionType.INT
. Las propiedades min
, max
y quant
de OptionConstraint
serán long
, y su propiedad list
no se establecerá.
"FIXED_RANGE"
La restricción en un rango de valores OptionType.FIXED
. Las propiedades min
, max
y quant
de OptionConstraint
serán double
, y su propiedad list
no se establecerá.
"INT_LIST"
Es 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 OptionType.FIXED
. La propiedad OptionConstraint.list
contendrá valores double
y las otras propiedades no se establecerán.
"STRING_LIST"
Es 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 devuelve los escáneres que estén conectados directamente a la computadora.
-
seguro
booleano opcional
Solo muestra escáneres que usen 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
El resultado de obtener los grupos de opciones. Si el valor de esto es
SUCCESS
, se propagará la propiedadgroups
. -
scannerHandle
string
Es el mismo identificador de escáner que se pasó a
getOptionGroups
.
GetScannerListResponse
Propiedades
-
resultado
El resultado de la enumeración. Ten en cuenta que se pueden mostrar resultados parciales, incluso si esto indica un error.
-
escáneres
Es 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 de abrir el escáner. Si el valor de esto es
SUCCESS
, se propagarán las propiedadesscannerHandle
yoptions
. -
scannerHandle
cadena opcional
Si
result
esSUCCESS
, es un identificador del escáner que se puede usar para otras operaciones. -
scannerId
string
El ID del escáner que se pasó a
openScanner()
.
OperationResult
Es 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"
La operación no es compatible.
"CANCELLED"
La operación se canceló.
"DEVICE_BUSY"
El dispositivo está ocupado.
"INVALID"
Los datos o un argumento que se pasó al método no son válidos.
"WRONG_TYPE"
El valor proporcionado es del tipo de datos incorrecto para la opción subyacente.
"EOF"
No hay más datos disponibles.
"ADF_JAMMED"
Se atascó el alimentador de documentos.
"ADF_EMPTY"
El alimentador de documentos está vacío.
"COVER_OPEN"
La cubierta de la bandeja 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 otro lugar que no es la aplicación que realiza la llamada.
OptionConstraint
Propiedades
-
list
string[] | number[] opcional
-
máx.
número opcional
-
min
número opcional
-
quant
número 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 debe 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
cadena | número | booleano | número[] opcional
Indica el valor que se establecerá. No lo configures para solicitar la configuración automática de las opciones que tienen habilitada
autoSettable
. El tipo de datos proporcionado paravalue
debe coincidir contype
.
OptionType
Es el tipo de datos de una opción.
Enum
"UNKNOWN"
Se desconoce el tipo de datos de la opción. No se establecerá la propiedad value
.
"BOOL"
La propiedad value
será uno de los valores true
false.
"INT"
Un número entero de 32 bits con firma. La propiedad value
será long o long[], según si la opción toma más de un valor.
"FIXED"
Un número doble 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 exactamente 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, configurar una opción de este tipo causa un efecto secundario específico en el controlador del escáner. Por ejemplo, un controlador de escáner podría usar una opción de botón para proporcionar un medio para seleccionar valores predeterminados o indicarle a un alimentador automático de documentos que avance a la siguiente hoja de papel.
"GROUP"
Opción de agrupación. Sin valor. Se incluye por motivos de compatibilidad, pero, por lo general, no se muestra en los valores de ScannerOption
. Usa getOptionGroups()
para recuperar la lista de grupos con sus opciones de miembros.
Enum
"UNITLESS"
El valor es un número sin unidades. Por ejemplo, puede ser un umbral.
"PIXEL"
El valor es una cantidad de píxeles, por ejemplo, dimensiones de 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.
"MICROSECOND"
El valor se mide en microsegundos, por ejemplo, el tiempo de exposición.
ReadScanDataResponse
Propiedades
-
datos
ArrayBuffer opcional
Si
result
esSUCCESS
, contiene el próximo fragmento de datos de imagen escaneada. Siresult
esEOF
, contiene el último fragmento de datos de imagen escaneados. -
estimatedCompletion
número opcional
Si
result
esSUCCESS
, es una estimación de cuánto del total de datos de análisis se entregó hasta el momento, en el rango de 0 a 100. -
trabajo
string
Proporciona el identificador de trabajo que se pasa a
readScanData()
. -
resultado
El resultado de la lectura de datos. Si su valor es
SUCCESS
,data
contiene el próximo (posiblemente de longitud cero) fragmento de datos de imagen que está listo para leerse. Si su valor esEOF
,data
contiene el último fragmento de datos de imagen.
ScannerInfo
Propiedades
-
connectionType
Indica cómo se conecta el escáner a la computadora.
-
deviceUuid
string
Para hacer coincidir con otras entradas
ScannerInfo
que apuntan al mismo dispositivo físico. -
imageFormats
string[]
Es un array de tipos de MIME que se pueden solicitar para los análisis que se muestran.
-
manufacturer
string
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 que el escáner mostrará 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
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
-
capacidad de configuración
Indica si se puede cambiar la opción y cómo hacerlo.
-
restricción
OptionConstraint opcional
Define
OptionConstraint
en 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 establecer o recuperar. Si es falsa, 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
El controlador del escáner lo emula si es verdadero.
-
nombre
string
El nombre de la opción con letras ASCII en minúscula, números y guiones. No se permiten diacríticos.
-
título
string
Es un título de una línea imprimible.
-
tipo
Es el tipo de datos contenido en la propiedad
value
, que es necesario para establecer esta opción. -
Unidad
Es la unidad de medida de esta opción.
-
valor
cadena | número | booleano | número[] opcional
El valor actual de la opción, si corresponde. Ten en cuenta que el tipo de datos de esta propiedad debe coincidir con el tipo de datos especificado en
type
.
ScanOptions
Propiedades
-
maxImages
número opcional
Es la cantidad de imágenes escaneadas permitidas. El valor predeterminado es 1.
-
mimeTypes
string[] opcional
Los tipos de MIME que acepta el llamador.
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
string
Es el tipo MIME de
dataUrls
.
SetOptionResult
Propiedades
-
nombre
string
Indica el nombre de la opción que se configuró.
-
resultado
Indica el resultado de establecer 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 contiene la configuración nueva 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 se produce un error al recuperar la configuración actualizada (por ejemplo, si el escáner se desconecta en medio de la digitalización).
-
resultados
Un array de resultados, uno para cada
OptionSetting
pasado. -
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 mostrarán los datos escaneados.
-
maxReadSize
número opcional
Si se especifica un valor distinto de cero, limita los bytes analizados máximos que se muestran en una sola respuesta
readScanData
a ese valor. El valor más pequeño permitido es 32768 (32 KB). Si no se especifica esta propiedad, el tamaño de un fragmento que se muestra puede ser tan grande como el de toda la imagen escaneada.
StartScanResponse
Propiedades
-
trabajo
cadena opcional
Si
result
esSUCCESS
, proporciona un identificador que se puede usar para leer los datos de análisis o cancelar la tarea. -
resultado
Es el resultado de iniciar un análisis. Si el valor de esto es
SUCCESS
, se propagará la propiedadjob
. -
scannerHandle
string
Proporciona el mismo identificador de escáner 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.
Parámetros
-
trabajo
string
Es el identificador de una tarea de análisis activo que se mostró anteriormente desde una llamada a
startScan
. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(response: CancelScanResponse) => void
-
respuesta
-
Muestra
-
Promise<CancelScanResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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 control pasado y muestra una promesa que se resuelve con un objeto CloseScannerResponse
. Si se usa una devolución de llamada, se le pasa el objeto. Incluso si la respuesta no es correcta, el identificador 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 mostró anteriormente desde una llamada a
openScanner
. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(response: CloseScannerResponse) => void
-
respuesta
-
Muestra
-
Promise<CloseScannerResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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 los miembros de un escáner que openScanner
abrió anteriormente. 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.
Parámetros
-
scannerHandle
string
El identificador de un escáner abierto que se muestra desde una llamada a
openScanner
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(response: GetOptionGroupsResponse) => void
-
respuesta
-
Muestra
-
Promise<GetOptionGroupsResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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.
Parámetros
-
filter
Un
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
-
Muestra
-
Promise<GetScannerListResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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.
Parámetros
-
scannerId
string
El ID de un escáner que se abrirá. Este valor es uno que se muestra de una llamada anterior a
getScannerList
. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(response: OpenScannerResponse) => void
-
respuesta
-
Muestra
-
Promise<OpenScannerResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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 disponibles de un identificador 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.
**Nota:**Es válido que un resultado de la 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 llamador debe esperar un momento y volver a intentarlo.
Cuando se complete la tarea de análisis, la respuesta tendrá el valor de resultado EOF
. Esta respuesta puede contener un miembro data
final que no sea cero.
Parámetros
-
trabajo
string
Controlador de trabajo activo que se mostró anteriormente desde
startScan
. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(response: ReadScanDataResponse) => void
-
respuesta
-
Muestra
-
Promise<ReadScanDataResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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,
)
Realiza un análisis de documentos y muestra 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 que se muestran.
Parámetros
-
opciones
Es 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
-
Muestra
-
Promise<ScanResults>
Chrome 96 y versiones posterioresLas promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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.
Parámetros
-
scannerHandle
string
El mango del escáner para configurar las opciones Debe ser un valor que se haya mostrado anteriormente de una llamada a
openScanner
. -
opciones
Es una lista de objetos
OptionSetting
que se aplicarán al escáner. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(response: SetOptionsResponse) => void
-
respuesta
-
Muestra
-
Promise<SetOptionsResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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. 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
El mango de un escáner abierto. Debe ser un valor que se haya mostrado anteriormente de 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
-
Muestra
-
Promise<StartScanResponse>
Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la 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.