browser.documentScan

Description

Utilisez l'API chrome.documentScan pour découvrir et récupérer des images à partir de scanners de documents associé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é

Navigateur Chrome 44 ou version ultérieure * depuis Chrome 148 ChromeOS uniquement
La disponibilité des membres de l'API ajoutés ultérieurement est indiquée avec ces membres.

Concepts et utilisation

Cette API accepte deux méthodes d'analyse des documents. Si votre cas d'utilisation peut fonctionner avec n'importe quel lecteur 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 scanner et ne nécessitent pas de contrôle de la configuration, appelez scan(). Cette méthode utilise 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 qui seront 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 effectuées en trois phases, comme décrit dans cette section. Ce plan ne décrit pas tous les arguments de méthode ni toutes les propriétés renvoyées dans une réponse. Il est uniquement destiné à vous fournir un guide général pour l'écriture du code du scanner.

Discovery

  1. Appelez getScannerList(). Les scanners disponibles sont renvoyés dans une promesse qui se résout avec un GetScannerListResponse.

    • L'objet de réponse contient un tableau d'objets ScannerInfo.
    • Le tableau peut contenir plusieurs entrées pour un même scanner si celui-ci est compatible avec plusieurs protocoles ou méthodes de connexion.
  2. Sélectionnez un scanner 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 des types d'images compatibles.

Configuration du scanner

  1. Appelez openScanner() en transmettant l'ID du scanner enregistré. Elle renvoie une promesse qui se résout avec un OpenScannerResponse. L'objet de réponse contient les éléments suivants :

    • Une propriété scannerHandle, que vous devrez enregistrer.

    • Une propriété d'options contenant des propriétés spécifiques au scanner, que vous devrez définir. Pour en savoir plus, consultez "Récupérer les options du scanner".

  2. (Facultatif) Si vous avez besoin que l'utilisateur fournisse 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 vous devrez récupérer les groupes d'options fournis par le scanner. Pour en savoir plus, consultez Créer une interface utilisateur.

  3. 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 de l'analyseur.

  4. 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 SetOptionsResponse. Cet objet contient une version mise à jour des options du scanner récupérées à l'étape 1 de la configuration du scanner.

    É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.

Analyse

  1. Créez un objet StartScanOptions et transmettez-le à startScan(). Elle renvoie une promesse qui se résout avec un StartScanResponse. Sa propriété job est un handle que vous utiliserez pour lire les données d'analyse ou annuler l'analyse.

  2. Transmettez le handle de job à readScanData(). Elle renvoie une promesse qui se résout avec un objet ReadScanDataResponse. Si les données ont bien été lues, sa propriété result est égale à SUCCESS et sa propriété data contient un ArrayBuffer avec une partie de l'analyse. Notez que estimatedCompletion contient un pourcentage estimé du total des données qui ont été livrées jusqu'à présent.

  3. Répétez l'étape précédente jusqu'à ce que la propriété result soit égale à EOF ou qu'une erreur se produise.

Une fois l'analyse terminée, appelez closeScanner() avec le handle du scanner enregistré à l'étape 3. Elle renvoie une promesse qui se résout avec un CloseScannerResponse. L'appel de cancelScan() à tout moment après la création du job 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 d'un certain type. La plupart d'entre eux contiennent une propriété result dont la valeur est un membre de OperationResult. Certaines propriétés des objets de réponse ne contiendront pas de valeurs, sauf si la valeur de result est 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 sera égal à SUCCESS.

Options de l'analyseur

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 du scanner 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 au scanner. 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. 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 cela ne soit pas obligatoire pour utiliser cette API, vous pouvez demander à un utilisateur de choisir 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 à 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 méthode 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 l'affichage des options dans OpenScannerResponse.

{
  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 ensuite l'opération autant de fois que nécessaire jusqu'à ce que toutes les options soient définies.

Définir les options de l'analyseur

Définissez les options de l'analyseur en transmettant un tableau d'objets OptionSetting à setOptions(). Pour obtenir un exemple, consultez la section Scanner une seule page au format lettre ci-dessous.

Exemples

Récupérer une page en tant que blob

Cet exemple montre comment récupérer une page du scanner sous forme de blob et illustre l'utilisation de startScan() et readScanData() à l'aide de la valeur de OperationResult.

async function pageAsBlob(handle) {
  let response = await browser.documentScan.startScan(
      handle, {format: "image/jpeg"});
  if (response.result != browser.documentScan.OperationResult.SUCCESS) {
    return null;
  }
  const job = response.job;

  let imgParts = [];
  response = await browser.documentScan.readScanData(job);
  while (response.result == browser.documentScan.OperationResult.SUCCESS) {
    if (response.data && response.data.byteLength > 0) {
        imgParts.push(response.data);
    } else {
      // Delay so hardware can make progress.
      await new Promise(r => setTimeout(r, 100));
    }
    response = await browser.documentScan.readScanData(job);
  }
  if (response.result != browser.documentScan.OperationResult.EOF) {
    return null;
  }
  if (response.data && response.data.byteLength > 0) {
    imgParts.push(response.data);
  }
  return new Blob(imgParts, { type: "image/jpeg" });
}

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 browser.documentScan.getScannerList({ secure: true });
    let scanner = await browser.documentScan.openScanner(
        response.scanners[0].scannerId);
    const handle = scanner.scannerHandle;

    let options = [];
    for (source of scanner.options["source"].constraint.list) {
        if (source.includes("ADF")) {
            options.push({
                name: "source",
                type: browser.documentScan.OptionType.STRING,
                value: { value: source }
            });
            break;
        }
    }
    options.push({
        name: "tl-x",
        type: browser.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-x",
        type: browser.documentScan.OptionType.FIXED,
        value: 215.9  // 8.5" in mm
    });
    options.push({
        name: "tl-y",
        type: browser.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-y",
        type: browser.documentScan.OptionType.FIXED,
        value: 279.4  // 11" in mm
    });
    response = await browser.documentScan.setOptions(handle, options);

    let imgBlob = await pageAsBlob(handle);
    if (imgBlob != null) {
        // Insert imgBlob into DOM, save to disk, etc
    }
    await browser.documentScan.closeScanner(handle);
}

Afficher la configuration

Comme indiqué ailleurs, pour afficher les options de configuration d'un scanner à un utilisateur, vous devez appeler getOptionGroups() en plus des options de scanner renvoyées par un appel à openScanner(). Cela permet d'afficher les options aux utilisateurs dans des groupes définis par le fabricant. Cet exemple montre comment procéder.

async function showConfig() {
  let response = await browser.documentScan.getScannerList({ secure: true });
  let scanner = await browser.documentScan.openScanner(
      response.scanners[0].scannerId);
  let groups = await browser.documentScan.getOptionGroups(scanner.scannerHandle);

  for (const group of groups.groups) {
    console.log("=== " + group.title + " ===");
    for (const member of group.members) {
      const option = scanner.options[member];
      if (option.isActive) {
        console.log("  " + option.name + " = " + option.value);
      } else {
        console.log("  " + option.name + " is inactive");
      }
    }
  }
}

Types

CancelScanResponse

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • job

    chaîne

    Fournit le même handle de job que celui transmis à cancelScan().

  • résultat

    Résultat de l'annulation de l'analyse du backend. Si le résultat est OperationResult.SUCCESS ou OperationResult.CANCELLED, l'analyse a été annulée et l'analyseur est prêt à en lancer une nouvelle. Si le résultat est OperationResult.DEVICE_BUSY , le scanner est toujours en train de traiter l'annulation demandée. L'appelant doit attendre un peu et réessayer. Les autres valeurs de résultat indiquent une erreur permanente qui ne doit pas être relancée.

CloseScannerResponse

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • résultat

    Résultat de la fermeture du scanner. Même si cette valeur n'est pas SUCCESS, le handle ne sera pas valide et ne devra pas être utilisé pour d'autres opérations.

  • scannerHandle

    chaîne

    Le même handle de scanner que celui transmis à closeScanner.

Configurability

Chrome 125+ browser.* depuis Chrome 148

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'option peut être définie par l'utilisateur en activant ou en appuyant sur un bouton du scanner.

ConnectionType

Chrome 125+ browser.* depuis Chrome 148

Indique comment le scanner est connecté à l'ordinateur.

Énumération

"UNSPECIFIED"

"USB"

"NETWORK"

ConstraintType

Chrome 125+ browser.* depuis Chrome 148

Type de données de la contrainte représenté 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

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • local

    boolean facultatif

    Ne renvoyer que les scanners directement connectés à l'ordinateur.

  • sécurisé

    boolean facultatif

    Ne renvoie que les scanners qui utilisent un transport sécurisé, tel que USB ou TLS.

GetOptionGroupsResponse

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • groupes

    OptionGroup[] facultatif

    Si result est défini sur SUCCESS, 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 sera renseignée.

  • scannerHandle

    chaîne

    Le même handle de scanner que celui transmis à getOptionGroups.

GetScannerListResponse

Chrome 125+ browser.* depuis Chrome 148

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 éventuellement vide de scanners correspondant au DeviceFilter fourni.

OpenScannerResponse

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • options

    objet facultatif

    Si result est SUCCESS, fournit un mappage clé-valeur où la clé est une option spécifique à l'appareil et la valeur est une instance de ScannerOption.

  • résultat

    Résultat de l'ouverture du scanner. Si la valeur est SUCCESS, les propriétés scannerHandle et options seront renseignées.

  • scannerHandle

    chaîne facultatif

    Si result est SUCCESS, un handle vers le scanner qui peut être utilisé pour d'autres opérations.

  • scannerId

    chaîne

    ID du scanner transmis à openScanner().

OperationResult

Chrome 125+ browser.* depuis Chrome 148

É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 acceptée.

"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 n'est pas du 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 du scanner à 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"
La mémoire disponible sur le Chromebook est insuffisante 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

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • list

    string[] | number[] facultatif

  • max

    number facultatif

  • min

    number facultatif

  • quant

    number facultatif

OptionGroup

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • membres

    chaîne[]

    Tableau de 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

Chrome 125+ browser.* depuis Chrome 148

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

    string | number | boolean | number[] facultatif

    Indique la valeur à définir. Laissez ce champ vide pour demander la configuration automatique des options pour lesquelles autoSettable est activé. Le type de données fourni pour value doit correspondre à type.

OptionType

Chrome 125+ browser.* depuis Chrome 148

Type de données d'une option.

Énumération

"UNKNOWN"
Le type de données de l'option est inconnu. La propriété value sera désactivée.

"BOOL"
La propriété value sera l'une des valeurs truefalse.

"INT"
Entier signé de 32 bits. La propriété value sera de type 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 de type double ou double[] selon que l'option accepte ou non plusieurs valeurs. Les valeurs doubles qui ne peuvent pas être représentées exactement seront 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 pas de 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, une option de type bouton peut être utilisée par un pilote de scanner pour permettre de sélectionner des valeurs par défaut ou pour indiquer à un chargeur automatique de documents de passer à la feuille de papier suivante.

"GROUP"
Option de regroupement. Aucune valeur. Il est inclus pour des raisons de compatibilité, mais n'est normalement pas renvoyé dans les valeurs ScannerOption. Utilisez getOptionGroups() pour récupérer la liste des groupes avec leurs options de membre.

OptionUnit

Chrome 125+ browser.* depuis Chrome 148

Indique le type de données pour ScannerOption.unit.

Énumération

"UNITLESS"
La valeur est un nombre sans unité. Par exemple, il peut s'agir d'un seuil.

"PIXEL"
La valeur est 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 les dimensions de numérisation.

"DPI"
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 est mesurée en microsecondes, par exemple le temps d'exposition.

ReadScanDataResponse

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • données

    ArrayBuffer facultatif

    Si result est défini sur SUCCESS, contient le prochain fragment de données d'image scannées. Si result est défini sur EOF, contient le dernier fragment de données d'image scannées.

  • estimatedCompletion

    number facultatif

    Si result est défini sur SUCCESS, une estimation de la quantité de données d'analyse totale qui a été fournie jusqu'à présent, comprise entre 0 et 100.

  • job

    chaîne

    Fournit le handle de job transmis à readScanData().

  • résultat

    Résultat de la lecture des données. Si sa valeur est SUCCESS, data contient le prochain fragment de données d'image (éventuellement de longueur nulle) prêt à être lu. Si sa valeur est EOF, data contient le dernier fragment de données d'image.

ScannerInfo

Chrome 125+ browser.* depuis Chrome 148

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 de types MIME pouvant être demandés pour les analyses renvoyées.

  • manufacturer

    chaîne

    Fabricant du scanner.

  • modèle

    chaîne

    Le modèle du scanner s'il est disponible, ou une description générique.

  • nom

    chaîne

    Nom du scanner lisible par l'humain à afficher dans l'interface utilisateur.

  • protocolType

    chaîne

    Description lisible par l'humain du protocole ou du pilote utilisé pour accéder au scanner, par exemple Mopria, WSD ou epsonds. Cela est principalement utile pour permettre à un utilisateur de choisir entre plusieurs protocoles si un appareil en accepte plusieurs.

  • scannerId

    chaîne

    ID d'un scanner spécifique.

  • sécurisé

    booléen

    Si la valeur est "true", le transport de la connexion du lecteur ne peut pas être intercepté par un écouteur passif, tel que TLS ou USB.

ScannerOption

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • configurabilité

    Indique si l'option peut être modifiée et comment.

  • contrainte

    OptionConstraint facultatif

    Définit OptionConstraint sur l'option de scanner actuelle.

  • description

    chaîne

    Une 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 la valeur est "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 un 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 signes diacritiques ne sont pas autorisés.

  • titre

    chaîne

    Un titre imprimable sur une seule ligne.

  • type

    Type de données contenu dans la propriété value, nécessaire pour définir cette option.

  • unité

    Unité de mesure de cette option.

  • valeur

    string | number | boolean | number[] 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 scannées autorisées. 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" à un tag d'image.

  • mimeType

    chaîne

    Type MIME de dataUrls.

SetOptionResult

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • nom

    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

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • options

    objet facultatif

    Mappage clé-valeur mis à jour des noms d'options aux valeurs ScannerOption contenant la nouvelle configuration après avoir tenté de définir toutes les options fournies. Cette propriété a la même structure que la propriété options dans OpenScannerResponse.

    Cette propriété sera définie même si certaines options n'ont pas été définies correctement, mais elle sera annulée si la récupération de la configuration mise à jour échoue (par exemple, si le scanner est déconnecté en cours d'analyse).

  • résultats

    Un tableau de résultats, un pour chaque OptionSetting transmis.

  • scannerHandle

    chaîne

    Fournit le handle du scanner transmis à setOptions().

StartScanOptions

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • format

    chaîne

    Spécifie le type MIME dans lequel renvoyer les données analysées.

  • maxReadSize

    number facultatif

    Si une valeur non nulle est spécifiée, limite à cette valeur le nombre maximal d'octets analysés renvoyés dans une seule réponse readScanData. La plus petite valeur autorisée est 32768 (32 Ko). Si cette propriété n'est pas spécifiée, la taille d'un fragment renvoyé peut être aussi grande que l'image scannée entière.

StartScanResponse

Chrome 125+ browser.* depuis Chrome 148

Propriétés

  • job

    chaîne facultatif

    Si result est défini sur SUCCESS, fournit un handle qui peut être utilisé pour lire les données d'analyse ou annuler le job.

  • résultat

    Résultat du démarrage d'une analyse. Si la valeur est SUCCESS, la propriété job sera renseignée.

  • scannerHandle

    chaîne

    Fournit le même handle de scanner que celui transmis à startScan().

Méthodes

cancelScan()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.cancelScan(
  job: string,
)
: Promise<CancelScanResponse>

Annule une analyse démarré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

    Handle d'un job d'analyse actif précédemment renvoyé par un appel à startScan.

Renvoie

closeScanner()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.closeScanner(
  scannerHandle: string,
)
: Promise<CloseScannerResponse>

Ferme le scanner avec le handle 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 un succès, 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 handle d'un scanner ouvert qui a été précédemment renvoyé par un appel à openScanner.

Renvoie

getOptionGroups()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.getOptionGroups(
  scannerHandle: string,
)
: Promise<GetOptionGroupsResponse>

Récupère les noms de groupes et les options de membres d'un scanner 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é par un appel à openScanner.

Renvoie

getScannerList()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.getScannerList(
  filter: DeviceFilter,
)
: Promise<GetScannerListResponse>

Récupère la liste des scanners 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

Renvoie

  • Renvoie une promesse qui se résout avec le résultat et la liste des scanners.

openScanner()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.openScanner(
  scannerId: string,
)
: Promise<OpenScannerResponse>

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 scanner à ouvrir. Cette valeur est renvoyée par un appel précédent à getScannerList.

Renvoie

readScanData()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.readScanData(
  job: string,
)
: Promise<ReadScanDataResponse>

Lit le prochain fragment de données d'image disponible à partir d'un handle de job 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 est toujours en cours d'exécution, mais qu'il n'a pas encore de données supplémentaires prêtes. L'appelant doit patienter un court instant, puis réessayer.

Une fois le job d'analyse terminé, la réponse aura la valeur de résultat EOF. Cette réponse peut contenir un membre data final non nul.

Paramètres

  • job

    chaîne

    Handle de job actif précédemment renvoyé par startScan.

Renvoie

scan()

browser.documentScan.scan(
  options: ScanOptions,
)
: Promise<ScanResults>

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 les paramètres d'analyse.

Renvoie

  • Promise<ScanResults>

    Chrome 96+ browser.* depuis Chrome 148

    Renvoie une promesse qui se résout avec les résultats de l'analyse.

setOptions()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
)
: Promise<SetOptionsResponse>

Définit les options du scanner 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

    Handle du scanner sur lequel 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 au scanner.

Renvoie

startScan()

Chrome 125+ browser.* depuis Chrome 148
browser.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
)
: Promise<StartScanResponse>

Lance une numérisation sur le scanner 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 aboutit, 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

    Le handle d'un scanner ouvert. Il doit s'agir d'une valeur précédemment renvoyée par un appel à openScanner.

  • Un objet StartScanOptions indiquant les options à utiliser pour l'analyse. La propriété StartScanOptions.format doit correspondre à l'une des entrées renvoyées dans le ScannerInfo du scanner.

Renvoie