Opis
Aby wykrywać i pobierać obrazy ze skanerów dokumentów, używaj interfejsu API chrome.documentScan
.
Interfejs DocumentScan API umożliwia aplikacjom i rozszerzeniom wyświetlanie zawartości dokumentów papierowych na podłączonym skanerze dokumentów.
Uprawnienia
documentScan
Dostępność
Pojęcia i zastosowanie
Ten interfejs API obsługuje 2 metody skanowania dokumentów. Jeśli Twoje zastosowanie może działać z dowolnym skanerem i nie wymaga kontroli konfiguracji, użyj metody scan()
. Bardziej skomplikowane przypadki użycia wymagają kombinacji metod, które są obsługiwane tylko w Chrome 124 i nowszych wersjach.
Prosty skan
W przypadku prostych zastosowań, czyli takich, które mogą działać z dowolnym skanerem i nie wymagają kontroli konfiguracji, wywołaj funkcję scan()
. Ta metoda przyjmuje obiekt ScanOptions
i zwraca obietnicę, która zwraca obiekt ScanResults
. Możliwości tej opcji są ograniczone do liczby skanowań i typów MIME akceptowanych przez wywołującego. Skanowanie zwraca adresy URL do wyświetlenia w tagu <img>
w interfejsie użytkownika.
Skanowanie złożone
Złożone skanowania są przeprowadzane w 3 etapach, jak opisano w tej sekcji. Ten zarys nie opisuje wszystkich argumentów metody ani wszystkich właściwości zwracanych w odpowiedzi. Ma on jedynie stanowić ogólny przewodnik po pisaniu kodu skanera.
Odkrywanie treści
Zadzwoń pod numer
getScannerList()
. Dostępne skanery są zwracane w obietnicy, która jest realizowana zGetScannerListResponse
.- Obiekt odpowiedzi zawiera tablicę obiektów
ScannerInfo
. - Tablica może zawierać wiele wpisów dla jednego skanera, jeśli skaner obsługuje wiele protokołów lub metod połączenia.
- Obiekt odpowiedzi zawiera tablicę obiektów
Wybierz skaner z zwróconego tablicę i zapisz wartość jego właściwości
scannerId
.Użyj właściwości poszczególnych obiektów
ScannerInfo
, aby odróżnić liczne obiekty dla tego samego skanera. Obiekty ze współpracującego skanera będą miały tę samą wartość właściwoścideviceUuid
.ScannerInfo
zawiera też właściwośćimageFormats
, która zawiera tablicę obsługiwanych typów obrazów.
Konfiguracja skanera
Wywołaj funkcję
openScanner()
, przekazując zapisany identyfikator skanera. Zwraca obietnicę, która zwraca wartośćOpenScannerResponse
. Obiekt odpowiedzi zawiera:Właściwość
scannerHandle
, którą musisz zapisać.Właściwość opcji zawierająca właściwości związane ze skanerem, które musisz skonfigurować. Więcej informacji znajdziesz w sekcji Opcje wyodrębniania skanera.
(Opcjonalnie) Jeśli chcesz, aby użytkownik podał wartości opcji skanera, utwórz interfejs użytkownika. Potrzebujesz opcji skanera uzyskanych w poprzednim kroku oraz grup opcji uzyskanych przez skaner. Więcej informacji znajdziesz w artykule Tworzenie interfejsu użytkownika.
Tworzenie tablicy obiektów
OptionSetting
za pomocą wartości z automatycznego zakupu reklam lub podanych przez użytkownika. Więcej informacji znajdziesz w artykule Ustawianie opcji skanera.Przekaż tablicę obiektów
OptionSetting
dosetOptions()
, aby ustawić opcje skanera. Zwraca obietnicę, która zwracaSetOptionsResponse
. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.Ponieważ zmiana jednej opcji może zmienić ograniczenia dotyczące innej opcji, może być konieczne powtórzenie tych czynności kilka razy.
Skanowanie
Utwórz obiekt
StartScanOptions
i przenieś go dostartScan()
. Zwraca obietnicę, która zwracaStartScanResponse
. Jego właściwośćjob
to uchwyt, którego użyjesz do odczytania danych skanowania lub anulowania skanowania.Przekaż identyfikator zadania do funkcji
readScanData()
. Zwraca obietnicę, która zwraca obiektReadScanDataResponse
. Jeśli dane zostały odczytane, właściwośćresult
ma wartośćSUCCESS
, a właściwośćdata
zawiera wartośćArrayBuffer
z częścią skanowania. Pamiętaj, żeestimatedCompletion
zawiera szacowany odsetek łącznej liczby danych, które zostały do tej pory dostarczone.Powtarzaj poprzedni krok, aż właściwość
result
będzie równaEOF
lub wystąpi błąd.
Po zakończeniu skanowania wywołaj funkcję closeScanner()
z identyfikatorem skanera zapisanym w kroku 3. Zwraca obietnicę, która zwraca wartość CloseScannerResponse
. Wywołanie funkcji cancelScan()
w dowolnym momencie po utworzeniu zadania kończy skanowanie.
Obiekty odpowiedzi
Wszystkie metody zwracają obietnicę, która zwraca obiekt odpowiedzi.
Większość z nich zawiera właściwość result
, której wartość jest elementem OperationResult
. Niektóre właściwości obiektów odpowiedzi nie będą zawierać wartości, chyba że wartość atrybutu result
będzie określona. Te relacje są opisane w opisie każdego obiektu odpowiedzi.
Na przykład OpenScannerResponse.scannerHandle
będzie mieć wartość tylko wtedy, gdy OpenScannerResponse.result
= SUCCESS
.
Opcje skanera
Opcje skanera różnią się znacznie w zależności od urządzenia. W związku z tym nie można odzwierciedlać opcji skanera bezpośrednio w interfejsie documentScan API. Aby to obejść, obiekt OpenScannerResponse
(pobierany za pomocą obiektu openScanner()
) i SetOptionsResponse
(obiekt odpowiedzi dla setOptions()
) zawierają właściwość options
, która jest obiektem zawierającym opcje związane ze skanerem. Każda opcja to mapowanie klucz-wartość, gdzie kluczem jest opcja specyficzna dla urządzenia, a wartością jest instancja ScannerOption
.
Struktura wygląda mniej więcej tak:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Wyobraź sobie na przykład skaner, który zwraca opcje o nazwach „source” i „resolution”. Struktura zwróconego obiektu options
będzie wyglądać mniej więcej tak: Dla ułatwienia wyświetlane są tylko częściowe odpowiedzi ScannerOption
.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Tworzenie interfejsu użytkownika
Chociaż nie jest to wymagane do korzystania z tego interfejsu API, możesz poprosić użytkownika o wybranie wartości dla danej opcji. Wymaga to interfejsu użytkownika. Użyj okna OpenScannerResponse
(otwartego przez kliknięcie openScanner()
), aby pobrać opcje podłączonego skanera zgodnie z opisem w poprzedniej sekcji.
Niektóre skanery grupowały opcje w sposób zależny od urządzenia. Nie wpływają one na działanie opcji, ale ponieważ mogą być wymienione w dokumentacji skanera, powinny być widoczne dla użytkownika. Możesz pobrać te grupy, dzwoniąc pod numer getOptionGroups()
. Zwraca obietnicę, która zwraca obiekt GetOptionGroupsResponse
. Jego właściwość groups
zawiera tablicę grup zależną od skanera. Informacje z tych grup służą do organizowania opcji wyświetlanych w OpenScannerResponse
.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Jak wspomniano w sekcji Konfiguracja skanera, zmiana jednej opcji może zmienić ograniczenia dotyczące innej opcji. Dlatego obiekt setOptionsResponse
(obiekt odpowiedzi dla setOptions()
) zawiera inną właściwość options
. Użyj tego, aby zaktualizować interfejs. Następnie powtarzaj te czynności w razie potrzeby, aż ustawisz wszystkie opcje.
Ustawianie opcji skanera
Ustaw opcje skanera, przekazując tablicę obiektów OptionSetting
do funkcji setOptions()
. Przykład znajdziesz w sekcji Skanowanie jednej strony w formacie letter.
Przykłady
Pobieranie strony jako bloba
Ten przykład pokazuje jeden ze sposobów pobrania strony ze skanera jako bloba oraz demonstruje użycie funkcji startScan()
i readScanData()
z wartością 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" });
}
Zeskanuj jedną stronę w formacie letter
Ten przykład pokazuje, jak wybrać skaner, ustawić jego opcje i otworzyć go. Następnie pobiera zawartość pojedynczej strony i zamyka skaner. Ten proces jest demonstrowany przy użyciu atrybutów getScannerList()
, openScanner()
, setOptions()
i closeScanner()
. Pamiętaj, że zawartość strony jest pobierana przez wywołanie funkcji pageAsBlob()
z poprzedniego przykładu.
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);
}
Wyświetlanie konfiguracji
Jak już wspomnieliśmy, wyświetlanie użytkownikowi opcji konfiguracji skanera wymaga wywołania metody getOptionGroups()
oprócz opcji skanera zwróconych przez wywołanie metody openScanner()
. Dzięki temu opcje mogą być wyświetlane użytkownikom w grupach zdefiniowanych przez producenta. Ten przykład pokazuje, jak to zrobić.
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");
}
}
}
}
Typy
CancelScanResponse
Właściwości
-
zadanie
ciąg znaków
Udostępnia ten sam identyfikator zadania, który został przekazany do funkcji
cancelScan()
. -
wynik
Anulowanie wyniku skanowania przez backend. Jeśli wynik to
OperationResult.SUCCESS
lubOperationResult.CANCELLED
, skanowanie zostało anulowane i skaner jest gotowy do rozpoczęcia nowego skanowania. Jeśli wynik toOperationResult.DEVICE_BUSY
, skaner nadal przetwarza żądane anulowanie. Osoba dzwoniąca powinna chwilę poczekać i ponownie wysłać żądanie. Inne wartości wyników wskazują na trwały błąd, którego nie należy powtarzać.
CloseScannerResponse
Właściwości
-
wynik
Wynik zamknięcia skanera. Nawet jeśli ta wartość nie jest
SUCCESS
, identyfikator będzie nieprawidłowy i nie powinien być używany do żadnych dalszych operacji. -
scannerHandle
ciąg znaków
Ten sam identyfikator uchwytu skanera, który został przekazany do funkcji
closeScanner
.
Configurability
Jak można zmienić opcję
Typ wyliczeniowy
"NOT_CONFIGURABLE"
Opcja jest tylko do odczytu.
„SOFTWARE_CONFIGURABLE”
Opcję można ustawić w oprogramowaniu.
"HARDWARE_CONFIGURABLE"
Użytkownik może ustawić tę opcję, przełączając lub naciskając przycisk na skanerze.
ConnectionType
Wskazuje, jak skaner jest podłączony do komputera.
Typ wyliczeniowy
"UNSPECIFIED"
„USB”
"NETWORK"
ConstraintType
Typ danych ograniczenia reprezentowany przez OptionConstraint
.
Typ wyliczeniowy
"INT_RANGE"
Ograniczenie dotyczące zakresu wartości OptionType.INT
. Właściwości min
, max
i quant
obiektu OptionConstraint
będą miały wartość long
, a właściwość list
nie będzie miała określonej wartości.
"FIXED_RANGE"
Ograniczenie dotyczące zakresu wartości OptionType.FIXED
. Właściwości min
, max
i quant
obiektu OptionConstraint
będą miały wartość double
, a jego właściwość list
nie będzie ustawiona.
"INT_LIST"
Ograniczenie dotyczące określonej listy wartości OptionType.INT
. Właściwość OptionConstraint.list
będzie zawierać wartości long
, a inne właściwości nie będą miały ustawionych wartości.
"FIXED_LIST"
Ograniczenie dotyczące określonej listy wartości OptionType.FIXED
. Właściwość OptionConstraint.list
będzie zawierać wartości double
, a inne właściwości nie będą miały ustawionych wartości.
"STRING_LIST"
Ograniczenie dotyczące konkretnej listy wartości OptionType.STRING
. Właściwość OptionConstraint.list
będzie zawierać wartości DOMString
, a inne właściwości nie będą miały ustawionych wartości.
DeviceFilter
Właściwości
-
lokalne
logiczna opcjonalna
Tylko skanery zwracane bezpośrednio do komputera.
-
Bezpieczny
logiczna opcjonalna
Zwracaj tylko skanery, które korzystają z bezpiecznego przesyłania, np. USB lub TLS.
GetOptionGroupsResponse
Właściwości
-
grupy
OptionGroup[] opcjonalne
Jeśli
result
toSUCCESS
, zawiera listę grup opcji w kolejności podanej przez sterownik skanera. -
wynik
Wynik pobierania grup opcji. Jeśli wartość tego parametru to
SUCCESS
, zostanie wypełniona właściwośćgroups
. -
scannerHandle
ciąg znaków
Ten sam identyfikator uchwytu skanera, który został przekazany do funkcji
getOptionGroups
.
GetScannerListResponse
Właściwości
-
wynik
Wynik wyliczenia. Pamiętaj, że nawet w przypadku błędu mogą zostać zwrócone częściowe wyniki.
-
skanery
Możliwie pusta lista skanerów pasujących do podanego
DeviceFilter
.
OpenScannerResponse
Właściwości
-
Opcje
object opcjonalne
Jeśli
result
toSUCCESS
, zapewnia mapowanie klucz-wartość, w którym kluczem jest opcja specyficzna dla urządzenia, a wartością jest instancjaScannerOption
. -
wynik
Wynik otwarcia skanera. Jeśli wartość tej właściwości to
SUCCESS
, zostaną wypełnione właściwościscannerHandle
ioptions
. -
scannerHandle
ciąg znaków opcjonalny
Jeśli
result
toSUCCESS
, uchwyt skanera, który można wykorzystać do dalszych operacji. -
scannerId
ciąg znaków
Identyfikator skanera przekazany do
openScanner()
.
OperationResult
Typ enumeracji, który wskazuje wynik każdej operacji.
Typ wyliczeniowy
„UNKNOWN”
Wystąpił nieznany lub ogólny błąd.
„SUCCESS” (sukces)
Operacja się powiodła.
„UNSUPPORTED”
Ta operacja nie jest obsługiwana.
"CANCELLED"
Operacja została anulowana.
„DEVICE_BUSY”
Urządzenie jest zajęte.
„INVALID”
Dane lub argument przekazany metodzie są nieprawidłowe.
"WRONG_TYPE"
Podana wartość ma niewłaściwy typ danych dla opcji podstawowej.
„EOF”
Brak więcej danych.
"ADF_JAMMED"
Podajnik dokumentów jest zablokowany.
"ADF_EMPTY"
Podajnik dokumentów jest pusty.
"COVER_OPEN"
Pokrywa skanera jest otwarta.
"IO_ERROR"
Wystąpił błąd podczas komunikacji z urządzeniem.
„ACCESS_DENIED”
Urządzenie wymaga uwierzytelnienia.
"NO_MEMORY"
Na Chromebooku nie ma wystarczającej ilości pamięci do wykonania tej operacji.
„UNREACHABLE” (NIEOSIĄGALNE)
Urządzenie jest nieosiągalne.
"MISSING" (brak)
Urządzenie jest odłączone.
"INTERNAL_ERROR"
Wystąpił błąd poza aplikacją wywołującą.
OptionConstraint
Właściwości
-
lista
string[] | number[] opcjonalny
-
maksimum
number opcjonalny
-
min
number opcjonalny
-
quant
number opcjonalny
-
typ
OptionGroup
Właściwości
-
członkowie
string[]
Tablica nazw opcji w kolejności podanej przez kierowcę.
-
tytuł
ciąg znaków
zawiera tytuł do wydrukowania, np. „Opcje geometrii”;
OptionSetting
Właściwości
-
nazwa
ciąg znaków
Wskazuje nazwę opcji do ustawienia.
-
typ
Wskazuje typ danych opcji. Żądany typ danych musi być zgodny z rzeczywistym typem danych opcji podstawowej.
-
wartość
string | number | boolean | number[] opcjonalnie
Wskazuje wartość do ustawienia. Pozostaw niewybraną, aby zażądać automatycznego ustawienia dla opcji z włączoną opcją
autoSettable
. Typ danych podany w przypadkuvalue
musi być zgodny z typemtype
.
OptionType
Typ danych opcji.
Typ wyliczeniowy
„UNKNOWN”
Typ danych opcji jest nieznany. Właściwość value
zostanie zresetowana.
"BOOL"
Właściwość value
będzie miała wartość true
false.
„INT”
Znakowana liczba całkowita 32-bitowa. Właściwość value
będzie miała typ long lub long[], w zależności od tego, czy opcja przyjmuje więcej niż jedną wartość.
"FIXED"
Liczba podwójna w zakresie -32768-32767.9999 o rozdzielczości 1/65535. Właściwość value
będzie miała typ double lub double[], w zależności od tego, czy opcja przyjmuje więcej niż jedną wartość. Wartości podwójne, których nie można przedstawić dokładnie, zostaną zaokrąglone do dostępnego zakresu i dokładności.
"STRING"
Sekwencja dowolnych bajtów oprócz NUL ('\0'). Właściwość value
będzie zawierać ciąg DOMString.
„BUTTON”
Opcja tego typu nie ma wartości. Zamiast tego ustawienie opcji tego typu powoduje efekt uboczny w sterowniku skanera. Na przykład sterownik skanera może używać opcji typu przycisk, aby umożliwić wybór wartości domyślnych lub polecenie automatycznego podajnika dokumentów, aby przesunąć następny arkusz papieru.
„GROUP”
Opcja grupowania. Brak wartości. Jest ona uwzględniona ze względu na zgodność, ale zwykle nie jest zwracana w wartościach ScannerOption
. Aby pobrać listę grup z opcjami członkostwa, użyj getOptionGroups()
.
Typ wyliczeniowy
„BEZPODSTAWOWY”
Wartość jest liczbą bezwymiarową. Może to być na przykład wartość progowa.
„PIXEL”
Wartość to liczba pikseli, np. wymiary skanowania.
„BIT”
Wartość to liczba bitów, np. głębia kolorów.
"MM"
Wartość jest podawana w milimetrach, np. wymiary skanowania.
„DPI”
Wartość jest mierzona w punktach na cal, np. rozdzielczość.
„PERCENT”
Wartość jest wyrażona w procentach, na przykład jasność.
"MICROSECOND"
Wartość jest mierzona w mikrosekundach, np. czas ekspozycji.
ReadScanDataResponse
Właściwości
-
dane
ArrayBuffer opcjonalny
Jeśli
result
toSUCCESS
, zawiera następny fragment zeskanowanego obrazu. Jeśliresult
toEOF
, zawiera ostatni fragment zeskanowanych danych obrazu. -
estimatedCompletion
number opcjonalny
Jeśli
result
toSUCCESS
, szacowana wartość łącznej liczby danych z skanowania, która została do tej pory dostarczona, w zakresie od 0 do 100. -
zadanie
ciąg znaków
Zawiera identyfikator zadania przekazany do
readScanData()
. -
wynik
Wynik odczytu danych. Jeśli jego wartość to
SUCCESS
,data
zawiera następny (być może o długości 0) fragment danych obrazu, który jest gotowy do odczytu. Jeśli jego wartość toEOF
, elementdata
zawiera ostatni fragment danych obrazu.
ScannerInfo
Właściwości
-
connectionType
Wskazuje, jak skaner jest podłączony do komputera.
-
deviceUuid
ciąg znaków
Dopasowywania do innych wpisów
ScannerInfo
, które wskazują na to samo fizyczne urządzenie. -
imageFormats
string[]
Tablica typów MIME, które można poprosić o zwrócone skanowania.
-
producent
ciąg znaków
Producent skanera.
-
model
ciąg znaków
Model skanera, jeśli jest dostępny, lub ogólny opis.
-
nazwa
ciąg znaków
Zrozumiała dla człowieka nazwa skanera wyświetlana w interfejsie.
-
protocolType
ciąg znaków
Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera, np. Mopria, WSD lub epsonds. Jest to przydatne przede wszystkim wtedy, gdy urządzenie obsługuje kilka protokołów i chcemy umożliwić użytkownikowi wybór między nimi.
-
scannerId
ciąg znaków
Identyfikator konkretnego skanera.
-
Bezpieczny
wartość logiczna
Jeśli to ustawienie ma wartość Prawda, danych przesyłanych przez połączenie skanera nie może przechwycić pasywny odbiornik, np. TLS lub USB.
ScannerOption
Właściwości
-
konfigurowalność
Wskazuje, czy i jak można zmienić opcję.
-
ograniczenie
OptionConstraint opcjonalny
Określa
OptionConstraint
w bieżącej opcji skanera. -
opis
ciąg znaków
dłuższy opis opcji.
-
isActive
wartość logiczna
Wskazuje, że opcja jest aktywna i można ją ustawić lub pobrać. Jeśli ma wartość Fałsz, parametr
value
nie zostanie skonfigurowany. -
isAdvanced
wartość logiczna
Wskazuje, że interfejs nie powinien wyświetlać tej opcji domyślnie.
-
isAutoSettable
wartość logiczna
Może być ustawiany automatycznie przez sterownik skanera.
-
isDetectable
wartość logiczna
Wskazuje, że tę opcję można wykryć za pomocą oprogramowania.
-
isEmulated
wartość logiczna
Emulowany przez sterownik skanera, jeśli ma wartość prawda.
-
nazwa
ciąg znaków
nazwę opcji zawierającą małe litery ASCII, cyfry i łączniki; Znaki diakrytyczne są niedozwolone.
-
tytuł
ciąg znaków
jednowierszowy tytuł do wydrukowania;
-
typ
Typ danych zawarty we właściwości
value
, który jest potrzebny do ustawienia tej opcji. -
Jednostka
Jednostka miary dla tej opcji.
-
wartość
string | number | boolean | number[] opcjonalnie
Bieżąca wartość opcji (jeśli dotyczy). Pamiętaj, że typ danych tej właściwości musi być zgodny z typem danych określonym w elemencie
type
.
ScanOptions
Właściwości
-
maxImages
number opcjonalny
Dozwolona liczba zeskanowanych obrazów. Wartość domyślna to 1.
-
mimeTypes
string[] opcjonalnie
Typy MIME akceptowane przez wywołującego.
ScanResults
Właściwości
-
dataUrls
string[]
Tablica adresów URL obrazów danych w formie, która może być przekazywana jako wartość „src” do tagu obrazu.
-
mimeType
ciąg znaków
Typ MIME elementu
dataUrls
.
SetOptionResult
Właściwości
-
nazwa
ciąg znaków
Wskazuje nazwę ustawionej opcji.
-
wynik
Wskazuje wynik ustawienia opcji.
SetOptionsResponse
Właściwości
-
Opcje
object opcjonalne
Zaktualizowane mapowanie klucz-wartość z nazwami opcji na wartości
ScannerOption
zawierające nową konfigurację po próbie ustawienia wszystkich podanych opcji. Ma ona tę samą strukturę co usługaoptions
wOpenScannerResponse
.Ta właściwość zostanie ustawiona, nawet jeśli niektóre opcje nie zostaną prawidłowo skonfigurowane, ale zostanie zresetowana, jeśli pobranie zaktualizowanej konfiguracji zakończy się niepowodzeniem (np. jeśli skaner zostanie odłączony w trakcie skanowania).
-
wyniki
Tablica wyników, po jednym dla każdego przekazanego argumentu
OptionSetting
. -
scannerHandle
ciąg znaków
Zawiera identyfikator uchwytu skanera przekazany do
setOptions()
.
StartScanOptions
Właściwości
-
reklamy
ciąg znaków
Określa typ MIME, w którym mają być zwracane zeskanowane dane.
-
maxReadSize
number opcjonalny
Jeśli podana jest wartość niezerowa, ogranicza maksymalną liczbę skanowanych bajtów zwracanych w pojedynczej odpowiedzi
readScanData
do tej wartości. Najmniejsza dozwolona wartość to 32768 (32 KB). Jeśli ta właściwość nie jest określona, zwrócony fragment może mieć rozmiar całego zeskanowanego obrazu.
StartScanResponse
Właściwości
-
zadanie
ciąg znaków opcjonalny
Jeśli
result
ma wartośćSUCCESS
, zawiera uchwyt, który można wykorzystać do odczytania danych ze skanowania lub anulowania zadania. -
wynik
Wynik rozpoczęcia skanowania. Jeśli wartość tego parametru to
SUCCESS
, zostanie wypełniona właściwośćjob
. -
scannerHandle
ciąg znaków
Udostępnia ten sam identyfikator skanera, który został przekazany do funkcji
startScan()
.
Metody
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
Anuluje rozpoczęte skanowanie i zwraca obietnicę, która zwraca obiekt CancelScanResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
Parametry
-
zadanie
ciąg znaków
Identyfikator aktywnego zadania skanowania zwróconego wcześniej z wywołania
startScan
. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: CancelScanResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<CancelScanResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
Zamyka skaner z przekazanym identyfikatorem i zwraca obietnicę, która zwraca obiekt CloseScannerResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Nawet jeśli odpowiedź nie będzie pozytywna, podany identyfikator staje się nieprawidłowy i nie należy go używać do dalszych operacji.
Parametry
-
scannerHandle
ciąg znaków
Określa uchwyt otwartego skanera, który został wcześniej zwrócony z wywołania
openScanner
. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: CloseScannerResponse) => void
-
odpowiedź
-
Zwroty
-
Obietnica<CloseScannerResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
Pobiera nazwy grup i opcje dotyczące członków ze skanera otwartego wcześniej przez openScanner
. Ta metoda zwraca obietnicę, która jest realizowana z obiektem GetOptionGroupsResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane zwrócone dane.
Parametry
-
scannerHandle
ciąg znaków
Uchwyt otwartego skanera zwrócony z wywołania do
openScanner
. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: GetOptionGroupsResponse) => void
-
odpowiedź
-
Zwroty
-
Obietnica<GetOptionGroupsResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
Pobiera listę dostępnych skanerów i zwraca obietnicę, która zwraca obiekt GetScannerListResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane zwrócone dane.
Parametry
-
filtr
DeviceFilter
wskazujący, które typy skanerów powinny zostać zwrócone. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: GetScannerListResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<GetScannerListResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
Otwiera skaner w celu uzyskania wyłącznego dostępu i zwraca obietnicę, która zwraca obiekt OpenScannerResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane zwrócone dane.
Parametry
-
scannerId
ciąg znaków
Identyfikator skanera, który ma zostać otwarty. Ta wartość jest zwracana z poprzedniego wywołania funkcji
getScannerList
. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: OpenScannerResponse) => void
-
odpowiedź
-
Zwroty
-
Obietnica<OpenScannerResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
Odczytuje kolejny fragment dostępnych danych obrazu z identyfikatora aktywnego zadania i zwraca obietnicę, która zwraca obiekt ReadScanDataResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
**Uwaga:**odpowiedź może być SUCCESS
z elementem data
o długości 0. Oznacza to, że skaner nadal działa, ale nie ma jeszcze dodatkowych danych. Osoba dzwoniąca powinna odczekać chwilę i spróbować ponownie.
Po zakończeniu zadania skanowania odpowiedź będzie zawierać wartość EOF
. Ta odpowiedź może zawierać ostatni element data
, którego wartość jest różna od 0.
Parametry
-
zadanie
ciąg znaków
Aktywny identyfikator zadania zwrócony wcześniej przez
startScan
. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: ReadScanDataResponse) => void
-
odpowiedź
-
Zwroty
-
Obiet natywny<ReadScanDataResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Wykonuje skanowanie dokumentu i zwraca obietnicę, która zwraca obiekt ScanResults
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane zwrócone dane.
Parametry
-
Opcje
Obiekt zawierający parametry skanowania.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(result: ScanResults) => void
-
wynik
-
Zwroty
-
Obietnica<ScanResults>
Chrome 96+Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
Ustawia opcje w wybranym skanerze i zwraca obietnicę, która zwraca obiekt SetOptionsResponse
zawierający wynik próby ustawienia każdej wartości w kolejności przekazanego obiektu OptionSetting
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
Parametry
-
scannerHandle
ciąg znaków
Uchwyt skanera do ustawiania opcji. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji
openScanner
. -
Opcje
Lista
OptionSetting
obiektów do zastosowania w skanerze. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: SetOptionsResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<SetOptionsResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
Rozpoczyna skanowanie za pomocą określonego skanera i zwraca obietnicę, która zwraca StartScanResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Jeśli wywołanie się powiedzie, odpowiedź będzie zawierać identyfikator zadania, który można wykorzystać w kolejnych wywołaniach do odczytania danych skanowania lub anulowania skanowania.
Parametry
-
scannerHandle
ciąg znaków
Uchwyt otwartego skanera. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji
openScanner
. -
Opcje
Obiekt
StartScanOptions
wskazujący opcje do użycia podczas skanowania. WłaściwośćStartScanOptions.format
musi być zgodna z jednym z elementów zwróconych w właściwościScannerInfo
skanera. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(response: StartScanResponse) => void
-
odpowiedź
-
Zwroty
-
Obietnica<StartScanResponse>
Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.