Descrizione
Utilizza l'API chrome.documentScan
per rilevare e recuperare le immagini dagli scanner per documenti collegati.
L'API Document Scan è progettata per consentire ad app ed estensioni di visualizzare i contenuti dei documenti cartacei su uno scanner per documenti collegato.
Autorizzazioni
documentScan
Disponibilità
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ù complessi richiedono una combinazione di metodi, supportati solo in Chrome 124 e versioni successive.
Scansione semplice
Per casi d'uso semplici, ovvero quelli che possono funzionare con qualsiasi scanner e non richiedono il controllo della configurazione, chiama scan()
. Questo metodo prende un oggetto ScanOptions
e restituisce una promessa che si risolve con un oggetto ScanResults
. Le funzionalità di questa opzione sono limitate al numero di scansioni e ai tipi MIME accettati dall'utente che chiama. 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 panoramica non descrive tutti gli argomenti del metodo o tutte le proprietà restituite in una risposta. Ha lo scopo di fornirti solo una guida generale per scrivere il codice dello scanner.
Discovery
Chiama il numero
getScannerList()
. Gli scanner disponibili vengono restituito in una promessa che si risolve con unGetScannerListResponse
.- L'oggetto di risposta contiene un array di oggetti
ScannerInfo
. - L'array può contenere più voci per un singolo scanner se quest'ultimo supporta più protocolli o metodi di connessione.
- L'oggetto di risposta contiene un array di oggetti
Seleziona uno scanner dall'array restituito e salva il valore della sua proprietà
scannerId
.Utilizza le proprietà dei singoli oggetti
ScannerInfo
per distinguere 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 dello scanner
Chiama
openScanner()
, passando l'ID dello scanner salvato. Restituisce una promessa che si risolve con unOpenScannerResponse
. L'oggetto di risposta contiene:Una proprietà
scannerHandle
, che dovrai salvare.Una proprietà options contenente proprietà specifiche dello scanner, che dovrai impostare. Per ulteriori informazioni, consulta Recupera le opzioni dello scanner.
(Facoltativo) Se vuoi che l'utente fornisca valori per le opzioni dello scanner, costruisci un'interfaccia utente. Avrai bisogno delle opzioni dello scanner fornite dal passaggio precedente e dovrai recuperare i gruppi di opzioni forniti dall'scanner. Per ulteriori informazioni, consulta Creare un'interfaccia utente.
Costruisci un array di oggetti
OptionSetting
utilizzando valori programmatici o forniti dall'utente. Per ulteriori informazioni, consulta Impostare le opzioni dello scanner.Passa l'array di oggetti
OptionSetting
asetOptions()
per impostare le opzioni per lo scanner. Rimanda una promessa che si risolve con unSetOptionsResponse
. 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 opzione, potrebbe essere necessario ripetere questi passaggi più volte.
Analisi in corso
Costruisci un oggetto
StartScanOptions
e passalo astartScan()
. Restituisce una promessa che si risolve con unStartScanResponse
. La relativa proprietàjob
è un handle che utilizzerai per leggere i dati della scansione o annullarla.Passa l'handle del job a
readScanData()
. Restituisce una promessa che si risolve con un oggettoReadScanDataResponse
. Se i dati sono stati letti correttamente, la proprietàresult
è uguale aSUCCESS
e la proprietàdata
contiene unArrayBuffer
con parte della scansione. Tieni presente cheestimatedCompletion
contiene una percentuale stimata del totale dei dati inviati finora.Ripeti il passaggio precedente finché la proprietà
result
non è uguale aEOF
o a un errore.
Al termine 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,
la scansione verrà interrotta.
Oggetti di risposta
Tutti i metodi restituiscono una promessa che si risolve con un oggetto di risposta di qualche tipo.
La maggior parte di questi contiene una proprietà result
il cui valore è un membro di
OperationResult
. Alcune proprietà degli oggetti di risposta
non conterranno valori, a meno che il valore di result
non abbia un valore specifico. Questi
relazioni sono descritte nella documentazione di riferimento di ogni oggetto di risposta.
Ad esempio, OpenScannerResponse.scannerHandle
avrà un valore solo quando
OpenScannerResponse.result
è uguale a SUCCESS
.
Opzioni dello scanner
Le opzioni dello scanner variano notevolmente in base al dispositivo. Di conseguenza, non è possibile riflettere le opzioni dello 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 dello scanner. Ogni opzione è una mappatura chiave-valore
dove la chiave è un'opzione specifica del dispositivo e il valore è un'istanza di
ScannerOption
.
La struttura è generalmente la seguente:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Ad esempio, immagina uno scanner che restituisce opzioni denominate "source" e "resolution". La struttura dell'oggetto options
restituito sarà simile all'esempio riportato di seguito. Per semplicità, vengono mostrate solo risposte ScannerOption
parziali.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Crea un'interfaccia utente
Sebbene non sia obbligatorio per utilizzare questa API, potresti volere che un utente scelga il valore per una determinata opzione. Questa operazione richiede un'interfaccia utente. Utilizza il pulsante OpenScannerResponse
(aperto da openScanner()
) per recuperare le opzioni dello scanner collegato come descritto nella sezione precedente.
Alcuni scanner raggruppano le opzioni in modi specifici per il dispositivo. Non influiscono sul comportamento
delle opzioni, ma poiché questi gruppi potrebbero essere menzionati nella documentazione
del prodotto di uno scanner, devono essere mostrati all'utente. Puoi recuperare questi gruppi chiamando getOptionGroups()
. Viene restituita una promessa che si risolve con un oggetto GetOptionGroupsResponse
. La relativa proprietà groups
contiene un array di gruppi specifico per lo scanner. Utilizza le informazioni di questi gruppi per organizzare le opzioni da visualizzare in OpenScannerResponse
.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Come indicato nella sezione Configurazione dello scanner, la modifica di un'opzione può alterare i vincoli di un'altra opzione. Ecco perché
setOptionsResponse
(l'oggetto di risposta per
setOptions()
) contiene un'altra proprietà options
. Utilizza
questo parametro per aggiornare l'interfaccia utente. Ripeti l'operazione in base alle necessità fino a quando non sono impostate tutte le opzioni.
Impostare le opzioni dello scanner
Imposta le opzioni dello scanner passando un array di oggetti
OptionSetting
a
setOptions()
. Per un esempio, consulta la sezione Scansionare una pagina in formato A4 di seguito.
Esempi
Recuperare una pagina come blob
Questo esempio mostra un modo per recuperare una pagina dallo scanner come blob e illustra l'utilizzo 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" });
}
Scansiona una pagina in formato lettera
Questo esempio mostra come selezionare uno scanner, impostarne le opzioni e aprirlo. Recupera quindi i contenuti di una singola pagina e chiude lo scanner. Questa procedura illustra l'utilizzo di getScannerList()
, openScanner()
, setOptions()
e closeScanner()
. Tieni presente che i contenuti della pagina vengono recuperati chiamando
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, per mostrare a un utente le opzioni di configurazione di uno scanner è necessario chiamare getOptionGroups()
oltre alle opzioni dello scanner restituite da una chiamata a openScanner()
. In questo modo, le opzioni possono essere mostrate agli utenti in gruppi definiti dal produttore. Questo esempio mostra come fare.
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 job passato a
cancelScan()
. -
risultato
Il risultato dell'annullamento della scansione del backend. Se il risultato è
OperationResult.SUCCESS
oOperationResult.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; l'utente che ha effettuato la chiamata deve attendere un breve periodo di tempo e riprovare a inviare la richiesta. Altri valori del risultato indicano un errore permanente per il quale non è necessario ripetere il tentativo.
CloseScannerResponse
Proprietà
-
risultato
Il risultato della chiusura dello scanner. Anche se questo valore non è
SUCCESS
, l'handle non sarà valido e non deve essere utilizzato per ulteriori operazioni. -
scannerHandle
stringa
Lo stesso handle dello scanner passato a
closeScanner
.
Configurability
In che modo è possibile modificare un'opzione.
Enum
"NOT_CONFIGURABLE"
L'opzione è di sola lettura.
"SOFTWARE_CONFIGURABLE"
L'opzione può essere impostata in software.
"HARDWARE_CONFIGURABLE"
L'opzione può essere impostata dall'utente attivando o premendo un pulsante sullo scanner.
ConnectionType
Indica in che modo lo scanner è collegato al computer.
Enum
"UNSPECIFIED"
"USB"
"NETWORK"
ConstraintType
Il tipo di dati del vincolo rappresentato da un OptionConstraint
.
Enum
"INT_RANGE"
Il vincolo per un intervallo di valori OptionType.INT
. Le proprietà min
, max
e quant
di OptionConstraint
saranno long
e la proprietà list
non verrà impostata.
"FIXED_RANGE"
Il vincolo per un intervallo di valori OptionType.FIXED
. Le proprietà min
, max
e quant
di OptionConstraint
saranno double
e la proprietà list
non sarà impostata.
"INT_LIST"
La limitazione per un elenco specifico di valori OptionType.INT
. La proprietà OptionConstraint.list
conterrà i valori long
e le altre proprietà non verranno impostate.
"FIXED_LIST"
La limitazione a un elenco specifico di valori OptionType.FIXED
. La proprietà OptionConstraint.list
conterrà i valori double
e le altre proprietà non verranno impostate.
"STRING_LIST"
Il vincolo per un elenco specifico di valori OptionType.STRING
. La proprietà OptionConstraint.list
conterrà i valori DOMString
e le altre proprietà non verranno impostate.
DeviceFilter
Proprietà
-
local
booleano facoltativo
Restituire solo gli scanner collegati direttamente al computer.
-
sicuro
booleano facoltativo
Restituire solo gli scanner che utilizzano un trasporto sicuro, ad esempio 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 di this è
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 ciò indica un errore.
-
scanner
Un elenco eventualmente vuoto di scanner corrispondenti a
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 di this è
SUCCESS
, le proprietàscannerHandle
eoptions
verranno completate. -
scannerHandle
stringa facoltativa
Se
result
èSUCCESS
, un handle dello scanner che può essere utilizzato per ulteriori operazioni. -
scannerId
stringa
L'ID scanner passato a
openScanner()
.
OperationResult
Un enum che indica il risultato di ogni operazione.
Enum
"UNKNOWN"
Si è verificato un errore sconosciuto o generico.
"SUCCESS"
L'operazione è riuscita.
"UNSUPPORTED"
L'operazione non è supportata.
"CANCELED"
L'operazione è stata annullata.
"DEVICE_BUSY"
Il dispositivo è occupato.
"INVALID"
I dati o un argomento passato al metodo non sono validi.
"WRONG_TYPE"
Il valore fornito non è del tipo di dati corretto 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"
Il coperchio del piano è aperto.
"IO_ERROR"
Si è verificato un errore durante la comunicazione con il dispositivo.
"ACCESS_DENIED"
Il dispositivo richiede l'autenticazione.
"NO_MEMORY"
Non è disponibile memoria sufficiente su Chromebook per completare l'operazione.
"UNREACHABLE"
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[] | number[] facoltativo
-
max
number facoltativo
-
min
number facoltativo
-
quant
number facoltativo
-
tipo
OptionGroup
Proprietà
-
membri
stringa[]
Un array di nomi di opzioni nell'ordine fornito dal driver.
-
titolo
stringa
Fornisce un titolo stampabile, ad esempio "Opzioni 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
stringa | numero | booleano | numero[] facoltativo
Indica il valore da impostare. Lascia vuoto per richiedere l'impostazione automatica per le opzioni in cui è attivata l'opzione
autoSettable
. Il tipo di dati specificato pervalue
deve corrispondere atype
.
OptionType
Il tipo di dati di un'opzione.
Enum
"UNKNOWN"
Il tipo di dati dell'opzione non è noto. La proprietà value
non verrà impostata.
"BOOL"
La proprietà value
sarà uno dei valori true
false.
"INT"
Un numero intero a 32 bit con segno. La proprietà value
sarà long o long[], a seconda che l'opzione accetti più di un valore.
"FIXED"
Un valore doppio nell'intervallo -32768-32767,9999 con una risoluzione di 1/65535. La proprietà value
sarà double o double[] a seconda che l'opzione accetti più di un valore. I valori doppi che non possono essere rappresentati esattamente verranno arrotondati in base all'intervallo e alla precisione disponibili.
"STRINGA"
Una sequenza di qualsiasi byte tranne NUL ("\0"). La proprietà value
sarà una DOMString.
"BUTTON"
Un'opzione di questo tipo non ha valore. L'impostazione di un'opzione di questo tipo provoca 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 i valori predefiniti o per indicare a un alimentatore automatico di documenti di passare al foglio di carta successivo.
"GRUPPO"
Opzione di raggruppamento. Nessun valore. Questo valore è incluso per motivi di compatibilità, ma in genere non viene restituito nei valori ScannerOption
. Utilizza getOptionGroups()
per recuperare l'elenco dei gruppi con le relative opzioni per i membri.
Enum
"UNITLESS"
Il valore è un numero senza unità di misura. 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 della 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 blocco successivo di dati dell'immagine scansionata. Seresult
èEOF
, contiene l'ultimo frammento di dati dell'immagine scansionata. -
estimatedCompletion
number facoltativo
Se
result
èSUCCESS
, una stima della quantità di dati totali della scansione che sono stati inviati finora, nell'intervallo da 0 a 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 (eventualmente di lunghezza pari a zero) di dati immagine pronti per la lettura. Se il valore èEOF
,data
contiene l'ultimo blocco di dati immagine.
ScannerInfo
Proprietà
-
connectionType
Indica in che modo 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 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 epsonds. Questa opzione è 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 true, il trasporto della connessione dello scanner non può essere intercettato da un ascoltatore passivo, ad esempio TLS o USB.
ScannerOption
Proprietà
-
configurabilità
Indica se e come l'opzione può essere modificata.
-
vincolo
OptionConstraint facoltativo
Definisce
OptionConstraint
per l'opzione di scanner attuale. -
descrizione
stringa
Una descrizione più lunga dell'opzione.
-
isActive
booleano
Indica che l'opzione è attiva e può essere impostata o recuperata. Se è false, la proprietà
value
non verrà impostata. -
isAdvanced
booleano
Indica che l'interfaccia utente non deve mostrare 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 true.
-
nome
stringa
Il nome dell'opzione deve contenere lettere ASCII minuscole, numeri e trattini. I segni diacritici non sono consentiti.
-
titolo
stringa
Un titolo di una riga stampabile.
-
tipo
Il tipo di dati contenuto nella proprietà
value
, necessario per impostare questa opzione. -
unità
L'unità di misura per questa opzione.
-
valore
stringa | numero | booleano | numero[] facoltativo
Il valore corrente dell'opzione, se pertinente. Tieni presente che il tipo di dati di questa proprietà deve corrispondere a quello specificato in
type
.
ScanOptions
Proprietà
-
maxImages
number facoltativo
Il numero di immagini scansionate consentito. Il valore predefinito è 1.
-
mimeTypes
stringa[] 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 del
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
contenente 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 va a buon fine (ad esempio, se lo scanner viene disconnesso durante la scansione).
-
risultati
Un array di risultati, uno per ogni
OptionSetting
passato. -
scannerHandle
stringa
Fornisce l'handle dello scanner passato a
setOptions()
.
StartScanOptions
Proprietà
-
dell'annuncio
stringa
Specifica il tipo MIME in cui restituire i dati sottoposti a scansione.
-
maxReadSize
number facoltativo
Se viene specificato un valore diverso da zero, limita i byte sottoposti a scansione massimi restituiti in una singola risposta
readScanData
a quel valore. Il valore minimo consentito è 32768 (32 KB). Se questa proprietà non viene specificata, le dimensioni di un chunk restituito possono essere uguali a quelle dell'intera immagine scansionata.
StartScanResponse
Proprietà
-
job
stringa facoltativa
Se
result
èSUCCESS
, fornisce un handle che può essere utilizzato per leggere i dati di scansione o annullare il job. -
risultato
Il risultato dell'avvio di una scansione. Se il valore di this è
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 al callback.
Parametri
-
job
stringa
L'handle di un job di scansione attivo restituito in precedenza da una chiamata a
startScan
. -
callback
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta 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 al callback. Anche se la risposta non è positiva, l'handle fornito diventa non 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
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta 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 passati i dati restituiti.
Parametri
-
scannerHandle
stringa
L'handle di uno scanner aperto restituito da una chiamata a
openScanner
. -
callback
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo passato al callback.
getScannerList()
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 a questa funzione viene passato un callback, vengono passati i dati restituiti.
Parametri
-
filtro
Un
DeviceFilter
che indica quali tipi di scanner devono essere restituiti. -
callback
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta 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 passati i dati restituiti.
Parametri
-
scannerId
stringa
L'ID di uno scanner da aprire. Questo valore è quello restituito da una chiamata precedente a
getScannerList
. -
callback
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo passato al callback.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
Legge il successivo blocco di dati di immagini disponibili da un handle job attivo e restituisce una promessa che si risolve con un oggetto ReadScanDataResponse
. Se viene utilizzato un callback, l'oggetto viene passato al callback.
**Nota:**è valido che il risultato di una risposta sia SUCCESS
con un membro data
di lunghezza pari a zero. Ciò significa che lo scanner è ancora in funzione, ma non sono ancora disponibili dati aggiuntivi. L'utente che chiama deve attendere un breve periodo di tempo e riprovare.
Al termine del job di scansione, la risposta avrà il valore del risultato EOF
. Questa risposta può contenere un membro data
finale diverso da zero.
Parametri
-
job
stringa
Handle del job attivo restituito in precedenza da
startScan
. -
callback
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo passato al callback.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Esegue la scansione di un documento e restituisce una promessa che si risolve con un oggetto ScanResults
. Se a questa funzione viene passato un callback, vengono passati i dati restituiti.
Parametri
-
opzioni
Un oggetto contenente i parametri di scansione.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(result: ScanResults) => void
-
risultato
-
Resi
-
Promise<ScanResults>
Chrome 96 e versioni successiveLe promesse sono supportate in Manifest V3 e versioni successive, ma i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta 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 al callback.
Parametri
-
scannerHandle
stringa
L'impugnatura dello scanner su cui impostare le opzioni. Deve essere un valore restituito in precedenza da una chiamata a
openScanner
. -
opzioni
Un elenco di oggetti
OptionSetting
da applicare allo scanner. -
callback
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta 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 un StartScanResponse
. Se viene utilizzato un callback, l'oggetto viene passato al callback. Se la chiamata è andata a buon fine, la risposta include un handle job che può essere utilizzato nelle chiamate successive per leggere i dati della scansione o annullare una scansione.
Parametri
-
scannerHandle
stringa
Il manico 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 inScannerInfo
dello scanner. -
callback
function 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 i callback vengono forniti per la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo passato al callback.