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à
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
Chiama il numero
getScannerList()
. Gli scanner disponibili sono restituito in una promessa che si risolve con unGetScannerListResponse
- 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.
- L'oggetto risposta contiene un array di
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
Chiama
openScanner()
, trasmettendo l'ID scanner salvato. Restituisce una promessa che si risolve conOpenScannerResponse
. 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.
(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.
Costruire un array di oggetti
OptionSetting
utilizzando di pubblicità programmatica o forniti dall'utente. Per ulteriori informazioni, vedi Imposta le opzioni dello scanner informazioni.Passa l'array di
OptionSetting
oggetti asetOptions()
per impostare le opzioni per lo scanner. it restituisce una promessa che si risolve conSetOptionsResponse
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
Crea un oggetto
StartScanOptions
e passalo astartScan()
. Restituisce una promessa che si risolve con unaStartScanResponse
. La sua proprietàjob
è un handle da utilizzare per leggere i dati della scansione o annullarla.Passa l'handle del job a
readScanData()
. Restituisce un valore Promessa che si risolve con unReadScanDataResponse
. Se i dati sono stati letti correttamente, la relativa proprietàresult
è uguale aSUCCESS
e alla relativa proprietàdata
contiene unArrayBuffer
con parte della scansione. Tieni presente cheestimatedCompletion
contiene una stima percentuale dei dati totali pubblicati fino a quel momento.Ripeti il passaggio precedente fino a quando la proprietà
result
non corrisponde aEOF
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
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
oOperationResult.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
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
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
Indica come lo scanner è collegato al computer.
Enum
"NON SPECIFICATO"
"USB"
"RETE"
ConstraintType
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
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
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
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
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 diScannerOption
. -
risultato
Il risultato dell'apertura dello scanner. Se il valore è
SUCCESS
, verranno compilate le proprietàscannerHandle
eoptions
. -
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
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
Proprietà
-
list
string[] | numero[] facoltativo
-
max
numero facoltativo
-
min
numero facoltativo
-
quanti
numero facoltativo
-
tipo
OptionGroup
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
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 pervalue
deve corrispondere atype
.
OptionType
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 true
falso.
"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.
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
Proprietà
-
dati
ArrayBuffer facoltativo
Se
result
èSUCCESS
, contiene il prossimo blocco di dati dell'immagine scansionati. Seresult
è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
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
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
Proprietà
-
nome
stringa
Indica il nome dell'opzione impostata.
-
risultato
Indica il risultato dell'impostazione dell'opzione.
SetOptionsResponse
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
inOpenScannerResponse
.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
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
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()
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
-
risposta
-
Resi
-
Promise<CancelScanResponse>
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()
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
-
risposta
-
Resi
-
Promise<CloseScannerResponse>
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()
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
-
scannerHandle
stringa
Il punto di manipolazione di uno scanner aperto restituito da una chiamata a
openScanner
. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: GetOptionGroupsResponse) => void
-
risposta
-
Resi
-
Promise<GetOptionGroupsResponse>
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()
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
-
filtro
Un elemento
DeviceFilter
che indica quali tipi di scanner devono essere restituiti. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: GetScannerListResponse) => void
-
risposta
-
Resi
-
Promise<GetScannerListResponse>
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()
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
-
risposta
-
Resi
-
Promise<OpenScannerResponse>
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()
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
-
job
stringa
Handle del job attivo restituito in precedenza da
startScan
. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: ReadScanDataResponse) => void
-
risposta
-
Resi
-
Promise<ReadScanDataResponse>
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()
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
-
risultato
-
Resi
-
Promise<ScanResults>
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()
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
-
risposta
-
Resi
-
Promise<SetOptionsResponse>
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()
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
. -
opzioni
Un oggetto
StartScanOptions
che indica le opzioni da utilizzare per la scansione. La proprietàStartScanOptions.format
deve corrispondere a una delle voci restituite nel valoreScannerInfo
dello scanner. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: StartScanResponse) => void
-
risposta
-
Resi
-
Promise<StartScanResponse>
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.