Description
Utilisez l'API chrome.documentScan
pour découvrir et récupérer des images à partir des scanners de documents 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 connecté.
Autorisations
documentScan
Garantie de disponibilité
Concepts et utilisation
Cette API prend en charge deux méthodes d'analyse de documents. Si votre cas d'utilisation peut fonctionner avec n'importe quel analyseur et ne nécessite pas de contrôler 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 versions ultérieures.
Analyse simple
Pour les cas d'utilisation simples, c'est-à-dire ceux qui peuvent fonctionner avec n'importe quel analyseur et ne nécessitent pas le 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 sont réalisées en trois phases, comme décrit dans cette section. Cette présentation ne décrit pas chaque argument de méthode ni chaque propriété renvoyée dans une réponse. Elle vise uniquement à vous donner un guide général sur la rédaction d'un code à scanner.
Discovery
Appelez
getScannerList()
. Les scanners disponibles sont renvoyés sous la forme d'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 correspondant à un même analyseur s'il est compatible avec plusieurs protocoles ou méthodes de connexion.
- L'objet de réponse contient un tableau d'objets
Sélectionnez un analyseur dans le tableau renvoyé et enregistrez la valeur de sa propriété
scannerId
.Utilisez les propriétés de chaque objet
ScannerInfo
pour faire la distinction entre plusieurs objets d'un même analyseur. Les objets du même analyseur auront la même valeur pour la propriétédeviceUuid
.ScannerInfo
contient également une propriétéimageFormats
contenant un tableau des types d'images compatibles.
Configuration du scanner
Appelez
openScanner()
en transmettant l'ID de scanner enregistré. Elle renvoie une promesse qui se résout avec unOpenScannerResponse
. L'objet de réponse contient:Une propriété
scannerHandle
, que vous devez enregistrer.Une propriété d'options contenant des propriétés spécifiques à l'analyseur, que vous devez définir. Pour en savoir plus, consultez la section "Récupérer les options de l'outil d'analyse".
(Facultatif) Si vous souhaitez que l'utilisateur fournisse des valeurs pour les options d'analyse, créez une interface utilisateur. Vous aurez besoin des options d'analyse fournies à l'étape précédente et vous devrez récupérer les groupes d'options fournis par l'analyseur. Pour en savoir plus, consultez Créer une interface utilisateur.
Créez un tableau d'objets
OptionSetting
à l'aide de valeurs programmatiques ou fournies par l'utilisateur. Pour en savoir plus, consultez "Définir les options d'analyse".Transmettez le tableau d'objets
OptionSetting
àsetOptions()
pour définir les options de l'analyseur. Elle renvoie une promesse qui se résout avec un élémentSetOptionsResponse
. Cet objet contient une version mise à jour des options de l'outil d'analyse récupérées à l'étape 1 de sa configuration.Étant donné que la modification d'une option peut modifier les contraintes d'une autre option, vous devrez peut-être répéter ces étapes plusieurs fois.
analyses
Créez un objet
StartScanOptions
et transmettez-le àstartScan()
. Elle renvoie une promesse qui se résout avec unStartScanResponse
. Sa propriétéjob
est un handle que vous utiliserez pour lire les données d'analyse ou pour annuler l'analyse.Transmettez le handle de tâche à
readScanData()
. Elle renvoie une promesse qui se résout avec un objetReadScanDataResponse
. Si les données ont été lues, leur propriétéresult
est égale àSUCCESS
, et sa propriétédata
contient unArrayBuffer
faisant partie de l'analyse. Notez queestimatedCompletion
contient un pourcentage estimé du total des données livrées 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.
Lorsque la fin de l'analyse est atteinte, appelez closeScanner()
avec la poignée de l'analyse enregistrée à l'étape 3. Elle renvoie une promesse qui se résout avec un élément CloseScannerResponse
. L'appel de 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 quelconque.
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
a une valeur spécifique. Ces relations sont décrites dans la documentation de référence de chaque objet de réponse.
Par exemple, OpenScannerResponse.scannerHandle
n'aura une valeur que lorsque OpenScannerResponse.result
est égal à SUCCESS
.
Options du scanner
Les options du scanner varient considérablement d'un appareil à l'autre. Par conséquent, il n'est pas possible de refléter les options d'analyse directement dans l'API documentScan. Pour contourner ce problème, OpenScannerResponse
(récupéré à l'aide de openScanner()
) et SetOptionsResponse
(l'objet de réponse pour setOptions()
) contiennent une propriété options
, qui est un objet contenant des options spécifiques à l'analyseur. Chaque option est un mappage clé-valeur, dans lequel 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 analyseur qui renvoie des options nommées "source" et "resolution". La structure de l'objet options
renvoyé ressemblera à l'exemple suivant. Pour des raisons 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 cette API ne soit pas obligatoire, vous souhaitez peut-être qu'un utilisateur choisisse la valeur d'une option particulière. Cela nécessite une interface utilisateur. Utilisez OpenScannerResponse
(ouvert par openScanner()
) pour récupérer les options du scanner associé, comme décrit dans la section précédente.
Certains scanners regroupent les options de manière spécifique à chaque appareil. Ils n'affectent pas les comportements des options, mais comme ces groupes peuvent être mentionnés dans la documentation d'un analyseur, ils doivent être présentés à l'utilisateur. Vous pouvez récupérer ces groupes en appelant getOptionGroups()
. Cela renvoie une promesse qui se résout avec un objet GetOptionGroupsResponse
. Sa propriété groups
contient un tableau de groupes spécifique à l'analyseur. 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 de l'outil d'analyse", la modification d'une option peut modifier les contraintes d'une autre option. C'est pourquoi setOptionsResponse
(objet de réponse pour setOptions()
) contient une autre propriété options
. Utilisez-le pour mettre à jour l'interface utilisateur. Répétez ensuite 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 d'analyse en transmettant un tableau d'objets OptionSetting
à setOptions()
. Vous trouverez un exemple dans la section Scanner une page au format lettre ci-dessous.
Exemples
Récupérer une page en tant qu'objet blob
Cet exemple montre une façon de récupérer une page de l'analyseur en tant que blob et 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 l'analyseur. 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'une analyse à un utilisateur, vous devez appeler getOptionGroups()
en plus des options d'analyse renvoyées par un appel à openScanner()
. Ainsi, les options peuvent être présentées aux utilisateurs appartenant à 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 identifiant de tâche que celui transmis à
cancelScan()
. -
résultat
Résultat de l'annulation de l'analyse du backend. Si le résultat est
OperationResult.SUCCESS
ouOperationResult.CANCELLED
, cela signifie que l'analyse a été annulée et que le scanner est prêt à en lancer une nouvelle. Si le résultat estOperationResult.DEVICE_BUSY
, l'outil d'analyse est encore en train de traiter l'annulation demandée. L'appelant doit attendre un court instant avant de réessayer. Les autres valeurs de résultat indiquent une erreur permanente qui ne doit pas être relancée.
CloseScannerResponse
Propriétés
-
résultat
Résultat de la fermeture du scanner. Même si cette valeur n'est pas
SUCCESS
, l'identifiant ne sera pas valide et ne doit pas être utilisé pour d'autres opérations. -
scannerHandle
chaîne
Le même handle d'analyse que celui transmis à
closeScanner
Configurability
Modalités de modification d'une option
Enum
"NOT_CONFIGURABLE"
L'option est en lecture seule.
"LOGICIEL_CONFIGURABLE"
L'option peut être définie dans le logiciel.
"HARDWARE_CONFIGURABLE"
L'option peut être définie en appuyant sur un bouton du scanner ou en activant l'option.
ConnectionType
Indique comment le scanner est connecté à l'ordinateur.
Enum
"UNSPECIFIED" (NON SPÉCIFIÉ)
"USB"
ConstraintType
Type de données de la contrainte représenté par un élément OptionConstraint
.
Enum
"INT_RANGE"
Contrainte appliquée à une plage de valeurs OptionType.INT
. Les propriétés min
, max
et quant
de OptionConstraint
seront définies sur long
, et sa propriété list
ne sera pas définie.
"FIXED_RANGE"
Contrainte appliquée à 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 appliquée à 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 appliquée à 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 appliquée à 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
-
interprétabilité locale
Booléen facultatif
Ne renvoyez que les scanners directement branchés à l'ordinateur.
-
sécurisé
Booléen facultatif
Ne renvoyez que les scanners utilisant un transport sécurisé, comme USB ou TLS.
GetOptionGroupsResponse
Propriétés
-
groupes
OptionGroup[] facultatif
Si
result
est défini surSUCCESS
, fournit une liste de groupes d'options dans l'ordre fourni par le pilote du scanner. -
résultat
Résultat obtenu avec les groupes d'options. Si la valeur est
SUCCESS
, la propriétégroups
est renseignée. -
scannerHandle
chaîne
Le même handle d'analyse que celui transmis à
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.
-
scanners
Liste peut-être vide d'analyseurs correspondant au
DeviceFilter
fourni.
OpenScannerResponse
Propriétés
-
options
objet facultatif
Si
result
est défini surSUCCESS
, fournit un mappage clé-valeur où la clé est une option spécifique à l'appareil et la valeur 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
string facultatif
Si
result
est défini surSUCCESS
, un handle vers l'outil d'analyse peut être utilisé pour d'autres opérations. -
scannerId
chaîne
ID de scanner transmis à
openScanner()
.
OperationResult
Énumération indiquant le résultat de chaque opération.
Enum
"UNKNOWN"
Une erreur inconnue ou générique s'est produite.
"SUCCÈS"
L'opération a réussi.
"UNSUPPORTED"
L'opération n'est pas prise en charge.
"CANCELLED"
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 ne correspond pas au type de données de l'option sous-jacente.
"EOF"
Plus de données disponibles.
"ADF_JAMMED"
Le chargeur de document est bloqué.
"ADF_EMPTY"
Le chargeur de document est vide.
"COVER_OPEN"
Le rabat du plateau est ouvert.
"IO_ERROR"
Une erreur s'est produite lors de la communication avec l'appareil.
"ACCESS_DENIED"
L'appareil requiert une authentification.
"NO_MEMORY"
Le Chromebook ne dispose pas de suffisamment de mémoire 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
chaîne[] | nombre[] facultatif
-
max
numéro facultatif
-
min
numéro facultatif
-
quantifier
numéro facultatif
-
Type
OptionGroup
Propriétés
-
membres
chaîne[]
Tableau de noms d'options dans l'ordre fourni par le conducteur.
-
title
chaîne
Fournit un titre imprimable, par exemple "Options de géométrie".
OptionSetting
Propriétés
-
name
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. Ne configurez pas ce paramètre afin de demander le paramètre automatique pour les options où
autoSettable
est activé. Le type de données fourni pourvalue
doit correspondre àtype
.
OptionType
Type de données d'une option.
Enum
"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
aura la valeur true
false.
"INT"
Un entier signé de 32 bits. La propriété value
sera longue ou longue[], selon que l'option accepte plusieurs valeurs ou non.
"FIXED"
Un double de 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 plusieurs valeurs ou non. Les valeurs doubles qui ne peuvent pas être représentées exactement sont arrondies à la plage et à la précision disponibles.
"STRING"
Séquence de tous les octets, à l'exception de NUL ("\0"). La propriété value
sera une chaîne DOMString.
"BOUTON"
Une option de ce type n'a aucune valeur. Au lieu de cela, la définition d'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 type bouton pour permettre de sélectionner des valeurs par défaut ou pour indiquer à un chargeur de document automatique de passer à la feuille de papier suivante.
"GROUP"
Option de regroupement. Aucune valeur. Cet élément est inclus pour des raisons de compatibilité, mais il ne s'affiche normalement pas dans les valeurs ScannerOption
. Utilisez getOptionGroups()
pour récupérer la liste des groupes avec leurs options de membres.
Enum
"UNITLESS"
La valeur est un nombre sans unité. Il peut s'agir d'un seuil, par exemple.
"PIXEL"
La valeur est un nombre de pixels, par exemple les dimensions de l'analyse.
"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 les dimensions de balayage.
"PPP"
La 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 se mesure en microsecondes, par exemple le temps d'exposition.
ReadScanDataResponse
Propriétés
-
données
ArrayBuffer facultatif
Si
result
est défini surSUCCESS
, contient le fragment prochain de données d'image analysées. Siresult
est défini surEOF
, il contient le dernier fragment de données d'image analysées. -
estimatedCompletion
numéro facultatif
Si
result
est défini surSUCCESS
, il s'agit d'une estimation de la quantité totale de données d'analyse déjà livrée (comprise entre 0 et 100). -
job
chaîne
Fournit le handle de tâche transmis à
readScanData()
. -
résultat
Résultat de la lecture des données. Si sa valeur est
SUCCESS
, alorsdata
contient le prochain fragment de données d'image (peut-être de longueur nulle) prêt à être lu. Si sa valeur estEOF
,data
contient le dernier fragment de données d'image.
ScannerInfo
Propriétés
-
connectionType
Indique comment le scanner est connecté à l'ordinateur.
-
deviceUuid
chaîne
Pour la mise en correspondance avec d'autres entrées
ScannerInfo
qui pointent vers le même appareil physique. -
imageFormats
chaîne[]
Tableau des types MIME pouvant être demandés pour les analyses renvoyées.
-
fabricant
chaîne
Fabricant du scanner.
-
model
chaîne
Le modèle de l'analyseur (s'il est disponible) ou une description générique.
-
name
chaîne
Nom lisible de l'analyseur à afficher dans l'UI.
-
protocolType
chaîne
Description lisible du protocole ou du pilote utilisé pour accéder au scanner (Mopria, WSD ou epsonds). Cela est particulièrement utile pour permettre à un utilisateur de choisir entre les protocoles si son appareil est compatible avec plusieurs protocoles.
-
scannerId
chaîne
Identifiant d'un scanner spécifique.
-
sécurisé
boolean
Si la valeur est "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
pour l'option d'analyse actuelle. -
description
chaîne
Description plus longue de l'option.
-
isActive
boolean
Indique que l'option est active et peut être définie ou récupérée. Si la valeur est "false", la propriété
value
n'est pas définie. -
isAdvanced
boolean
Indique que l'interface utilisateur ne doit pas afficher cette option par défaut.
-
isAutoSettable
boolean
Peut être automatiquement défini par le pilote du scanner.
-
isDetectable
boolean
Indique que cette option peut être détectée à partir du logiciel.
-
isEmulated
boolean
Émulé par le pilote du scanner si "true".
-
name
chaîne
Nom de l'option composé de lettres ASCII minuscules, de chiffres et de tirets. Les caractères diacritiques ne sont pas autorisés.
-
title
chaîne
Titre d'une ligne imprimable.
-
Type
Type de données contenu dans la propriété
value
, nécessaire pour définir cette option. -
unité
Unité de mesure pour 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 à celui spécifié dans
type
.
ScanOptions
Propriétés
-
maxImages
numéro 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 dans un format pouvant être transmis en tant que valeur "src" à une balise d'image.
-
mimeType
chaîne
Type MIME du
dataUrls
.
SetOptionResult
Propriétés
-
name
chaîne
Indique le nom de l'option qui a été 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 de clé-valeur entre les noms d'option et les valeurs
ScannerOption
contenant la nouvelle configuration après la tentative de définition de toutes les options fournies. La structure est identique à celle de la propriétéoptions
dansOpenScannerResponse
.Cette propriété sera définie même si certaines options n'ont pas été définies correctement, mais elle sera désactivée en cas d'échec de la récupération de la configuration mise à jour (par exemple, si l'analyseur est déconnecté en cours d'analyse).
-
résultats
Tableau de résultats, un pour chaque valeur
OptionSetting
transmise. -
scannerHandle
chaîne
Fournit le handle d'analyse transmis à
setOptions()
.
StartScanOptions
Propriétés
-
format
chaîne
Spécifie le type MIME dans lequel renvoyer les données analysées.
-
maxReadSize
numéro facultatif
Si une valeur non nulle est spécifiée, limite le nombre maximal d'octets analysés renvoyé 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 égale à l'intégralité de l'image analysée.
StartScanResponse
Propriétés
-
job
string facultatif
Si
result
est défini surSUCCESS
, fournit un identifiant 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 identifiant d'analyse 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
Identifiant d'une tâche d'analyse active précédemment renvoyée par un appel à
startScan
. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: CancelScanResponse) => void
-
réponse
-
Renvoie
-
Promise<CancelScanResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
Ferme l'analyseur avec la poignée transmise 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 échoue, l'identifiant fourni devient non valide et ne doit pas être utilisé pour d'autres opérations.
Paramètres
-
scannerHandle
chaîne
Spécifie le handle d'un scanner ouvert précédemment renvoyé par un appel à
openScanner
. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: CloseScannerResponse) => void
-
réponse
-
Renvoie
-
Promise<CloseScannerResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
Récupère les noms des groupes et les options des membres à partir d'un outil d'analyse 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
Identifiant d'un scanner ouvert renvoyé par un appel à
openScanner
. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: GetOptionGroupsResponse) => void
-
réponse
-
Renvoie
-
Promise<GetOptionGroupsResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
Récupère la liste des analyseurs 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
DeviceFilter
indiquant les types d'analyseurs à renvoyer. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: GetScannerListResponse) => void
-
réponse
-
Renvoie
-
Promise<GetScannerListResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
Ouvre un outil d'analyse 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
Identifiant d'un scanner à ouvrir. Cette valeur est renvoyée par un appel précédent à
getScannerList
. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: OpenScannerResponse) => void
-
réponse
-
Renvoie
-
Promise<OpenScannerResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
Lit le fragment de données d'image suivant à partir d'un handle de tâche actif, puis renvoie une promesse qui se résout avec un objet ReadScanDataResponse
. Si un rappel est utilisé, l'objet lui est transmis à la place.
**Remarque:**Il est valide pour un résultat de réponse d'être SUCCESS
avec un membre data
de longueur nulle. Cela signifie que l'outil d'analyse fonctionne toujours, mais qu'il n'a pas encore de données supplémentaires. L'appelant doit patienter quelques instants avant de réessayer.
Une fois la tâche d'analyse terminée, la réponse prend la valeur de résultat EOF
. Cette réponse peut contenir un membre data
final différent de zéro.
Paramètres
-
job
chaîne
Identifiant de job actif précédemment renvoyé par
startScan
. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: ReadScanDataResponse) => void
-
réponse
-
Renvoie
-
Promise<ReadScanDataResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Effectue une analyse du 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 facultative
Le paramètre
callback
se présente comme suit :(result: ScanResults) => void
-
résultat
-
Renvoie
-
Promise<ScanResults>
Chrome 96 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 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 est résolue 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 l'analyseur spécifié et renvoie une promesse qui se résout avec un objet SetOptionsResponse
contenant le résultat de la tentative de définition de 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 sur laquelle définir les options. Il doit s'agir d'une valeur précédemment renvoyée par un appel à
openScanner
. -
options
Liste d'objets
OptionSetting
à appliquer à l'outil d'analyse. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: SetOptionsResponse) => void
-
réponse
-
Renvoie
-
Promise<SetOptionsResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
Lance une analyse sur l'outil d'analyse spécifié et renvoie une promesse qui se résout avec un élément StartScanResponse
. Si un rappel est utilisé, l'objet lui est transmis à la place. Si l'appel a abouti, la réponse inclut un handle de job 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 par 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
de l'outil d'analyse. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(response: StartScanResponse) => void
-
réponse
-
Renvoie
-
Promise<StartScanResponse>
Les promesses sont compatibles avec Manifest V3 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 est résolue avec le même type que celui transmis au rappel.