Description
Utilisez l'API chrome.documentScan
pour découvrir et récupérer les images des scanners de document connectés.
L'API Document Scan est conçue pour permettre aux applications et aux extensions d'afficher le contenu de documents papier sur un scanner de documents associé.
Autorisations
documentScan
Disponibilité
Concepts et utilisation
Cette API propose deux méthodes de numérisation de documents. Si votre cas d'utilisation peut fonctionner avec n'importe quel scanner et ne nécessite pas de contrôle de la configuration, utilisez la méthode scan()
. Les cas d'utilisation plus complexes nécessitent une combinaison de méthodes, qui ne sont compatibles qu'avec Chrome 124 et les versions ultérieures.
Analyse simple
Pour les cas d'utilisation simples, c'est-à-dire ceux qui peuvent fonctionner avec n'importe quel scanner et ne nécessitent pas de contrôle de la configuration, appelez scan()
. Cette méthode prend un objet ScanOptions
et renvoie une promesse qui se résout avec un objet ScanResults
. Les fonctionnalités de cette option sont limitées au nombre d'analyses et aux types MIME acceptés par l'appelant. Les analyses sont renvoyées sous forme d'URL à afficher dans une balise <img>
pour une interface utilisateur.
Analyse complexe
Les analyses complexes se déroulent en trois phases, comme décrit dans cette section. Cette structure ne décrit pas tous les arguments de méthode ni toutes les propriétés renvoyées dans une réponse. Il ne vise qu'à vous fournir un guide général sur l'écriture de code de scanner.
Discovery
Appelez
getScannerList()
. Les lecteurs disponibles sont renvoyés dans une promesse qui se résout avec unGetScannerListResponse
.- L'objet de réponse contient un tableau d'objets
ScannerInfo
. - Le tableau peut contenir plusieurs entrées pour un seul lecteur si ce lecteur prend en charge plusieurs protocoles ou méthodes de connexion.
- L'objet de réponse contient un tableau d'objets
Sélectionnez un lecteur dans le tableau renvoyé et enregistrez la valeur de sa propriété
scannerId
.Utilisez les propriétés des objets
ScannerInfo
individuels pour distinguer plusieurs objets pour le même scanner. Les objets du même scanner auront la même valeur pour la propriétédeviceUuid
.ScannerInfo
contient également une propriétéimageFormats
contenant un tableau de types d'images compatibles.
Configuration du scanner
Appelez
openScanner()
en transmettant l'ID du lecteur enregistré. Il renvoie une promesse qui se résout avec unOpenScannerResponse
. L'objet de réponse contient les éléments suivants:Une propriété
scannerHandle
, que vous devrez enregistrer.Propriété d'options contenant des propriétés spécifiques au scanner, que vous devrez définir. Pour en savoir plus, consultez la section "Récupérer les options du scanner".
(Facultatif) Si vous devez demander à l'utilisateur de fournir des valeurs pour les options du scanner, créez une interface utilisateur. Vous aurez besoin des options du scanner fournies à l'étape précédente et des groupes d'options fournis par le scanner. Pour en savoir plus, consultez Créer une interface utilisateur.
Créez un tableau d'objets
OptionSetting
à l'aide de valeurs fournies par l'utilisateur ou de valeurs programmatiques. Pour en savoir plus, consultez la section "Définir les options de l'analyseur".Transmettez le tableau d'objets
OptionSetting
àsetOptions()
pour définir les options du scanner. Il renvoie une promesse qui se résout avec unSetOptionsResponse
. Cet objet contient une version mise à jour des options de l'analyseur récupérées à l'étape 1 de la configuration de l'analyseur.Étant donné que la modification d'une option peut modifier les contraintes d'une autre, vous devrez peut-être répéter ces étapes plusieurs fois.
Analyse
Créez un objet
StartScanOptions
et transmettez-le àstartScan()
. Il renvoie une promesse qui se résout avec unStartScanResponse
. Sa propriétéjob
est un gestionnaire que vous utiliserez pour lire les données d'analyse ou annuler l'analyse.Transmettez le handle de la tâche à
readScanData()
. Il renvoie une promesse qui se résout avec un objetReadScanDataResponse
. Si les données ont été lues avec succès, leur propriétéresult
est égale àSUCCESS
et leur propriétédata
contient unArrayBuffer
avec une partie de l'analyse. Notez queestimatedCompletion
contient un pourcentage estimé du total des données transmises jusqu'à présent.Répétez l'étape précédente jusqu'à ce que la propriété
result
soit égale àEOF
ou qu'une erreur se produise.
À la fin de l'analyse, appelez closeScanner()
avec le conteneur du scanner enregistré à l'étape 3. Il renvoie une promesse qui se résout avec un CloseScannerResponse
. Appeler cancelScan()
à tout moment après la création de la tâche met fin à l'analyse.
Objets de réponse
Toutes les méthodes renvoient une promesse qui se résout avec un objet de réponse.
La plupart d'entre eux contiennent une propriété result
dont la valeur est membre de OperationResult
. Certaines propriétés des objets de réponse ne contiennent pas de valeurs, sauf si la valeur de result
est spécifique. Ces relations sont décrites dans la référence de chaque objet de réponse.
Par exemple, OpenScannerResponse.scannerHandle
n'a de valeur que lorsque OpenScannerResponse.result
est égal à SUCCESS
.
Options de l'analyseur
Les options de numérisation varient considérablement d'un appareil à l'autre. Par conséquent, il n'est pas possible de refléter les options du scanner directement dans l'API documentScan. Pour contourner ce problème, OpenScannerResponse
(récupéré à l'aide de openScanner()
) et SetOptionsResponse
(objet de réponse pour setOptions()
) contiennent une propriété options
, qui est un objet contenant des options spécifiques au lecteur. Chaque option est un mappage clé-valeur, où la clé est une option spécifique à l'appareil et la valeur est une instance de ScannerOption
.
La structure se présente généralement comme suit:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Par exemple, imaginez un scanner qui renvoie des options nommées "source" et "résolution". La structure de l'objet options
renvoyé ressemble à l'exemple suivant. Par souci de simplicité, seules les réponses ScannerOption
partielles sont affichées.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Créer une interface utilisateur
Bien que vous n'ayez pas besoin d'utiliser cette API, vous pouvez demander à un utilisateur de choisir la valeur d'une option spécifique. Pour ce faire, vous avez besoin d'une interface utilisateur. Utilisez OpenScannerResponse
(ouvert par openScanner()
) pour récupérer les options du scanner connecté, comme décrit dans la section précédente.
Certains scanners regroupent les options de manière spécifique à l'appareil. Ils n'affectent pas le comportement des options, mais comme ces groupes peuvent être mentionnés dans la documentation produit d'un scanner, ils doivent être présentés à l'utilisateur. Vous pouvez récupérer ces groupes en appelant getOptionGroups()
. Cette opération renvoie une promesse qui se résout avec un objet GetOptionGroupsResponse
. Sa propriété groups
contient un tableau de groupes spécifique au scanner. Utilisez les informations de ces groupes pour organiser les options de OpenScannerResponse
à afficher.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Comme indiqué dans la section "Configuration du scanner", la modification d'une option peut modifier les contraintes d'une autre option. C'est pourquoi setOptionsResponse
(l'objet de réponse pour setOptions()
) contient une autre propriété options
. Utilisez-le pour mettre à jour l'interface utilisateur. Répétez l'opération autant de fois que nécessaire jusqu'à ce que toutes les options soient définies.
Définir les options du scanner
Définissez les options de l'analyseur en transmettant un tableau d'objets OptionSetting
à setOptions()
. Pour obtenir un exemple, consultez la section Scanner une page au format lettre suivante.
Exemples
Récupérer une page sous forme de blob
Cet exemple montre comment récupérer une page du scanner en tant que blob et illustre l'utilisation de startScan()
et readScanData()
à l'aide de la valeur 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" });
}
Scanner une page au format lettre
Cet exemple montre comment sélectionner un scanner, définir ses options et l'ouvrir. Il récupère ensuite le contenu d'une seule page et ferme le scanner. Ce processus illustre l'utilisation de getScannerList()
, openScanner()
, setOptions()
et closeScanner()
. Notez que le contenu de la page est récupéré en appelant la fonction pageAsBlob()
de l'exemple précédent.
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);
}
Afficher la configuration
Comme indiqué ailleurs, pour afficher les options de configuration d'un lecteur à un utilisateur, vous devez appeler getOptionGroups()
en plus des options de lecteur renvoyées à partir d'un appel à openScanner()
. Cela permet d'afficher des options aux utilisateurs dans des groupes définis par le fabricant. Cet exemple montre comment procéder.
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");
}
}
}
}
Types
CancelScanResponse
Propriétés
-
job
chaîne
Fournit le même gestionnaire de tâches qui a été transmis à
cancelScan()
. -
résultat
Résultat de l'analyse d'annulation du backend. Si le résultat est
OperationResult.SUCCESS
ouOperationResult.CANCELLED
, l'analyse a été annulée et l'outil d'analyse est prêt à en démarrer une nouvelle. Si le résultat estOperationResult.DEVICE_BUSY
, le scanner traite toujours l'annulation demandée. L'appelant doit attendre un court moment et réessayer la requête. Les autres valeurs de résultat indiquent une erreur permanente qui ne doit pas être réessayée.
CloseScannerResponse
Propriétés
-
résultat
Résultat de la fermeture du scanner. Même si cette valeur n'est pas
SUCCESS
, le handle sera non valide et ne doit pas être utilisé pour d'autres opérations. -
scannerHandle
chaîne
Même poignée de scanner que celle transmise à
closeScanner
.
Configurability
Comment modifier une option
Énumération
"NOT_CONFIGURABLE"
L'option est en lecture seule.
"SOFTWARE_CONFIGURABLE"
L'option peut être définie dans le logiciel.
"HARDWARE_CONFIGURABLE"
L'utilisateur peut définir l'option en activant ou en appuyant sur un bouton du lecteur.
ConnectionType
Indique comment le lecteur est connecté à l'ordinateur.
Énumération
"UNSPECIFIED"
"USB"
"NETWORK"
ConstraintType
Type de données de la contrainte représentée par un OptionConstraint
.
Énumération
"INT_RANGE"
Contrainte sur une plage de valeurs OptionType.INT
. Les propriétés min
, max
et quant
de OptionConstraint
seront long
, et sa propriété list
ne sera pas définie.
"FIXED_RANGE"
Contrainte sur une plage de valeurs OptionType.FIXED
. Les propriétés min
, max
et quant
de OptionConstraint
seront double
, et sa propriété list
ne sera pas définie.
"INT_LIST"
Contrainte sur une liste spécifique de valeurs OptionType.INT
. La propriété OptionConstraint.list
contiendra des valeurs long
, et les autres propriétés ne seront pas définies.
"FIXED_LIST"
Contrainte sur une liste spécifique de valeurs OptionType.FIXED
. La propriété OptionConstraint.list
contiendra des valeurs double
, et les autres propriétés ne seront pas définies.
"STRING_LIST"
Contrainte sur une liste spécifique de valeurs OptionType.STRING
. La propriété OptionConstraint.list
contiendra des valeurs DOMString
, et les autres propriétés ne seront pas définies.
DeviceFilter
Propriétés
-
local
booléen facultatif
Ne renvoie que les scanners directement connectés à l'ordinateur.
-
sécurisé
booléen facultatif
Ne renvoyez que les lecteurs qui utilisent un transport sécurisé, tel que USB ou TLS.
GetOptionGroupsResponse
Propriétés
-
groupes
OptionGroup[] facultatif
Si
result
estSUCCESS
, fournit une liste de groupes d'options dans l'ordre fourni par le pilote du scanner. -
résultat
Résultat de l'obtention des groupes d'options. Si la valeur est
SUCCESS
, la propriétégroups
est renseignée. -
scannerHandle
chaîne
Même poignée de scanner que celle transmise à
getOptionGroups
.
GetScannerListResponse
Propriétés
-
résultat
Résultat de l'énumération. Notez que des résultats partiels peuvent être renvoyés même si cela indique une erreur.
-
scanneurs
Liste éventuellement vide des lecteurs correspondant à l'
DeviceFilter
fournie.
OpenScannerResponse
Propriétés
-
options
objet facultatif
Si
result
estSUCCESS
, fournit un mappage clé-valeur où la clé est une option spécifique à l'appareil et la valeur est une instance deScannerOption
. -
résultat
Résultat de l'ouverture du scanner. Si la valeur est
SUCCESS
, les propriétésscannerHandle
etoptions
sont renseignées. -
scannerHandle
chaîne facultatif
Si
result
correspond àSUCCESS
, handle du scanner pouvant être utilisé pour d'autres opérations. -
scannerId
chaîne
ID du lecteur transmis à
openScanner()
.
OperationResult
Énumération indiquant le résultat de chaque opération.
Énumération
"UNKNOWN"
Une erreur inconnue ou générique s'est produite.
"SUCCESS"
L'opération a réussi.
"UNSUPPORTED"
L'opération n'est pas prise en charge.
"CANCELLED" (ANNULÉ)
L'opération a été annulée.
"DEVICE_BUSY"
L'appareil est occupé.
"INVALID"
Les données ou un argument transmis à la méthode ne sont pas valides.
"WRONG_TYPE"
La valeur fournie n'est pas le bon type de données pour l'option sous-jacente.
"EOF"
Aucune autre donnée n'est disponible.
"ADF_JAMMED"
Le chargeur de documents est bloqué.
"ADF_EMPTY"
Le chargeur de documents est vide.
"COVER_OPEN"
Le capot de la table à plat est ouvert.
"IO_ERROR"
Une erreur s'est produite lors de la communication avec l'appareil.
"ACCESS_DENIED"
L'appareil nécessite une authentification.
"NO_MEMORY"
Il n'y a pas assez de mémoire disponible sur le Chromebook pour effectuer l'opération.
"UNREACHABLE"
L'appareil n'est pas accessible.
"MISSING"
L'appareil est déconnecté.
"INTERNAL_ERROR"
Une erreur s'est produite ailleurs que dans l'application appelante.
OptionConstraint
Propriétés
-
list
string[] | number[] facultatif
-
max
number facultatif
-
min
number facultatif
-
quant
number facultatif
-
type
OptionGroup
Propriétés
-
membres
chaîne[]
Tableau des noms d'options dans l'ordre fourni par le pilote.
-
titre
chaîne
Fournit un titre imprimable, par exemple "Options de géométrie".
OptionSetting
Propriétés
-
nom
chaîne
Indique le nom de l'option à définir.
-
type
Indique le type de données de l'option. Le type de données demandé doit correspondre au type de données réel de l'option sous-jacente.
-
valeur
chaîne | nombre | booléen | nombre[] facultatif
Indique la valeur à définir. Laissez cette valeur non définie pour demander un paramètre automatique pour les options pour lesquelles
autoSettable
est activé. Le type de données fourni pourvalue
doit correspondre àtype
.
OptionType
Type de données d'une option.
Énumération
"UNKNOWN"
Le type de données de l'option est inconnu. La propriété value
ne sera pas définie.
"BOOL"
La propriété value
sera true
false.
"INT"
Entier signé de 32 bits. La propriété value
sera long ou long[], selon que l'option accepte ou non plusieurs valeurs.
"FIXED"
Double dans la plage -32768-32767,9999 avec une résolution de 1/65535. La propriété value
sera double ou double[] selon que l'option accepte ou non plusieurs valeurs. Les valeurs doubles qui ne peuvent pas être représentées exactement sont arrondies à la plage et à la précision disponibles.
"STRING"
Séquence d'octets, à l'exception de NUL ('\0'). La propriété value
sera une DOMString.
"BUTTON"
Une option de ce type n'a aucune valeur. Au lieu de cela, le fait de définir une option de ce type entraîne un effet secondaire spécifique à l'option dans le pilote du scanner. Par exemple, un pilote de scanner peut utiliser une option de bouton pour permettre de sélectionner des valeurs par défaut ou d'indiquer à un chargeur automatique de documents de passer à la feuille suivante.
"GROUP"
Option de regroupement. Aucune valeur. Cette valeur est incluse pour des raisons de compatibilité, mais elle n'est normalement pas renvoyée dans les valeurs ScannerOption
. Utilisez getOptionGroups()
pour récupérer la liste des groupes avec leurs options de membres.
Énumération
"UNITLESS"
La valeur est un nombre sans unité. Il peut s'agir, par exemple, d'un seuil.
"PIXEL"
La valeur correspond à un nombre de pixels, par exemple les dimensions de numérisation.
"BIT"
La valeur correspond au nombre de bits, par exemple la profondeur de couleur.
"MM"
La valeur est mesurée en millimètres, par exemple pour les dimensions de numérisation.
"DPI"
Cette valeur est mesurée en points par pouce, par exemple, la résolution.
"PERCENT"
La valeur est un pourcentage, par exemple la luminosité.
"MICROSECOND"
La valeur est mesurée en microsecondes, par exemple la durée d'exposition.
ReadScanDataResponse
Propriétés
-
données
ArrayBuffer facultatif
Si
result
estSUCCESS
, contient le bloc suivant de données d'image numérisées. Siresult
estEOF
, contient le dernier segment de données d'image numérisées. -
estimatedCompletion
number facultatif
Si
result
estSUCCESS
, estimation de la quantité de données d'analyse totale transmises jusqu'à présent, comprise entre 0 et 100. -
job
chaîne
Fournit le gestionnaire de tâches transmis à
readScanData()
. -
résultat
Résultat de la lecture des données. Si sa valeur est
SUCCESS
,data
contient le bloc de données d'image (éventuellement de longueur nulle) suivant qui est prêt à être lu. Si sa valeur estEOF
,data
contient le dernier bloc de données d'image.
ScannerInfo
Propriétés
-
connectionType
Indique comment le lecteur est connecté à l'ordinateur.
-
deviceUuid
chaîne
Pour la mise en correspondance avec d'autres entrées
ScannerInfo
pointant vers le même appareil physique. -
imageFormats
chaîne[]
Tableau des types MIME pouvant être demandés pour les analyses renvoyées.
-
manufacturer
chaîne
Fabricant du scanner.
-
modèle
chaîne
Modèle du scanner, le cas échéant, ou description générique
-
nom
chaîne
Nom lisible à afficher pour le lecteur dans l'interface utilisateur.
-
protocolType
chaîne
Description lisible du protocole ou du pilote utilisé pour accéder au scanner, par exemple Mopria, WSD ou epsonds. Cette fonctionnalité est principalement utile pour permettre à un utilisateur de choisir entre plusieurs protocoles si un appareil en prend en charge plusieurs.
-
scannerId
chaîne
ID d'un lecteur spécifique.
-
sécurisé
booléen
Si cette valeur est définie sur "True", le transport de la connexion du scanner ne peut pas être intercepté par un écouteur passif, tel que TLS ou USB.
ScannerOption
Propriétés
-
configurabilité
Indique si l'option peut être modifiée et comment.
-
contrainte
OptionConstraint facultatif
Définit
OptionConstraint
sur l'option d'analyseur actuelle. -
description
chaîne
Description plus longue de l'option.
-
isActive
booléen
Indique que l'option est active et peut être définie ou récupérée. Si cette valeur est définie sur "False", la propriété
value
n'est pas définie. -
isAdvanced
booléen
Indique que l'UI ne doit pas afficher cette option par défaut.
-
isAutoSettable
booléen
Peut être défini automatiquement par le pilote du scanner.
-
isDetectable
booléen
Indique que cette option peut être détectée par le logiciel.
-
isEmulated
booléen
Émulé par le pilote du scanner si la valeur est "true".
-
nom
chaîne
Nom de l'option composé de lettres ASCII minuscules, de chiffres et de tirets. Les diacritiques ne sont pas autorisés.
-
titre
chaîne
Titre imprimable sur une ligne.
-
type
Type de données contenu dans la propriété
value
, qui est nécessaire pour définir cette option. -
unité
Unité de mesure de cette option.
-
valeur
chaîne | nombre | booléen | nombre[] facultatif
Valeur actuelle de l'option, le cas échéant. Notez que le type de données de cette propriété doit correspondre au type de données spécifié dans
type
.
ScanOptions
Propriétés
-
maxImages
number facultatif
Nombre d'images numérisées autorisé. La valeur par défaut est 1.
-
mimeTypes
string[] facultatif
Types MIME acceptés par l'appelant.
ScanResults
Propriétés
-
dataUrls
chaîne[]
Tableau d'URL d'images de données sous un format pouvant être transmis en tant que valeur "src" à un tag d'image.
-
mimeType
chaîne
Type MIME de l'
dataUrls
.
SetOptionResult
Propriétés
-
nom
chaîne
Indique le nom de l'option définie.
-
résultat
Indique le résultat de la définition de l'option.
SetOptionsResponse
Propriétés
-
options
objet facultatif
Mise à jour du mappage clé-valeur entre les noms d'options et les valeurs
ScannerOption
contenant la nouvelle configuration après avoir tenté de définir toutes les options fournies. Cette valeur a la même structure que la propriétéoptions
dansOpenScannerResponse
.Cette propriété est définie même si certaines options n'ont pas été définies correctement, mais elle est définie si la récupération de la configuration mise à jour échoue (par exemple, si le scanner est déconnecté en cours de numérisation).
-
résultats
Tableau de résultats, un pour chaque
OptionSetting
transmis. -
scannerHandle
chaîne
Fournit le conteneur du scanner transmis à
setOptions()
.
StartScanOptions
Propriétés
-
format
chaîne
Spécifie le type MIME dans lequel les données numérisées doivent être renvoyées.
-
maxReadSize
number facultatif
Si une valeur non nulle est spécifiée, limite le nombre maximal d'octets analysés renvoyés dans une seule réponse
readScanData
à cette valeur. La plus petite valeur autorisée est 32 768 (32 ko). Si cette propriété n'est pas spécifiée, la taille d'un fragment renvoyé peut être aussi importante que l'image scannée entière.
StartScanResponse
Propriétés
-
job
chaîne facultatif
Si
result
estSUCCESS
, fournit un gestionnaire pouvant être utilisé pour lire les données d'analyse ou annuler la tâche. -
résultat
Résultat du démarrage d'une analyse. Si la valeur est
SUCCESS
, la propriétéjob
est renseignée. -
scannerHandle
chaîne
Fournit le même gestionnaire de lecteur optique que celui transmis à
startScan()
.
Méthodes
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
Annule une analyse lancée et renvoie une promesse qui se résout avec un objet CancelScanResponse
. Si un rappel est utilisé, l'objet lui est transmis à la place.
Paramètres
-
job
chaîne
Le handle d'une tâche d'analyse active précédemment renvoyée à partir d'un appel à
startScan
. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: CancelScanResponse) => void
-
réponse
-
Renvoie
-
Promise<CancelScanResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
Ferme le lecteur avec le gestionnaire transmis et renvoie une promesse qui se résout avec un objet CloseScannerResponse
. Si un rappel est utilisé, l'objet lui est transmis à la place. Même si la réponse n'est pas positive, le handle fourni devient non valide et ne doit pas être utilisé pour d'autres opérations.
Paramètres
-
scannerHandle
chaîne
Spécifie le descripteur d'un lecteur ouvert précédemment renvoyé à partir d'un appel à
openScanner
. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: CloseScannerResponse) => void
-
réponse
-
Renvoie
-
Promise<CloseScannerResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
Récupère les noms de groupe et les options de membres à partir d'un lecteur précédemment ouvert par openScanner
. Cette méthode renvoie une promesse qui se résout avec un objet GetOptionGroupsResponse
. Si un rappel est transmis à cette fonction, les données renvoyées lui sont transmises à la place.
Paramètres
-
scannerHandle
chaîne
Handle d'un scanner ouvert renvoyé à partir d'un appel à
openScanner
. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: GetOptionGroupsResponse) => void
-
réponse
-
Renvoie
-
Promise<GetOptionGroupsResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
Récupère la liste des lecteurs disponibles et renvoie une promesse qui se résout avec un objet GetScannerListResponse
. Si un rappel est transmis à cette fonction, les données renvoyées lui sont transmises à la place.
Paramètres
-
filtre
Un
DeviceFilter
indiquant les types de lecteurs à renvoyer. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: GetScannerListResponse) => void
-
réponse
-
Renvoie
-
Promise<GetScannerListResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
Ouvre un scanner pour un accès exclusif et renvoie une promesse qui se résout avec un objet OpenScannerResponse
. Si un rappel est transmis à cette fonction, les données renvoyées lui sont transmises à la place.
Paramètres
-
scannerId
chaîne
ID d'un lecteur à ouvrir. Cette valeur est renvoyée par un appel précédent à
getScannerList
. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: OpenScannerResponse) => void
-
réponse
-
Renvoie
-
Promise<OpenScannerResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
Lit le prochain bloc de données d'image disponibles à partir d'un gestionnaire de tâche actif et renvoie une promesse qui se résout avec un objet ReadScanDataResponse
. Si un rappel est utilisé, l'objet lui est transmis à la place.
**Remarque** : Un résultat de réponse peut être SUCCESS
avec un membre data
de longueur nulle. Cela signifie que le scanner fonctionne toujours, mais que les données supplémentaires ne sont pas encore prêtes. L'appelant doit patienter quelques instants, puis réessayer.
Une fois la tâche d'analyse terminée, la valeur de résultat de la réponse est EOF
. Cette réponse peut contenir un membre data
final non nul.
Paramètres
-
job
chaîne
Gestionnaire de tâche actif précédemment renvoyé à partir de
startScan
. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: ReadScanDataResponse) => void
-
réponse
-
Renvoie
-
Promise<ReadScanDataResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Effectue une numérisation de document et renvoie une promesse qui se résout avec un objet ScanResults
. Si un rappel est transmis à cette fonction, les données renvoyées lui sont transmises à la place.
Paramètres
-
options
Objet contenant des paramètres d'analyse.
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(result: ScanResults) => void
-
résultat
-
Renvoie
-
Promise<ScanResults>
Chrome 96 ou version ultérieureLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
Définit des options sur le scanner spécifié et renvoie une promesse qui se résout avec un objet SetOptionsResponse
contenant le résultat de la tentative de définir chaque valeur dans l'ordre de l'objet OptionSetting
transmis. Si un rappel est utilisé, l'objet lui est transmis à la place.
Paramètres
-
scannerHandle
chaîne
Poignée du scanner pour définir les options. Il doit s'agir d'une valeur précédemment renvoyée à partir d'un appel à
openScanner
. -
options
Liste d'objets
OptionSetting
à appliquer au lecteur. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: SetOptionsResponse) => void
-
réponse
-
Renvoie
-
Promise<SetOptionsResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
Démarre une analyse sur le lecteur spécifié et renvoie une promesse qui se résout avec un StartScanResponse
. Si un rappel est utilisé, l'objet lui est transmis à la place. Si l'appel a réussi, la réponse inclut un handle de tâche qui peut être utilisé dans les appels suivants pour lire les données d'analyse ou annuler une analyse.
Paramètres
-
scannerHandle
chaîne
Poignée d'un scanner ouvert. Il doit s'agir d'une valeur précédemment renvoyée à partir d'un appel à
openScanner
. -
options
Objet
StartScanOptions
indiquant les options à utiliser pour l'analyse. La propriétéStartScanOptions.format
doit correspondre à l'une des entrées renvoyées dans leScannerInfo
du scanner. -
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(response: StartScanResponse) => void
-
réponse
-
Renvoie
-
Promise<StartScanResponse>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.