chrome.documentScan

Descrizione

Utilizza l'API chrome.documentScan per trovare e recuperare le immagini dagli scanner di documenti allegati.

L'API Document Scan è progettata per consentire ad app ed estensioni di visualizzare il contenuto dei documenti cartacei su uno scanner di documenti allegato.

Autorizzazioni

documentScan

Disponibilità

Chrome 44 e versioni successive Solo ChromeOS
La disponibilità per i membri dell'API aggiunti in un secondo momento viene mostrata per questi membri.

Concetti e utilizzo

Questa API supporta due metodi di scansione dei documenti. Se il tuo caso d'uso può funzionare con qualsiasi scanner e non richiede il controllo della configurazione, utilizza il metodo scan(). I casi d'uso più complicati richiedono una combinazione di metodi, supportati solo in Chrome 124 e versioni successive.

Scansione semplice

Per i casi d'uso semplici, ovvero quelli che possono funzionare con qualsiasi scanner e che non richiedono il controllo della configurazione, chiama scan(). Questo metodo accetta un oggetto ScanOptions e restituisce un Promise che si risolve con un oggetto ScanResults. Le funzionalità di questa opzione sono limitate al numero di analisi e ai tipi MIME che saranno accettati dal chiamante. Le analisi vengono restituite come URL per la visualizzazione in un tag <img> per un'interfaccia utente.

Analisi complessa

Le scansioni complesse vengono eseguite in tre fasi, come descritto in questa sezione. Questo schema non descrive tutti gli argomenti dei metodi o ogni proprietà restituita in una risposta. È destinata solo a fornire una guida generale alla scrittura del codice dello scanner.

Discovery

  1. Chiama il numero getScannerList(). Gli scanner disponibili vengono restituiti in una promessa che si risolve con un GetScannerListResponse.

    • L'oggetto response contiene un array di oggetti ScannerInfo.
    • L'array può contenere più voci per un singolo scanner se questo supporta più protocolli o metodi di connessione.
  2. Seleziona uno scanner dall'array restituito e salva il valore della relativa proprietà scannerId.

    Utilizza le proprietà di singoli oggetti ScannerInfo per distinguere tra più oggetti per lo stesso scanner. Gli oggetti dello stesso scanner avranno lo stesso valore per la proprietà deviceUuid. ScannerInfo contiene anche una proprietà imageFormats contenente un array di tipi di immagini supportati.

Configurazione scanner

  1. Chiama il numero openScanner(), trasmettendo l'ID scanner salvato. Restituisce una promessa che si risolve con un OpenScannerResponse. L'oggetto risposta contiene:

    • Una proprietà scannerHandle, che dovrai salvare.

    • Una proprietà di opzioni contenente proprietà specifiche dello scanner, che dovrai impostare. Per ulteriori informazioni, vedi Recupero delle opzioni dello scanner.

  2. (Facoltativo) Se vuoi che l'utente fornisca valori per le opzioni dello scanner, crea un'interfaccia utente. Saranno necessarie le opzioni dello scanner fornite nel passaggio precedente e dovrai recuperare i gruppi di opzioni forniti dallo scanner. Per ulteriori informazioni, consulta Creare un'interfaccia utente.

  3. Crea un array di oggetti OptionSetting utilizzando i valori programmatici o forniti dall'utente. Per saperne di più, consulta Impostare le opzioni dello scanner.

  4. Passa l'array di OptionSetting oggetti a setOptions() per impostare le opzioni per lo scanner. Restituisce una promessa che si risolve con un SetOptionsResponse. Questo oggetto contiene una versione aggiornata delle opzioni dello scanner recuperate nel passaggio 1 della configurazione dello scanner.

    Poiché la modifica di un'opzione può alterare i vincoli di un'altra, può essere necessario ripetere questi passaggi più volte.

Scansione in corso

  1. Costruire un oggetto StartScanOptions e passarlo a startScan(). Restituisce una promessa che si risolve con un StartScanResponse. La relativa proprietà job è un handle che utilizzerai per leggere i dati della scansione o annullarla.

  2. Passa l'handle del job a readScanData(). Restituisce una promessa che si risolve con un oggetto ReadScanDataResponse. Se i dati sono stati letti correttamente, la relativa proprietà result è uguale a SUCCESS e la relativa proprietà data contiene un elemento ArrayBuffer con parte dell'analisi. Tieni presente che estimatedCompletion contiene una percentuale stimata dei dati totali pubblicati finora.

  3. Ripeti il passaggio precedente finché la proprietà result non corrisponde a EOF o non si verifica un errore.

Quando viene raggiunta la fine della scansione, chiama closeScanner() con l'handle dello scanner salvato nel passaggio 3. Restituisce una promessa che si risolve con un CloseScannerResponse. Se chiami cancelScan() in qualsiasi momento dopo la creazione del job, l'analisi verrà terminata.

Oggetti risposta

Tutti i metodi restituiscono una promessa che si risolve con un oggetto risposta di qualche tipo. La maggior parte di questi contiene una proprietà result il cui valore è un membro di OperationResult. Alcune proprietà degli oggetti risposta non conterranno valori, a meno che il valore di result non abbia un valore specifico. Queste relazioni sono descritte nel riferimento per ciascun oggetto risposta.

Ad esempio, OpenScannerResponse.scannerHandle avrà un valore solo quando OpenScannerResponse.result è uguale a SUCCESS.

Opzioni scanner

Le opzioni dello scanner variano notevolmente in base al dispositivo. Di conseguenza, non è possibile riflettere le opzioni di scanner direttamente all'interno dell'API documentScan. Per risolvere questo problema, OpenScannerResponse (recuperato utilizzando openScanner()) e SetOptionsResponse (l'oggetto di risposta per setOptions()) contengono una proprietà options, che è un oggetto contenente opzioni specifiche per lo scanner. Ogni opzione è una mappatura chiave-valore in cui la chiave è un'opzione specifica per dispositivo e il valore è un'istanza di ScannerOption.

La struttura generalmente è la seguente:

{
  "key1": { scannerOptionInstance }
  "key2": { scannerOptionInstance }
}

Ad esempio, immagina uno scanner che restituisca opzioni denominate "origine" e "risoluzione". La struttura dell'oggetto options restituito sarà simile all'esempio seguente. Per semplicità, vengono mostrate solo le risposte ScannerOption parziali.

{
  "source": {
    "name": "source",
    "type": OptionType.STRING,
...
},
  "resolution": {
    "name": "resolution",
    "type": OptionType.INT,
...
  },
...
}

Creare un'interfaccia utente

Sebbene non sia obbligatorio utilizzare questa API, è consigliabile che un utente scelga il valore per una determinata opzione. Richiede un'interfaccia utente. Utilizza l'elemento OpenScannerResponse (aperto da openScanner()) per recuperare le opzioni per lo scanner collegato come descritto nella sezione precedente.

Alcuni scanner raggruppano le opzioni in base al dispositivo. Non influiscono sui comportamenti delle opzioni, ma poiché questi gruppi potrebbero essere menzionati nella documentazione del prodotto di uno scanner, dovrebbero essere mostrati all'utente. Puoi recuperare questi gruppi chiamando getOptionGroups(). Questo restituisce una promessa che si risolve con un oggetto GetOptionGroupsResponse. La sua proprietà groups contiene un array di gruppi specifico per lo scanner. Utilizza le informazioni in questi gruppi per organizzare le opzioni nella OpenScannerResponse da visualizzare.

{
  scannerHandle: "123456",
  result: SUCCESS,
  groups: [
    {
      title: "Standard",
      members: [ "resolution", "mode", "source" ]
    }
  ]
}

Come indicato in Configurazione scanner, la modifica di un'opzione può alterare i vincoli rispetto a un'altra. Questo è il motivo per cui setOptionsResponse (l'oggetto di risposta per setOptions()) contiene un'altra proprietà options. Utilizza questa opzione per aggiornare l'interfaccia utente. Poi ripeti questa operazione fino a quando non sono state impostate tutte le opzioni.

Imposta opzioni scanner

Imposta le opzioni dello scanner passando un array di oggetti OptionSetting a setOptions(). Per un esempio, consulta la seguente sezione Scansiona una pagina in formato lettera.

Esempi

Recupera una pagina come blob

Questo esempio mostra un modo per recuperare una pagina dallo scanner sotto forma di blob e mostra l'utilizzo di startScan() e readScanData() usando il valore 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" });
}

Scansiona una pagina in formato lettera

Questo esempio mostra come selezionare uno scanner, impostarne le opzioni e aprirlo. Quindi, recupera i contenuti di una singola pagina e chiude lo scanner. Questo processo dimostra l'utilizzo di getScannerList(), openScanner(), setOptions() e closeScanner(). Tieni presente che i contenuti della pagina vengono recuperati chiamando la funzione pageAsBlob() dall'esempio precedente.

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);
}

Mostra la configurazione

Come indicato altrove, per mostrare a un utente le opzioni di configurazione di uno scanner devi chiamare getOptionGroups() in aggiunta alle opzioni di scansione restituite da una chiamata a openScanner(). In questo modo, le opzioni possono essere mostrate agli utenti nei gruppi definiti dal produttore. Questo esempio mostra come eseguire questa operazione.

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");
      }
    }
  }
}

Tipi

CancelScanResponse

In attesa

Proprietà

  • job

    stringa

    Fornisce lo stesso handle del job che è stato passato a cancelScan().

  • risultato

    Il risultato della scansione del backend. Se il risultato è OperationResult.SUCCESS o OperationResult.CANCELLED, la scansione è stata annullata e lo scanner è pronto per avviarne una nuova. Se il risultato è OperationResult.DEVICE_BUSY , lo scanner sta ancora elaborando l'annullamento richiesto; il chiamante dovrebbe attendere qualche istante e riprovare a eseguire la richiesta. Altri valori dei risultati indicano un errore permanente che non deve essere riprovato.

CloseScannerResponse

In attesa

Proprietà

  • risultato

    Il risultato della chiusura dello scanner. Anche se questo valore non è SUCCESS, l'handle non sarà valido e non dovrà essere utilizzato per ulteriori operazioni.

  • scannerHandle

    stringa

    Lo stesso handle dello scanner che è stato passato a closeScanner.

Configurability

In attesa

Come può essere modificata un'opzione.

Enum

"NOT_CONFIGURABLE"
L'opzione è di sola lettura.

"SOFTWARE_CONFIGURABLE"
L'opzione può essere impostata nel software.

"HARDWARE_CONFIGURABLE"
L'opzione può essere impostata dall'utente attivando o premendo un pulsante sullo scanner.

ConnectionType

In attesa

Indica il modo in cui lo scanner è collegato al computer.

Enum

"USB"

ConstraintType

In attesa

Il tipo di dati del vincolo rappresentato da un OptionConstraint.

Enum

"INT_RANGE"
Il vincolo su un intervallo di OptionType.INT valori. Le proprietà min, max e quant di OptionConstraint saranno long e la sua proprietà list verrà annullata.

"FIXED_RANGE"
Il vincolo su un intervallo di OptionType.FIXED valori. Le proprietà min, max e quant di OptionConstraint saranno double e la relativa proprietà list verrà annullata.

"INT_LIST"
Il vincolo su un elenco specifico di OptionType.INT valori. La proprietà OptionConstraint.list conterrà valori long e le altre proprietà verranno disattivate.

"FIXED_LIST"
Il vincolo su un elenco specifico di OptionType.FIXED valori. La proprietà OptionConstraint.list conterrà valori double e le altre proprietà verranno disattivate.

"STRING_LIST"
Il vincolo su un elenco specifico di OptionType.STRING valori. La proprietà OptionConstraint.list conterrà valori DOMString e le altre proprietà verranno disattivate.

DeviceFilter

In attesa

Proprietà

  • local

    booleano facoltativo

    Restituisci solo gli scanner collegati direttamente al computer.

  • sicuro

    booleano facoltativo

    Restituisci solo gli scanner che utilizzano un trasporto sicuro, come USB o TLS.

GetOptionGroupsResponse

In attesa

Proprietà

  • gruppi

    OptionGroup[] facoltativo

    Se result è SUCCESS, fornisce un elenco di gruppi di opzioni nell'ordine indicato dal driver dello scanner.

  • risultato

    Il risultato ottenuto dai gruppi di opzioni. Se il valore di questo è SUCCESS, la proprietà groups verrà compilata.

  • scannerHandle

    stringa

    Lo stesso handle dello scanner che è stato passato a getOptionGroups.

GetScannerListResponse

In attesa

Proprietà

  • risultato

    Il risultato dell'enumerazione. Tieni presente che potrebbero essere restituiti risultati parziali anche se questo indica un errore.

  • scanner

    Un elenco potenzialmente vuoto di scanner corrispondenti al valore DeviceFilter fornito.

OpenScannerResponse

In attesa

Proprietà

  • opzioni del modello.

    oggetto facoltativo

    Se result è SUCCESS, fornisce una mappatura chiave-valore in cui la chiave è un'opzione specifica per il dispositivo e il valore è un'istanza di ScannerOption.

  • risultato

    Il risultato dell'apertura dello scanner. Se il valore di questo parametro è SUCCESS, verranno compilate le proprietà scannerHandle e options.

  • scannerHandle

    stringa facoltativo

    Se result è SUCCESS, un handle dello scanner che può essere utilizzato per ulteriori operazioni.

  • scannerId

    stringa

    L'ID scanner passato a openScanner().

OperationResult

In attesa

Un'enumerazione che indica il risultato di ogni operazione.

Enum

"UNKNOWN"
Si è verificato un errore sconosciuto o generico.

"SUCCESS"
L'operazione è riuscita.

"NON SUPPORTATO"
L'operazione non è supportata.

"ANNULLATO"
L'operazione è stata annullata.

"DEVICE_BUSY"
Il dispositivo è occupato.

"NON VALIDO"
I dati o un argomento passato al metodo non sono validi.

"WRONG_TYPE"
Il valore fornito è il tipo di dati errato per l'opzione sottostante.

"EOF"
Non sono disponibili altri dati.

"ADF_JAMMED"
L'alimentatore di documenti è inceppato.

"ADF_EMPTY"
L'alimentatore di documenti è vuoto.

"COVER_OPEN"
La copertura del piano letto è aperta.

"IO_ERROR"
Si è verificato un errore durante la comunicazione con il dispositivo.

"ACCESS_DENIED"
Il dispositivo richiede l'autenticazione.

"NO_MEMORY"
La memoria disponibile su Chromebook non è sufficiente per completare l'operazione.

"NON RAGGIUNGIBILE"
Il dispositivo non è raggiungibile.

"MISSING"
Il dispositivo è disconnesso.

"INTERNAL_ERROR"
Si è verificato un errore in un luogo diverso dall'applicazione chiamante.

OptionConstraint

In attesa

Proprietà

  • list

    string[]|number[] optional

  • max

    numero facoltativo

  • min

    numero facoltativo

  • quantitativo

    numero facoltativo

OptionGroup

In attesa

Proprietà

  • membri

    stringa[]

    Un array di nomi delle opzioni nell'ordine fornito dal conducente.

  • title

    stringa

    Fornisce un titolo stampabile, ad esempio "Opzioni geometria".

OptionSetting

In attesa

Proprietà

  • nome

    stringa

    Indica il nome dell'opzione da impostare.

  • Tipo

    Indica il tipo di dati dell'opzione. Il tipo di dati richiesto deve corrispondere al tipo di dati reali dell'opzione sottostante.

  • valore

    string|number|boolean|number[] optional

    Indica il valore da impostare. Non impostare l'opzione per richiedere l'impostazione automatica delle opzioni che hanno autoSettable abilitato. Il tipo di dati specificato per value deve corrispondere a type.

OptionType

In attesa

Il tipo di dati di un'opzione.

Enum

"UNKNOWN"
Il tipo di dati dell'opzione è sconosciuto. L'impostazione della proprietà value verrà annullata.

"BOOL"
La proprietà value sarà una delle truefalse.

"INT"
Un numero intero a 32 bit firmato. La proprietà value sarà lunga o lunga[], a seconda che l'opzione accetti più di un valore.

"FIXED"
Un doppio nell'intervallo -32768-32767,9999 con una risoluzione di 1/65535. La proprietà value sarà doppia o doppia[] a seconda che l'opzione accetti più di un valore. I valori doppi che non possono essere rappresentati esattamente verranno arrotondati all'intervallo e alla precisione disponibili.

"STRING"
Una sequenza di byte, tranne NUL ("\0"). La proprietà value sarà una DOMString.

"BUTTON"
Un'opzione di questo tipo non ha valori. L'impostazione di un'opzione di questo tipo causa invece un effetto collaterale specifico dell'opzione nel driver dello scanner. Ad esempio, un driver di scanner potrebbe utilizzare un'opzione di tipo pulsante per fornire un mezzo per selezionare valori predefiniti o per indicare a un alimentatore di documenti automatico di passare al foglio di carta successivo.

"GROUP"
Opzione di raggruppamento. Nessun valore. Questo valore è incluso per la compatibilità, ma di solito non viene restituito nei valori ScannerOption. Utilizza getOptionGroups() per recuperare l'elenco dei gruppi con le relative opzioni per i membri.

OptionUnit

In attesa

Indica il tipo di dati per ScannerOption.unit.

Enum

"UNITLESS"
Il valore è un numero senza unità. Ad esempio, può essere una soglia.

"PIXEL"
Il valore è un numero di pixel, ad esempio le dimensioni di scansione.

"BIT"
Il valore è il numero di bit, ad esempio la profondità di colore.

"MM"
Il valore è misurato in millimetri, ad esempio le dimensioni di scansione.

"DPI"
Il valore viene misurato in punti per pollice, ad esempio la risoluzione.

"PERCENT"
Il valore è una percentuale, ad esempio luminosità.

"MICROSECOND"
Il valore viene misurato in microsecondi, ad esempio il tempo di esposizione.

ReadScanDataResponse

In attesa

Proprietà

  • data

    ArrayBuffer facoltativo

    Se result è SUCCESS, contiene il blocco successivo di dati dell'immagine scansionata. Se result è EOF, contiene l'ultimo blocco di dati di immagini scansionate.

  • estimatedCompletion

    numero facoltativo

    Se result è SUCCESS, una stima della quantità di dati di scansione totali inviati finora, compreso tra 0 e 100.

  • job

    stringa

    Fornisce l'handle del job passato a readScanData().

  • risultato

    Il risultato della lettura dei dati. Se il valore è SUCCESS, data contiene il blocco successivo (possibilmente di lunghezza pari a zero) di dati dell'immagine pronto per la lettura. Se il valore è EOF, data contiene l'ultimo blocco di dati immagine.

ScannerInfo

In attesa

Proprietà

  • connectionType

    Indica il modo in cui lo scanner è collegato al computer.

  • deviceUuid

    stringa

    Per la corrispondenza con altre voci ScannerInfo che rimandano allo stesso dispositivo fisico.

  • imageFormats

    stringa[]

    Un array di tipi MIME che è possibile richiedere per le analisi restituite.

  • produttore

    stringa

    Il produttore dello scanner.

  • model

    stringa

    Il modello di scanner, se disponibile, o una descrizione generica.

  • nome

    stringa

    Un nome leggibile che lo scanner verrà visualizzato nell'interfaccia utente.

  • protocolType

    stringa

    Una descrizione leggibile del protocollo o del driver utilizzato per accedere allo scanner, ad esempio Mopria, WSD o epsonds. Questa funzionalità è utile soprattutto per consentire a un utente di scegliere tra diversi protocolli se un dispositivo ne supporta più di uno.

  • scannerId

    stringa

    L'ID di uno scanner specifico.

  • sicuro

    boolean

    Se il valore è true, il trasporto della connessione dello scanner non può essere intercettato da un listener passivo, come TLS o USB.

ScannerOption

In attesa

Proprietà

  • configurabilità

    Indica se e come l'opzione può essere modificata.

  • vincolo

    OptionConstraint facoltativo

    Definisce OptionConstraint sull'opzione di scansione corrente.

  • descrizione

    stringa

    Una descrizione più lunga dell'opzione.

  • isActive

    boolean

    Indica che l'opzione è attiva e può essere impostata o recuperata. Se il valore è false, la proprietà value non verrà impostata.

  • isAdvanced

    boolean

    Indica che nell'interfaccia utente non dovrebbe essere visualizzata questa opzione per impostazione predefinita.

  • isAutoSettable

    boolean

    Può essere impostato automaticamente dal driver dello scanner.

  • isDetectable

    boolean

    Indica che questa opzione può essere rilevata dal software.

  • isEmulated

    boolean

    Emulato dal driver dello scanner, se vero.

  • nome

    stringa

    Il nome dell'opzione che utilizza lettere ASCII minuscole, numeri e trattini. I segni diacritici non sono consentiti.

  • title

    stringa

    Un titolo stampabile di una riga.

  • Tipo

    Il tipo di dati contenuto nella proprietà value, necessario per impostare questa opzione.

  • unità

    L'unità di misura per questa opzione.

  • valore

    string|number|boolean|number[] optional

    Il valore attuale dell'opzione, se pertinente. Tieni presente che il tipo di dati di questa proprietà deve corrispondere al tipo di dati specificato in type.

ScanOptions

Proprietà

  • maxImages

    numero facoltativo

    Il numero consentito di immagini scansionate. Il valore predefinito è 1.

  • mimeTypes

    string[] facoltativo

    I tipi MIME accettati dal chiamante.

ScanResults

Proprietà

  • dataUrls

    stringa[]

    Un array di URL di immagini di dati in un formato che può essere passato come valore "src" a un tag immagine.

  • mimeType

    stringa

    Il tipo MIME di dataUrls.

SetOptionResult

In attesa

Proprietà

  • nome

    stringa

    Indica il nome dell'opzione impostata.

  • risultato

    Indica il risultato dell'impostazione dell'opzione.

SetOptionsResponse

In attesa

Proprietà

  • opzioni del modello.

    oggetto facoltativo

    Una mappatura chiave-valore aggiornata dai nomi delle opzioni ai valori ScannerOption contenenti la nuova configurazione dopo il tentativo di impostare tutte le opzioni fornite. Ha la stessa struttura della proprietà options in OpenScannerResponse.

    Questa proprietà verrà impostata anche se alcune opzioni non sono state impostate correttamente, ma verrà annullata se il recupero della configurazione aggiornata non riesce (ad esempio, se lo scanner è disconnesso durante la scansione).

  • risultati

    Un array di risultati, uno ciascuno per ogni OptionSetting trasmesso.

  • scannerHandle

    stringa

    Fornisce l'handle dello scanner passato a setOptions().

StartScanOptions

In attesa

Proprietà

  • dell'annuncio

    stringa

    Specifica il tipo MIME in cui restituire i dati scansionati.

  • maxReadSize

    numero facoltativo

    Se viene specificato un valore diverso da zero, limita il numero massimo di byte analizzati restituiti in una singola risposta readScanData a quel valore. Il valore minimo consentito è 32768 (32 kB). Se questa proprietà non è specificata, le dimensioni di un blocco restituito potrebbero corrispondere alle dimensioni dell'intera immagine scansionata.

StartScanResponse

In attesa

Proprietà

  • job

    stringa facoltativo

    Se result è SUCCESS, fornisce un handle che può essere utilizzato per leggere i dati della scansione o annullare il job.

  • risultato

    Il risultato dell'avvio di una scansione. Se il valore di questo è SUCCESS, la proprietà job verrà compilata.

  • scannerHandle

    stringa

    Fornisce lo stesso handle dello scanner passato a startScan().

Metodi

cancelScan()

Promessa In attesa
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Annulla una scansione avviata e restituisce una Promise che si risolve con un oggetto CancelScanResponse. Se si utilizza un callback, l'oggetto viene passato all'oggetto.

Parametri

  • job

    stringa

    L'handle di un job di scansione attivo restituito in precedenza da una chiamata a startScan.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: CancelScanResponse)=>void

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

closeScanner()

Promessa In attesa
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Chiude lo scanner con l'handle passato e restituisce una promessa che si risolve con un oggetto CloseScannerResponse. Se si utilizza un callback, l'oggetto viene passato all'oggetto. Anche se la risposta non ha esito positivo, l'handle fornito non è più valido e non deve essere utilizzato per ulteriori operazioni.

Parametri

  • scannerHandle

    stringa

    Specifica l'handle di uno scanner aperto precedentemente restituito da una chiamata a openScanner.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: CloseScannerResponse)=>void

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

getOptionGroups()

Promessa In attesa
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Recupera i nomi dei gruppi e le opzioni dei membri da uno scanner aperto in precedenza da openScanner. Questo metodo restituisce una promessa che si risolve con un oggetto GetOptionGroupsResponse. Se viene passato un callback a questa funzione, i dati restituiti vengono trasmessi a questa funzione.

Parametri

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

getScannerList()

Promessa In attesa
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

Recupera l'elenco degli scanner disponibili e restituisce una promessa che si risolve con un oggetto GetScannerListResponse. Se viene passato un callback a questa funzione, i dati restituiti vengono trasmessi a questa funzione.

Parametri

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

openScanner()

Promessa In attesa
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

Apre uno scanner per l'accesso esclusivo e restituisce una Promise che si risolve con un oggetto OpenScannerResponse. Se viene passato un callback a questa funzione, i dati restituiti vengono trasmessi a questa funzione.

Parametri

  • scannerId

    stringa

    L'ID di uno scanner da aprire. Questo valore corrisponde a uno restituito da una precedente chiamata a getScannerList.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: OpenScannerResponse)=>void

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

readScanData()

Promessa In attesa
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Legge il blocco successivo di dati di immagine disponibili da un handle di job attivo e restituisce una Promise che si risolve con un oggetto ReadScanDataResponse. Se si utilizza un callback, l'oggetto viene passato all'oggetto.

**Nota:**è valido per un risultato di risposta SUCCESS con un membro data di lunghezza zero. Questo significa che lo scanner funziona ancora, ma non ha ancora dati aggiuntivi a portata di mano. Il chiamante dovrebbe attendere qualche istante e riprovare.

Al termine del job di scansione, la risposta avrà come risultato EOF. Questa risposta può contenere un membro finale data diverso da zero.

Parametri

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

scan()

Promessa
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

Esegue una scansione del documento e restituisce una promessa che si risolve con un oggetto ScanResults. Se viene passato un callback a questa funzione, i dati restituiti verranno trasmessi a questa funzione.

Parametri

  • opzioni del modello.

    Un oggetto che contiene i parametri di scansione.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: ScanResults)=>void

Ritorni

  • Promise<ScanResults>

    Chrome 96 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

setOptions()

Promessa In attesa
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Imposta le opzioni sullo scanner specificato e restituisce una Promise che si risolve con un oggetto SetOptionsResponse contenente il risultato del tentativo di impostare ogni valore nell'ordine dell'oggetto OptionSetting passato. Se si utilizza un callback, l'oggetto viene passato all'oggetto.

Parametri

  • scannerHandle

    stringa

    Il punto di manipolazione dello scanner su cui impostare le opzioni. Deve essere un valore restituito in precedenza da una chiamata a openScanner.

  • opzioni del modello.

    Un elenco di OptionSetting oggetti da applicare allo scanner.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: SetOptionsResponse)=>void

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

startScan()

Promessa In attesa
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Avvia una scansione sullo scanner specificato e restituisce una promessa che si risolve con un StartScanResponse. Se si utilizza un callback, l'oggetto viene passato all'oggetto. Se la chiamata ha esito positivo, la risposta include un handle del job che può essere utilizzato nelle chiamate successive per leggere i dati della scansione o annullare una scansione.

Parametri

  • scannerHandle

    stringa

    La maniglia di uno scanner aperto. Deve essere un valore restituito in precedenza da una chiamata a openScanner.

  • opzioni del modello.

    Un oggetto StartScanOptions che indica le opzioni da utilizzare per la scansione. La proprietà StartScanOptions.format deve corrispondere a una delle voci restituite nel ScannerInfo dello scanner.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: StartScanResponse)=>void

Ritorni

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.