chrome.documentScan

Descrizione

Utilizza l'API chrome.documentScan per rilevare e recuperare immagini dagli scanner di documenti collegati.

L'API Document Scan è progettata per consentire ad app ed estensioni di visualizzare i contenuti di documenti cartacei su uno scanner di documenti collegato.

Autorizzazioni

documentScan

Disponibilità

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

Concetti e utilizzo

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

Scansione semplice

Per casi d'uso semplici, ovvero quelli che funzionano con qualsiasi scanner e che richiedono il controllo della configurazione, chiama scan(). Questo metodo prende un ScanOptions e restituisce una Promessa che si risolve con un ScanResults . Le capacità di questa opzione sono limitate al numero di scansioni e i tipi MIME accettati dal chiamante. Le scansioni vengono restituite come URL per la visualizzazione in un tag <img> per un'interfaccia utente.

Scansione complessa

Le scansioni complesse vengono eseguite in tre fasi, come descritto in questa sezione. Questa descrizione non descrive tutti gli argomenti dei metodi o ogni proprietà restituita in una risposta. Ha solo il suo scopo di fornire una guida generale alla scrittura di uno scanner. le API nel tuo codice.

Discovery

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

    • L'oggetto risposta contiene un array di ScannerInfo di oggetti strutturati.
    • L'array può contenere più voci per un singolo scanner se quest'ultimo supporta più protocolli o metodi di connessione.
  2. Seleziona uno scanner dall'array restituito e salva il valore del relativo scannerId proprietà.

    Utilizza le proprietà dei singoli oggetti ScannerInfo per distinguere tra più oggetti per lo stesso scanner. Gli oggetti lo stesso scanner avrà 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 openScanner(), trasmettendo l'ID scanner salvato. Restituisce una promessa che si risolve con OpenScannerResponse. L'oggetto risposta contiene:

    • Una proprietà scannerHandle, che dovrai salvare.

    • Una proprietà delle opzioni contenente le proprietà specifiche dello scanner, che verranno definite da impostare. Per ulteriori informazioni, vedi Recuperare le opzioni di scansione.

  2. (Facoltativo) Se vuoi che l'utente fornisca i valori per le opzioni dello scanner, per creare un'interfaccia utente. Avrai bisogno delle opzioni per lo scanner fornite passaggio precedente, dove dovrai recuperare i gruppi di opzioni forniti scanner. Per saperne di più, consulta la sezione Creare un'interfaccia utente.

  3. Costruire un array di oggetti OptionSetting utilizzando di pubblicità programmatica o forniti dall'utente. Per ulteriori informazioni, vedi Imposta le opzioni dello scanner informazioni.

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

    Dalla modifica di uno può alterare i vincoli di un'altra opzione, potresti dover ripetere questi passaggi più volte.

Scansione in corso

  1. Crea un oggetto StartScanOptions e passalo a startScan(). Restituisce una promessa che si risolve con una StartScanResponse. La sua proprietà job è un handle da utilizzare per leggere i dati della scansione o annullarla.

  2. Passa l'handle del job a readScanData(). Restituisce un valore Promessa che si risolve con un ReadScanDataResponse. Se i dati sono stati letti correttamente, la relativa proprietà result è uguale a SUCCESS e alla relativa proprietà data contiene un ArrayBuffer con parte della scansione. Tieni presente che estimatedCompletion contiene una stima percentuale dei dati totali pubblicati fino a quel momento.

  3. Ripeti il passaggio precedente fino a quando la proprietà result non corrisponde a EOF o restituisce un errore.

Quando viene raggiunta la fine della scansione, chiama closeScanner() con il punto di manipolazione dello scanner salvato nel passaggio 3. Restituisce una promessa che si risolve con un CloseScannerResponse Chiamata in corso cancelScan() in qualsiasi momento dopo la creazione del job e terminare la scansione.

Oggetti di 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 conterrà valori a meno che il valore di result non abbia un valore specifico. Questi sono descritte nel riferimento per ciascun oggetto risposta.

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

Opzioni scanner

Le opzioni dello scanner variano notevolmente in base al dispositivo. Di conseguenza, non è possibile riflettono le opzioni dello scanner direttamente nell'API documentScan. Come spostarsi questo, OpenScannerResponse (recuperato utilizzando openScanner()) e SetOptionsResponse (l'oggetto risposta per setOptions()) contengono una proprietà options che è una contenente opzioni specifiche dello scanner. Ogni opzione è una mappatura chiave-valore dove la chiave è un'opzione specifica del dispositivo e il valore è un'istanza di ScannerOption

In genere la struttura è simile alla seguente:

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

Ad esempio, immagina uno scanner che restituisce opzioni denominate "source". e "risoluzione". La struttura dell'oggetto options restituito avrà un aspetto diverso come nell'esempio seguente. Per semplicità, solo una parte di ScannerOption vengono mostrate le risposte.

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

Costruire un'interfaccia utente

Sebbene non sia obbligatorio utilizzare questa API, è consigliabile che sia un utente a scegliere il valore per una determinata opzione. Ciò richiede un'interfaccia utente. Utilizza la OpenScannerResponse (aperta da openScanner()) per recuperare le opzioni per l'elemento scanner come descritto nella sezione precedente.

Alcuni scanner raggruppano le opzioni in modi specifici del dispositivo. Non influiscono sull'opzione comportamenti, ma poiché questi gruppi possono essere menzionati nel prodotto di uno scanner, questi gruppi devono essere mostrati all'utente. Puoi recuperare questi dati chiama getOptionGroups(). Questo restituisce un Promessa che si risolve con un GetOptionGroupsResponse. È groups contiene un array di gruppi specifico dello scanner. Utilizza le informazioni contenute in questi gruppi per organizzare le opzioni nel OpenScannerResponse per la visualizzazione.

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

Come indicato nella configurazione dello Scanner, la modifica di un'opzione può alterare i vincoli su un'altra opzione. Ecco perché setOptionsResponse (l'oggetto risposta per setOptions()) contiene un'altra proprietà options. Utilizza le funzionalità di questo per aggiornare l'interfaccia utente. Poi ripeti l'operazione in base alle tue esigenze fino a quando tutte le opzioni sono per iniziare.

Imposta opzioni scanner

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

Esempi

Recuperare una pagina come blob

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

Esegui la scansione di una pagina in formato lettera

Questo esempio mostra come selezionare uno scanner, impostarne le opzioni e aprirlo. it recupera i contenuti di una singola pagina e chiude lo scanner. Questo processo dimostra utilizzando getScannerList(), openScanner(), setOptions() e closeScanner(). Tieni presente che i contenuti della pagina vengono recuperati richiamando la funzione pageAsBlob() dell'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, mostrare le opzioni di configurazione di uno scanner a un utente richiede chiamata getOptionGroups() oltre alle opzioni di scansione restituite da un chiamata a openScanner(). In questo modo le opzioni possono essere mostrate agli utenti in definiti dal produttore. Questo esempio mostra come farlo.

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

Chrome 125 e versioni successive .

Proprietà

  • job

    stringa

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

  • risultato

    Risultato della scansione dell'annullamento del backend. Se il risultato è OperationResult.SUCCESS o OperationResult.CANCELLED, la scansione è stata annullata e lo scanner è pronto per iniziare una nuova scansione. Se il risultato è OperationResult.DEVICE_BUSY , lo scanner sta ancora elaborando l'annullamento richiesto. il chiamante dovrebbe attendere un po' di tempo e riprovare a inviare la richiesta. Altri valori dei risultati indicano un errore permanente che non deve essere riprovato.

CloseScannerResponse

Chrome 125 e versioni successive .

Proprietà

  • risultato

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

  • scannerHandle

    stringa

    Lo stesso handle dello scanner passato a closeScanner.

Configurability

Chrome 125 e versioni successive .

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

Chrome 125 e versioni successive .

Indica come lo scanner è collegato al computer.

Enum

"NON SPECIFICATO"

"USB"

"RETE"

ConstraintType

Chrome 125 e versioni successive .

Il tipo di dati del vincolo rappresentato da un elemento 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 relativa proprietà list non verrà impostata.

"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 non verrà impostata.

"INT_LIST"
Il vincolo su un elenco specifico di valori OptionType.INT. La proprietà OptionConstraint.list conterrà long valori, mentre le altre proprietà non verranno impostate.

"FIXED_LIST"
Il vincolo su un elenco specifico di valori OptionType.FIXED. La proprietà OptionConstraint.list conterrà double valori, mentre le altre proprietà non verranno impostate.

"STRING_LIST"
Il vincolo su un elenco specifico di valori OptionType.STRING. La proprietà OptionConstraint.list conterrà DOMString valori, mentre le altre proprietà non verranno impostate.

DeviceFilter

Chrome 125 e versioni successive .

Proprietà

  • local

    booleano facoltativo

    Restituisci solo gli scanner direttamente collegati al computer.

  • sicuro

    booleano facoltativo

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

GetOptionGroupsResponse

Chrome 125 e versioni successive .

Proprietà

  • gruppi

    OptionGroup[] facoltativo

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

  • risultato

    Il risultato dell'ottenimento dei gruppi di opzioni. Se il valore è SUCCESS, la proprietà groups verrà compilata.

  • scannerHandle

    stringa

    Lo stesso handle dello scanner passato a getOptionGroups.

GetScannerListResponse

Chrome 125 e versioni successive .

Proprietà

  • risultato

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

  • scanner

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

OpenScannerResponse

Chrome 125 e versioni successive .

Proprietà

  • opzioni

    oggetto facoltativo

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

  • risultato

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

  • scannerHandle

    stringa facoltativo

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

  • scannerId

    stringa

    L'ID scanner trasmesso a openScanner().

OperationResult

Chrome 125 e versioni successive .

Un'enumerazione che indica il risultato di ogni operazione.

Enum

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

"SUCCESS"
L'operazione è riuscita.

"NON SUPPORTATA"
L'operazione non è supportata.

"ANNULLATA"
L'operazione è stata annullata.

"DEVICE_BUSY"
Il dispositivo è occupato.

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

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

"EOF"
Non sono disponibili altri dati.

"ADF_JAMMED"
L'alimentatore documenti è inceppato.

"ADF_EMPTY"
L'alimentatore di documenti è vuoto.

"COVER_OPEN"
La copertura del piano piana è 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 sul 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 punto diverso dall'applicazione chiamante.

OptionConstraint

Chrome 125 e versioni successive .

Proprietà

  • list

    string[] | numero[] facoltativo

  • max

    numero facoltativo

  • min

    numero facoltativo

  • quanti

    numero facoltativo

OptionGroup

Chrome 125 e versioni successive .

Proprietà

  • membri

    stringa[]

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

  • titolo

    stringa

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

OptionSetting

Chrome 125 e versioni successive .

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 reale dell'opzione sottostante.

  • valore

    string | numero | boolean | numero[] facoltativo

    Indica il valore da impostare. Non configurare le impostazioni per richiedere l'impostazione automatica per le opzioni che hanno autoSettable abilitato. Il tipo di dati fornito per value deve corrispondere a type.

OptionType

Chrome 125 e versioni successive .

Il tipo di dati di un'opzione.

Enum

"UNKNOWN"
Il tipo di dati dell'opzione è sconosciuto. La proprietà value non verrà impostata.

"BOOL"
La proprietà value sarà uno di truefalso.

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

"FISSO"
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 richieda 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 qualsiasi 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 comporta invece un effetto collaterale specifico dell'opzione nel driver dello scanner. Ad esempio, un'opzione di tipo pulsante potrebbe essere utilizzata dal driver di uno scanner per fornire un mezzo per selezionare valori predefiniti o per dire a un alimentatore automatico di documenti di avanzare al foglio di carta successivo.

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

OptionUnit

Chrome 125 e versioni successive .

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 viene 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 la luminosità.

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

ReadScanDataResponse

Chrome 125 e versioni successive .

Proprietà

  • dati

    ArrayBuffer facoltativo

    Se result è SUCCESS, contiene il prossimo blocco di dati dell'immagine scansionati. Se result è EOF, contiene l'ultimo blocco di dati dell'immagine scansionati.

  • estimatedCompletion

    numero facoltativo

    Se result è SUCCESS, una stima di quanti dati di scansione totali sono stati 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 a lunghezza zero) di dati immagine pronti per la lettura. Se il valore è EOF, data contiene l'ultimo blocco di dati immagine.

ScannerInfo

Chrome 125 e versioni successive .

Proprietà

  • connectionType

    Indica come lo scanner è collegato al computer.

  • deviceUuid

    stringa

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

  • imageFormats

    stringa[]

    Un array di tipi MIME che possono essere richiesti per le scansioni restituite.

  • produttore

    stringa

    Il produttore dello scanner.

  • modello

    stringa

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

  • nome

    stringa

    Un nome leggibile per lo scanner da visualizzare nell'interfaccia utente.

  • protocolType

    stringa

    Una descrizione leggibile del protocollo o del driver utilizzato per accedere allo scanner, ad esempio Mopria, WSD o epsond. Ciò è utile principalmente per consentire a un utente di scegliere tra i protocolli se un dispositivo supporta più protocolli.

  • scannerId

    stringa

    L'ID di uno scanner specifico.

  • sicuro

    booleano

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

ScannerOption

Chrome 125 e versioni successive .

Proprietà

  • Configurabilità

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

  • vincolo

    OptionConstraint facoltativo

    Definisce OptionConstraint nell'opzione di scansione attuale.

  • descrizione

    stringa

    Una descrizione più lunga dell'opzione.

  • isActive

    booleano

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

  • isAdvanced

    booleano

    Indica che l'interfaccia utente non dovrebbe visualizzare questa opzione per impostazione predefinita.

  • isAutoSettable

    booleano

    Può essere impostato automaticamente dal driver dello scanner.

  • isDetectable

    booleano

    Indica che questa opzione può essere rilevata dal software.

  • isEmulated

    booleano

    Emulato dal driver dello scanner, se vero.

  • nome

    stringa

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

  • titolo

    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 | numero | boolean | numero[] facoltativo

    Il valore corrente 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 immagine dati in un formato che può essere passato come "src" a un tag immagine.

  • mimeType

    stringa

    Il tipo MIME di dataUrls.

SetOptionResult

Chrome 125 e versioni successive .

Proprietà

  • nome

    stringa

    Indica il nome dell'opzione impostata.

  • risultato

    Indica il risultato dell'impostazione dell'opzione.

SetOptionsResponse

Chrome 125 e versioni successive .

Proprietà

  • opzioni

    oggetto facoltativo

    Una mappatura chiave-valore aggiornata dai nomi delle opzioni ai valori ScannerOption contenenti la nuova configurazione dopo aver tentato 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 non verrà impostata se il recupero della configurazione aggiornata non riesce (ad esempio, se lo scanner viene disconnesso durante la scansione).

  • risultati

    Un array di risultati, uno per ogni OptionSetting trasmesso.

  • scannerHandle

    stringa

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

StartScanOptions

Chrome 125 e versioni successive .

Proprietà

  • dell'annuncio

    stringa

    Specifica il tipo MIME in cui restituire i dati analizzati.

  • maxReadSize

    numero facoltativo

    Se viene specificato un valore diverso da zero, limita il numero massimo di byte analizzati restituiti in una singola risposta di readScanData a quel valore. Il valore minimo consentito è 32768 (32 kB). Se questa proprietà non viene specificata, la dimensione di un blocco restituito può essere grande quanto l'intera immagine scansionata.

StartScanResponse

Chrome 125 e versioni successive .

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 è SUCCESS, la proprietà job verrà compilata.

  • scannerHandle

    stringa

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

Metodi

cancelScan()

Promesso Chrome 125 e versioni successive
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Annulla una scansione avviata e restituisce una promessa che si risolve con un oggetto CancelScanResponse. Se viene utilizzato 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

Resi

  • Promise&lt;CancelScanResponse&gt;

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

closeScanner()

Promesso Chrome 125 e versioni successive
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 viene utilizzato un callback, l'oggetto viene passato all'oggetto. Anche se la risposta non va a buon fine, l'handle fornito non è più valido e non deve essere utilizzato per ulteriori operazioni.

Parametri

  • scannerHandle

    stringa

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

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: CloseScannerResponse) => void

Resi

  • Promise&lt;CloseScannerResponse&gt;

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

getOptionGroups()

Promesso Chrome 125 e versioni successive
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 a questa funzione viene passato un callback, vengono invece passati a questa funzione i dati restituiti.

Parametri

Resi

  • Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

getScannerList()

Promesso Chrome 125 e versioni successive
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

Parametri

Resi

  • Promise&lt;GetScannerListResponse&gt;

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

openScanner()

Promesso Chrome 125 e versioni successive
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

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

Parametri

  • scannerId

    stringa

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

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: OpenScannerResponse) => void

Resi

  • Promise&lt;OpenScannerResponse&gt;

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

readScanData()

Promesso Chrome 125 e versioni successive
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

**Nota:**il risultato di una risposta è SUCCESS con un membro data di lunghezza pari a zero. Ciò significa che lo scanner funziona ancora, ma non sono ancora disponibili altri dati. Il chiamante dovrebbe attendere un po' di tempo e riprovare.

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

Parametri

Resi

  • Promise&lt;ReadScanDataResponse&gt;

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

scan()

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

Esegue una scansione di un documento e restituisce una promessa che si risolve con un oggetto ScanResults. Se a questa funzione viene passato un callback, vengono invece passati i dati restituiti.

Parametri

  • opzioni

    Un oggetto contenente i parametri di scansione.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: ScanResults) => void

Resi

  • Promise&lt;ScanResults&gt;

    Chrome 96 e versioni successive .

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

setOptions()

Promesso Chrome 125 e versioni successive
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

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

Parametri

  • scannerHandle

    stringa

    La maniglia dello scanner su cui impostare le opzioni. Deve essere un valore restituito in precedenza da una chiamata a openScanner.

  • opzioni

    Un elenco di OptionSetting oggetti da applicare allo scanner.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: SetOptionsResponse) => void

Resi

  • Promise&lt;SetOptionsResponse&gt;

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.

startScan()

Promesso Chrome 125 e versioni successive
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Avvia una scansione sullo scanner specificato e restituisce una promessa che si risolve con StartScanResponse. Se viene utilizzato un callback, l'oggetto viene passato all'oggetto. Se la chiamata ha avuto esito positivo, la risposta include un handle di 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.

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

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (response: StartScanResponse) => void

Resi

  • Promise&lt;StartScanResponse&gt;

    Le promesse sono supportate in Manifest V3 e versioni successive, ma sono disponibili callback per la compatibilità con le versioni precedenti. Non puoi utilizzare entrambi nella stessa chiamata di funzione. La si risolve con lo stesso tipo passato al callback.