Descrizione
Utilizza l'API chrome.documentScan
per trovare e recuperare le immagini dagli scanner di documenti allegati.
L'API Document Scan è progettata per consentire ad app ed estensioni di visualizzare il contenuto dei documenti cartacei su uno scanner di documenti allegato.
Autorizzazioni
documentScan
Disponibilità
Concetti e utilizzo
Questa API supporta due metodi di scansione dei documenti. Se il tuo caso d'uso può funzionare con qualsiasi scanner e non richiede il controllo della configurazione, utilizza il metodo scan()
. I casi d'uso più complicati richiedono una combinazione di metodi,
supportati solo in Chrome 124 e versioni successive.
Scansione semplice
Per i casi d'uso semplici, ovvero quelli che possono funzionare con qualsiasi scanner e che non richiedono il controllo della configurazione, chiama scan()
. Questo metodo accetta un oggetto ScanOptions
e restituisce un Promise che si risolve con un oggetto ScanResults
. Le funzionalità di questa opzione sono limitate al numero di analisi e ai tipi MIME che saranno accettati dal chiamante. Le analisi vengono restituite come URL per la visualizzazione in un tag <img>
per un'interfaccia utente.
Analisi complessa
Le scansioni complesse vengono eseguite in tre fasi, come descritto in questa sezione. Questo schema non descrive tutti gli argomenti dei metodi o ogni proprietà restituita in una risposta. È destinata solo a fornire una guida generale alla scrittura del codice dello scanner.
Discovery
Chiama il numero
getScannerList()
. Gli scanner disponibili vengono restituiti in una promessa che si risolve con unGetScannerListResponse
.- L'oggetto response contiene un array di oggetti
ScannerInfo
. - L'array può contenere più voci per un singolo scanner se questo supporta più protocolli o metodi di connessione.
- L'oggetto response contiene un array di oggetti
Seleziona uno scanner dall'array restituito e salva il valore della relativa proprietà
scannerId
.Utilizza le proprietà di singoli oggetti
ScannerInfo
per distinguere tra più oggetti per lo stesso scanner. Gli oggetti dello stesso scanner avranno lo stesso valore per la proprietàdeviceUuid
.ScannerInfo
contiene anche una proprietàimageFormats
contenente un array di tipi di immagini supportati.
Configurazione scanner
Chiama il numero
openScanner()
, trasmettendo l'ID scanner salvato. Restituisce una promessa che si risolve con unOpenScannerResponse
. L'oggetto risposta contiene:Una proprietà
scannerHandle
, che dovrai salvare.Una proprietà di opzioni contenente proprietà specifiche dello scanner, che dovrai impostare. Per ulteriori informazioni, vedi Recupero delle opzioni dello scanner.
(Facoltativo) Se vuoi che l'utente fornisca valori per le opzioni dello scanner, crea un'interfaccia utente. Saranno necessarie le opzioni dello scanner fornite nel passaggio precedente e dovrai recuperare i gruppi di opzioni forniti dallo scanner. Per ulteriori informazioni, consulta Creare un'interfaccia utente.
Crea un array di oggetti
OptionSetting
utilizzando i valori programmatici o forniti dall'utente. Per saperne di più, consulta Impostare le opzioni dello scanner.Passa l'array di
OptionSetting
oggetti asetOptions()
per impostare le opzioni per lo scanner. Restituisce 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, può essere necessario ripetere questi passaggi più volte.
Scansione in corso
Costruire un oggetto
StartScanOptions
e passarlo 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 relativa proprietàresult
è uguale aSUCCESS
e la relativa proprietàdata
contiene un elementoArrayBuffer
con parte dell'analisi. Tieni presente cheestimatedCompletion
contiene una percentuale stimata dei dati totali pubblicati finora.Ripeti il passaggio precedente finché la proprietà
result
non corrisponde aEOF
o non si verifica un errore.
Quando viene raggiunta la fine della scansione, chiama
closeScanner()
con l'handle dello scanner salvato nel passaggio
3. Restituisce una promessa che si risolve con un CloseScannerResponse
. Se chiami
cancelScan()
in qualsiasi momento dopo la creazione del job,
l'analisi verrà terminata.
Oggetti risposta
Tutti i metodi restituiscono una promessa che si risolve con un oggetto risposta di qualche tipo.
La maggior parte di questi contiene una proprietà result
il cui valore è un membro di
OperationResult
. Alcune proprietà degli oggetti risposta non conterranno valori, a meno che il valore di result
non abbia un valore specifico. Queste relazioni sono descritte nel riferimento per ciascun oggetto risposta.
Ad esempio, OpenScannerResponse.scannerHandle
avrà un valore solo quando
OpenScannerResponse.result
è uguale a SUCCESS
.
Opzioni scanner
Le opzioni dello scanner variano notevolmente in base al dispositivo. Di conseguenza, non è possibile
riflettere le opzioni di scanner direttamente all'interno dell'API documentScan. Per risolvere
questo problema, OpenScannerResponse
(recuperato utilizzando
openScanner()
) e
SetOptionsResponse
(l'oggetto di risposta per
setOptions()
) contengono una proprietà options
, che è
un oggetto contenente opzioni specifiche per lo scanner. Ogni opzione è una mappatura chiave-valore in cui la chiave è un'opzione specifica per dispositivo e il valore è un'istanza di ScannerOption
.
La struttura generalmente è la seguente:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Ad esempio, immagina uno scanner che restituisca opzioni denominate "origine" e "risoluzione". La struttura dell'oggetto options
restituito sarà simile
all'esempio seguente. Per semplicità, vengono mostrate solo le risposte ScannerOption
parziali.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Creare un'interfaccia utente
Sebbene non sia obbligatorio utilizzare questa API, è consigliabile che un utente scelga il valore per
una determinata opzione. Richiede un'interfaccia utente. Utilizza l'elemento OpenScannerResponse
(aperto da openScanner()
) per recuperare le opzioni per lo scanner collegato come descritto nella sezione precedente.
Alcuni scanner raggruppano le opzioni in base al dispositivo. Non influiscono sui comportamenti delle opzioni, ma poiché questi gruppi potrebbero essere menzionati nella documentazione del prodotto di uno scanner, dovrebbero essere mostrati all'utente. Puoi recuperare questi gruppi chiamando getOptionGroups()
. Questo restituisce una promessa che si risolve con un oggetto GetOptionGroupsResponse
. La sua proprietà groups
contiene un array di gruppi specifico per lo scanner. Utilizza le informazioni in questi gruppi per organizzare le opzioni nella OpenScannerResponse
da visualizzare.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Come indicato in Configurazione scanner, la modifica di un'opzione può alterare i vincoli rispetto a un'altra. Questo è il motivo per cui setOptionsResponse
(l'oggetto di risposta per setOptions()
) contiene un'altra proprietà options
. Utilizza questa opzione per aggiornare l'interfaccia utente. Poi ripeti questa operazione fino a quando
non sono state impostate tutte le opzioni.
Imposta opzioni scanner
Imposta le opzioni dello scanner passando un array di oggetti OptionSetting
a setOptions()
. Per un esempio, consulta la seguente sezione Scansiona una pagina in formato lettera.
Esempi
Recupera una pagina come blob
Questo esempio mostra un modo per recuperare una pagina dallo scanner sotto forma di blob e mostra l'utilizzo di startScan()
e readScanData()
usando il valore OperationResult
.
async function pageAsBlob(handle) {
let response = await chrome.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != chrome.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await chrome.documentScan.readScanData(job);
while (response.result == chrome.documentScan.OperationResult.SUCCESS) {
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
} else {
// Delay so hardware can make progress.
await new Promise(r => setTimeout(r, 100));
}
response = await chrome.documentScan.readScanData(job);
}
if (response.result != chrome.documentScan.OperationResult.EOF) {
return null;
}
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
}
return new Blob(imgParts, { type: "image/jpeg" });
}
Scansiona una pagina in formato lettera
Questo esempio mostra come selezionare uno scanner, impostarne le opzioni e aprirlo. Quindi, recupera i contenuti di una singola pagina e chiude lo scanner. Questo processo dimostra l'utilizzo di getScannerList()
, openScanner()
, setOptions()
e closeScanner()
. Tieni presente che i contenuti della pagina vengono recuperati chiamando la funzione pageAsBlob()
dall'esempio precedente.
async function scan() {
let response = await chrome.documentScan.getScannerList({ secure: true });
let scanner = await chrome.documentScan.openScanner(
response.scanners[0].scannerId);
const handle = scanner.scannerHandle;
let options = [];
for (source of scanner.options["source"].constraint.list) {
if (source.includes("ADF")) {
options.push({
name: "source",
type: chrome.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: chrome.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: chrome.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: chrome.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: chrome.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await chrome.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await chrome.documentScan.closeScanner(handle);
}
Mostra la configurazione
Come indicato altrove, per mostrare a un utente le opzioni di configurazione di uno scanner
devi chiamare getOptionGroups()
in aggiunta alle opzioni di scansione restituite da una
chiamata a openScanner()
. In questo modo, le opzioni possono essere mostrate
agli utenti nei gruppi definiti dal produttore. Questo esempio mostra come eseguire questa operazione.
async function showConfig() {
let response = await chrome.documentScan.getScannerList({ secure: true });
let scanner = await chrome.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await chrome.documentScan.getOptionGroups(scanner.scannerHandle);
for (const group of groups.groups) {
console.log("=== " + group.title + " ===");
for (const member of group.members) {
const option = scanner.options[member];
if (option.isActive) {
console.log(" " + option.name + " = " + option.value);
} else {
console.log(" " + option.name + " is inactive");
}
}
}
}
Tipi
CancelScanResponse
Proprietà
-
job
stringa
Fornisce lo stesso handle del job che è stato passato a
cancelScan()
. -
risultato
Il risultato della scansione del backend. Se il risultato è
OperationResult.SUCCESS
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; il chiamante dovrebbe attendere qualche istante e riprovare a eseguire la richiesta. Altri valori dei risultati indicano un errore permanente che non deve essere riprovato.
CloseScannerResponse
Proprietà
-
risultato
Il risultato della chiusura dello scanner. Anche se questo valore non è
SUCCESS
, l'handle non sarà valido e non dovrà essere utilizzato per ulteriori operazioni. -
scannerHandle
stringa
Lo stesso handle dello scanner che è stato passato a
closeScanner
.
Configurability
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 il modo in cui lo scanner è collegato al computer.
Enum
"USB"
ConstraintType
Il tipo di dati del vincolo rappresentato da un OptionConstraint
.
Enum
"INT_RANGE"
Il vincolo su un intervallo di OptionType.INT
valori. Le proprietà min
, max
e quant
di OptionConstraint
saranno long
e la sua proprietà list
verrà annullata.
"FIXED_RANGE"
Il vincolo su un intervallo di OptionType.FIXED
valori. Le proprietà min
, max
e quant
di OptionConstraint
saranno double
e la relativa proprietà list
verrà annullata.
"INT_LIST"
Il vincolo su un elenco specifico di OptionType.INT
valori. La proprietà OptionConstraint.list
conterrà valori long
e le altre proprietà verranno disattivate.
"FIXED_LIST"
Il vincolo su un elenco specifico di OptionType.FIXED
valori. La proprietà OptionConstraint.list
conterrà valori double
e le altre proprietà verranno disattivate.
"STRING_LIST"
Il vincolo su un elenco specifico di OptionType.STRING
valori. La proprietà OptionConstraint.list
conterrà valori DOMString
e le altre proprietà verranno disattivate.
DeviceFilter
Proprietà
-
local
booleano facoltativo
Restituisci solo gli scanner collegati direttamente al computer.
-
sicuro
booleano facoltativo
Restituisci solo gli scanner che utilizzano un trasporto sicuro, come USB o TLS.
GetOptionGroupsResponse
Proprietà
-
gruppi
OptionGroup[] facoltativo
Se
result
èSUCCESS
, fornisce un elenco di gruppi di opzioni nell'ordine indicato dal driver dello scanner. -
risultato
Il risultato ottenuto dai gruppi di opzioni. Se il valore di questo è
SUCCESS
, la proprietàgroups
verrà compilata. -
scannerHandle
stringa
Lo stesso handle dello scanner che è stato passato a
getOptionGroups
.
GetScannerListResponse
Proprietà
-
risultato
Il risultato dell'enumerazione. Tieni presente che potrebbero essere restituiti risultati parziali anche se questo indica un errore.
-
scanner
Un elenco potenzialmente vuoto di scanner corrispondenti al valore
DeviceFilter
fornito.
OpenScannerResponse
Proprietà
-
opzioni del modello.
oggetto facoltativo
Se
result
èSUCCESS
, fornisce una mappatura chiave-valore in cui la chiave è un'opzione specifica per il dispositivo e il valore è un'istanza diScannerOption
. -
risultato
Il risultato dell'apertura dello scanner. Se il valore di questo parametro è
SUCCESS
, verranno compilate le proprietàscannerHandle
eoptions
. -
scannerHandle
stringa facoltativo
Se
result
èSUCCESS
, un handle dello scanner che può essere utilizzato per ulteriori operazioni. -
scannerId
stringa
L'ID scanner passato a
openScanner()
.
OperationResult
Un'enumerazione che indica il risultato di ogni operazione.
Enum
"UNKNOWN"
Si è verificato un errore sconosciuto o generico.
"SUCCESS"
L'operazione è riuscita.
"NON SUPPORTATO"
L'operazione non è supportata.
"ANNULLATO"
L'operazione è stata annullata.
"DEVICE_BUSY"
Il dispositivo è occupato.
"NON VALIDO"
I dati o un argomento passato al metodo non sono validi.
"WRONG_TYPE"
Il valore fornito è il tipo di dati errato per l'opzione sottostante.
"EOF"
Non sono disponibili altri dati.
"ADF_JAMMED"
L'alimentatore di documenti è inceppato.
"ADF_EMPTY"
L'alimentatore di documenti è vuoto.
"COVER_OPEN"
La copertura del piano letto è aperta.
"IO_ERROR"
Si è verificato un errore durante la comunicazione con il dispositivo.
"ACCESS_DENIED"
Il dispositivo richiede l'autenticazione.
"NO_MEMORY"
La memoria disponibile su Chromebook non è sufficiente per completare l'operazione.
"NON RAGGIUNGIBILE"
Il dispositivo non è raggiungibile.
"MISSING"
Il dispositivo è disconnesso.
"INTERNAL_ERROR"
Si è verificato un errore in un luogo diverso dall'applicazione chiamante.
OptionConstraint
Proprietà
-
list
string[] | number[] facoltativo
-
max
numero facoltativo
-
min
numero facoltativo
-
quantitativo
numero facoltativo
-
Tipo
OptionGroup
Proprietà
-
membri
stringa[]
Un array di nomi delle opzioni nell'ordine fornito dal conducente.
-
title
stringa
Fornisce un titolo stampabile, ad esempio "Opzioni geometria".
OptionSetting
Proprietà
-
nome
stringa
Indica il nome dell'opzione da impostare.
-
Tipo
Indica il tipo di dati dell'opzione. Il tipo di dati richiesto deve corrispondere al tipo di dati reali dell'opzione sottostante.
-
valore
stringa | numero | booleano | numero[] facoltativo
Indica il valore da impostare. Non impostare l'opzione per richiedere l'impostazione automatica delle opzioni che hanno
autoSettable
abilitato. Il tipo di dati specificato pervalue
deve corrispondere atype
.
OptionType
Il tipo di dati di un'opzione.
Enum
"UNKNOWN"
Il tipo di dati dell'opzione è sconosciuto. L'impostazione della proprietà value
verrà annullata.
"BOOL"
La proprietà value
sarà una delle true
false.
"INT"
Un numero intero a 32 bit firmato. La proprietà value
sarà lunga o lunga[], a seconda che l'opzione accetti più di un valore.
"FIXED"
Un doppio nell'intervallo -32768-32767,9999 con una risoluzione di 1/65535. La proprietà value
sarà doppia o doppia[] a seconda che l'opzione accetti più di un valore. I valori doppi che non possono essere rappresentati esattamente verranno arrotondati all'intervallo e alla precisione disponibili.
"STRING"
Una sequenza di byte, tranne NUL ("\0"). La proprietà value
sarà una DOMString.
"BUTTON"
Un'opzione di questo tipo non ha valori. L'impostazione di un'opzione di questo tipo causa invece un effetto collaterale specifico dell'opzione nel driver dello scanner. Ad esempio, un driver di scanner potrebbe utilizzare un'opzione di tipo pulsante per fornire un mezzo per selezionare valori predefiniti o per indicare a un alimentatore di documenti automatico di passare al foglio di carta successivo.
"GROUP"
Opzione di raggruppamento. Nessun valore. Questo valore è incluso per la compatibilità, ma di solito non viene restituito nei valori ScannerOption
. Utilizza getOptionGroups()
per recuperare l'elenco dei gruppi con le relative opzioni per i membri.
Enum
"UNITLESS"
Il valore è un numero senza unità. Ad esempio, può essere una soglia.
"PIXEL"
Il valore è un numero di pixel, ad esempio le dimensioni di scansione.
"BIT"
Il valore è il numero di bit, ad esempio la profondità di colore.
"MM"
Il valore è misurato in millimetri, ad esempio le dimensioni di scansione.
"DPI"
Il valore viene misurato in punti per pollice, ad esempio la risoluzione.
"PERCENT"
Il valore è una percentuale, ad esempio luminosità.
"MICROSECOND"
Il valore viene misurato in microsecondi, ad esempio il tempo di esposizione.
ReadScanDataResponse
Proprietà
-
dati
ArrayBuffer facoltativo
Se
result
èSUCCESS
, contiene il blocco successivo di dati dell'immagine scansionata. Seresult
èEOF
, contiene l'ultimo blocco di dati di immagini scansionate. -
estimatedCompletion
numero facoltativo
Se
result
èSUCCESS
, una stima della quantità di dati di scansione totali inviati finora, compreso tra 0 e 100. -
job
stringa
Fornisce l'handle del job passato a
readScanData()
. -
risultato
Il risultato della lettura dei dati. Se il valore è
SUCCESS
,data
contiene il blocco successivo (possibilmente di lunghezza pari a zero) di dati dell'immagine pronto per la lettura. Se il valore èEOF
,data
contiene l'ultimo blocco di dati immagine.
ScannerInfo
Proprietà
-
connectionType
Indica il modo in cui lo scanner è collegato al computer.
-
deviceUuid
stringa
Per la corrispondenza con altre voci
ScannerInfo
che rimandano allo stesso dispositivo fisico. -
imageFormats
stringa[]
Un array di tipi MIME che è possibile richiedere per le analisi restituite.
-
produttore
stringa
Il produttore dello scanner.
-
model
stringa
Il modello di scanner, se disponibile, o una descrizione generica.
-
nome
stringa
Un nome leggibile che lo scanner verrà visualizzato nell'interfaccia utente.
-
protocolType
stringa
Una descrizione leggibile del protocollo o del driver utilizzato per accedere allo scanner, ad esempio Mopria, WSD o epsonds. Questa funzionalità è utile soprattutto per consentire a un utente di scegliere tra diversi protocolli se un dispositivo ne supporta più di uno.
-
scannerId
stringa
L'ID di uno scanner specifico.
-
sicuro
boolean
Se il valore è true, il trasporto della connessione dello scanner non può essere intercettato da un listener passivo, come TLS o USB.
ScannerOption
Proprietà
-
configurabilità
Indica se e come l'opzione può essere modificata.
-
vincolo
OptionConstraint facoltativo
Definisce
OptionConstraint
sull'opzione di scansione corrente. -
descrizione
stringa
Una descrizione più lunga dell'opzione.
-
isActive
boolean
Indica che l'opzione è attiva e può essere impostata o recuperata. Se il valore è false, la proprietà
value
non verrà impostata. -
isAdvanced
boolean
Indica che nell'interfaccia utente non dovrebbe essere visualizzata questa opzione per impostazione predefinita.
-
isAutoSettable
boolean
Può essere impostato automaticamente dal driver dello scanner.
-
isDetectable
boolean
Indica che questa opzione può essere rilevata dal software.
-
isEmulated
boolean
Emulato dal driver dello scanner, se vero.
-
nome
stringa
Il nome dell'opzione che utilizza lettere ASCII minuscole, numeri e trattini. I segni diacritici non sono consentiti.
-
title
stringa
Un titolo stampabile di una riga.
-
Tipo
Il tipo di dati contenuto nella proprietà
value
, necessario per impostare questa opzione. -
unità
L'unità di misura per questa opzione.
-
valore
stringa | numero | booleano | numero[] facoltativo
Il valore attuale dell'opzione, se pertinente. Tieni presente che il tipo di dati di questa proprietà deve corrispondere al tipo di dati specificato in
type
.
ScanOptions
Proprietà
-
maxImages
numero facoltativo
Il numero consentito di immagini scansionate. Il valore predefinito è 1.
-
mimeTypes
string[] facoltativo
I tipi MIME accettati dal chiamante.
ScanResults
Proprietà
-
dataUrls
stringa[]
Un array di URL di immagini di dati in un formato che può essere passato come valore "src" a un tag immagine.
-
mimeType
stringa
Il tipo MIME di
dataUrls
.
SetOptionResult
Proprietà
-
nome
stringa
Indica il nome dell'opzione impostata.
-
risultato
Indica il risultato dell'impostazione dell'opzione.
SetOptionsResponse
Proprietà
-
opzioni del modello.
oggetto facoltativo
Una mappatura chiave-valore aggiornata dai nomi delle opzioni ai valori
ScannerOption
contenenti la nuova configurazione dopo il tentativo di impostare tutte le opzioni fornite. Ha la stessa struttura della proprietàoptions
inOpenScannerResponse
.Questa proprietà verrà impostata anche se alcune opzioni non sono state impostate correttamente, ma verrà annullata se il recupero della configurazione aggiornata non riesce (ad esempio, se lo scanner è disconnesso durante la scansione).
-
risultati
Un array di risultati, uno ciascuno per ogni
OptionSetting
trasmesso. -
scannerHandle
stringa
Fornisce l'handle dello scanner passato a
setOptions()
.
StartScanOptions
Proprietà
-
dell'annuncio
stringa
Specifica il tipo MIME in cui restituire i dati scansionati.
-
maxReadSize
numero facoltativo
Se viene specificato un valore diverso da zero, limita il numero massimo di byte analizzati restituiti in una singola risposta
readScanData
a quel valore. Il valore minimo consentito è 32768 (32 kB). Se questa proprietà non è specificata, le dimensioni di un blocco restituito potrebbero corrispondere alle dimensioni dell'intera immagine scansionata.
StartScanResponse
Proprietà
-
job
stringa facoltativo
Se
result
èSUCCESS
, fornisce un handle che può essere utilizzato per leggere i dati della scansione o annullare il job. -
risultato
Il risultato dell'avvio di una scansione. Se il valore di questo è
SUCCESS
, la proprietàjob
verrà compilata. -
scannerHandle
stringa
Fornisce lo stesso handle dello scanner passato a
startScan()
.
Metodi
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
Annulla una scansione avviata e restituisce una Promise che si risolve con un oggetto CancelScanResponse
. Se si utilizza un callback, l'oggetto viene passato all'oggetto.
Parametri
-
job
stringa
L'handle di un job di scansione attivo restituito in precedenza da una chiamata a
startScan
. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: CancelScanResponse) => void
-
risposta
-
Ritorni
-
Promise<CancelScanResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
Chiude lo scanner con l'handle passato e restituisce una promessa che si risolve con un oggetto CloseScannerResponse
. Se si utilizza un callback, l'oggetto viene passato all'oggetto. Anche se la risposta non ha esito positivo, l'handle fornito non è più valido e non deve essere utilizzato per ulteriori operazioni.
Parametri
-
scannerHandle
stringa
Specifica l'handle di uno scanner aperto precedentemente restituito da una chiamata a
openScanner
. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: CloseScannerResponse) => void
-
risposta
-
Ritorni
-
Promise<CloseScannerResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
Recupera i nomi dei gruppi e le opzioni dei membri da uno scanner aperto in precedenza da openScanner
. Questo metodo restituisce una promessa che si risolve con un oggetto GetOptionGroupsResponse
. Se viene passato un callback a questa funzione, i dati restituiti vengono trasmessi a questa funzione.
Parametri
-
scannerHandle
stringa
L'handle di uno scanner aperto restituito da una chiamata a
openScanner
. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: GetOptionGroupsResponse) => void
-
risposta
-
Ritorni
-
Promise<GetOptionGroupsResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
Recupera l'elenco degli scanner disponibili e restituisce una promessa che si risolve con un oggetto GetScannerListResponse
. Se viene passato un callback a questa funzione, i dati restituiti vengono trasmessi a questa funzione.
Parametri
-
filtra
Un simbolo
DeviceFilter
che indica i tipi di scanner da restituire. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: GetScannerListResponse) => void
-
risposta
-
Ritorni
-
Promise<GetScannerListResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
Apre uno scanner per l'accesso esclusivo e restituisce una Promise che si risolve con un oggetto OpenScannerResponse
. Se viene passato un callback a questa funzione, i dati restituiti vengono trasmessi a questa funzione.
Parametri
-
scannerId
stringa
L'ID di uno scanner da aprire. Questo valore corrisponde a uno restituito da una precedente chiamata a
getScannerList
. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: OpenScannerResponse) => void
-
risposta
-
Ritorni
-
Promise<OpenScannerResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
Legge il blocco successivo di dati di immagine disponibili da un handle di job attivo e restituisce una Promise che si risolve con un oggetto ReadScanDataResponse
. Se si utilizza un callback, l'oggetto viene passato all'oggetto.
**Nota:**è valido per un risultato di risposta SUCCESS
con un membro data
di lunghezza zero. Questo significa che lo scanner funziona ancora, ma non ha ancora dati aggiuntivi a portata di mano. Il chiamante dovrebbe attendere qualche istante e riprovare.
Al termine del job di scansione, la risposta avrà come risultato EOF
. Questa risposta può contenere un membro finale data
diverso da zero.
Parametri
-
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
-
Ritorni
-
Promise<ReadScanDataResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Esegue una scansione del documento e restituisce una promessa che si risolve con un oggetto ScanResults
. Se viene passato un callback a questa funzione, i dati restituiti verranno trasmessi a questa funzione.
Parametri
-
opzioni del modello.
Un oggetto che contiene i parametri di scansione.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(result: ScanResults) => void
-
risultato
-
Ritorni
-
Promise<ScanResults>
Chrome 96 e versioni successiveLe promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
Imposta le opzioni sullo scanner specificato e restituisce una Promise che si risolve con un oggetto SetOptionsResponse
contenente il risultato del tentativo di impostare ogni valore nell'ordine dell'oggetto OptionSetting
passato. Se si utilizza un callback, l'oggetto viene passato all'oggetto.
Parametri
-
scannerHandle
stringa
Il punto di manipolazione dello scanner su cui impostare le opzioni. Deve essere un valore restituito in precedenza da una chiamata a
openScanner
. -
opzioni del modello.
Un elenco di
OptionSetting
oggetti da applicare allo scanner. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: SetOptionsResponse) => void
-
risposta
-
Ritorni
-
Promise<SetOptionsResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
Avvia una scansione sullo scanner specificato e restituisce una promessa che si risolve con un StartScanResponse
. Se si utilizza un callback, l'oggetto viene passato all'oggetto. Se la chiamata ha esito positivo, la risposta include un handle del job che può essere utilizzato nelle chiamate successive per leggere i dati della scansione o annullare una scansione.
Parametri
-
scannerHandle
stringa
La maniglia di uno scanner aperto. Deve essere un valore restituito in precedenza da una chiamata a
openScanner
. -
opzioni del modello.
Un oggetto
StartScanOptions
che indica le opzioni da utilizzare per la scansione. La proprietàStartScanOptions.format
deve corrispondere a una delle voci restituite nelScannerInfo
dello scanner. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(response: StartScanResponse) => void
-
risposta
-
Ritorni
-
Promise<StartScanResponse>
Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.