Opis
Użyj interfejsu chrome.documentScan
API, aby wykrywać i pobierać obrazy z podłączonych skanerów dokumentów.
Interfejs Document Scan 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 Twój przypadek użycia może działać z dowolnym skanerem i nie wymaga kontroli konfiguracji, użyj metody scan()
. Bardziej skomplikowane przypadki użycia wymagają połączenia metod, które są obsługiwane tylko w Chrome w wersji 124 i nowszych.
Proste skanowanie
W przypadku prostych zastosowań, czyli takich, które mogą działać z dowolnym skanerem i nie wymagają kontroli konfiguracji, wywołaj scan()
. Ta metoda przyjmuje obiekt ScanOptions
i zwraca obietnicę, która jest realizowana za pomocą obiektu ScanResults
. Możliwości tej opcji są ograniczone do liczby skanów i typów MIME, które będą akceptowane przez dzwoniącego. Skanowania są zwracane jako adresy URL
do wyświetlania w tagu <img>
w interfejsie.
Złożone skanowanie
Złożone skanowanie odbywa się w 3 fazach opisanych w tej sekcji. Ten opis nie zawiera wszystkich argumentów metody ani wszystkich właściwości zwracanych w odpowiedzi. Ma ona jedynie stanowić ogólny przewodnik po pisaniu kodu skanera.
Odkrywanie
Zadzwoń pod numer
getScannerList()
. Dostępne skanery są zwracane w obietnicy, która jest realizowana za pomocąGetScannerListResponse
.- Obiekt odpowiedzi zawiera tablicę obiektów
ScannerInfo
. - Tablica może zawierać wiele wpisów dla jednego skanera, jeśli obsługuje on wiele protokołów lub metod połączenia.
- Obiekt odpowiedzi zawiera tablicę obiektów
Wybierz skaner z zwróconej tablicy i zapisz wartość jego właściwości
scannerId
.Użyj właściwości poszczególnych obiektów
ScannerInfo
, aby odróżnić wiele obiektów dla tego samego skanera. Obiekty z tego samego 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 jest realizowana z wartościąOpenScannerResponse
. Obiekt odpowiedzi zawiera:Właściwość
scannerHandle
, którą musisz zapisać.Właściwość options zawierająca właściwości specyficzne dla skanera, które musisz ustawić. Więcej informacji znajdziesz w artykule Pobieranie opcji skanera.
(Opcjonalnie) Jeśli chcesz, aby użytkownik podał wartości opcji skanera, utwórz interfejs. Będziesz potrzebować opcji skanera podanych w poprzednim kroku oraz grup opcji udostępnionych przez skaner. Więcej informacji znajdziesz w artykule Tworzenie interfejsu użytkownika.
Utwórz tablicę obiektów
OptionSetting
, używając wartości podanych przez użytkownika lub uzyskanych programowo. Więcej informacji znajdziesz w artykule Ustawianie opcji skanera.Przekaż tablicę obiektów
OptionSetting
do funkcjisetOptions()
, aby ustawić opcje skanera. Zwraca Promise, który jest rozwiązywany za pomocą obiektuSetOptionsResponse
. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.Zmiana jednej opcji może wpłynąć na ograniczenia innej, dlatego może być konieczne powtórzenie tych kroków kilka razy.
Skanowanie
Utwórz obiekt
StartScanOptions
i przekaż go do funkcjistartScan()
. Zwraca Promise, który jest rozwiązywany za pomocąStartScanResponse
. Jego właściwośćjob
to uchwyt, którego będziesz używać do odczytywania danych skanowania lub anulowania skanowania.Przekaż uchwyt zadania do funkcji
readScanData()
. Zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektuReadScanDataResponse
. Jeśli dane zostały odczytane prawidłowo, właściwośćresult
ma wartośćSUCCESS
, a właściwośćdata
zawieraArrayBuffer
z częścią skanu. Pamiętaj, żeestimatedCompletion
zawiera szacunkowy odsetek łącznej ilości danych, które zostały dotychczas dostarczone.Powtarzaj poprzedni krok, aż właściwość
result
będzie równaEOF
lub wystąpi błąd.
Gdy skanowanie dobiegnie końca, wywołaj funkcję
closeScanner()
, używając uchwytu skanera zapisanego w kroku 3. Zwraca obietnicę, która jest realizowana z wartością CloseScannerResponse
. Wywołanie funkcji Calling
cancelScan()
w dowolnym momencie po utworzeniu zadania spowoduje zakończenie skanowania.
Obiekty odpowiedzi
Wszystkie metody zwracają obietnicę, która jest rozwiązywana za pomocą obiektu 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ść parametru result
będzie określona. Te relacje są opisane w informacjach o poszczególnych obiektach odpowiedzi.
Na przykład parametr OpenScannerResponse.scannerHandle
będzie miał wartość tylko wtedy, gdy parametr OpenScannerResponse.result
będzie równy SUCCESS
.
Opcje skanera
Opcje skanera różnią się znacznie w zależności od urządzenia. W związku z tym nie można odzwierciedlić opcji skanera bezpośrednio w interfejsie documentScan API. Aby to obejść, obiekty OpenScannerResponse
(pobrany za pomocą openScanner()
) i SetOptionsResponse
(obiekt odpowiedzi dla setOptions()
) zawierają właściwość options
, która jest obiektem zawierającym opcje specyficzne dla skanera. Każda opcja to mapowanie klucz-wartość, w którym klucz jest opcją specyficzną dla urządzenia, a wartość jest instancją elementu ScannerOption
.
Struktura zwykle wygląda tak:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Wyobraź sobie skaner, który zwraca opcje o nazwach „source” i „resolution”. Struktura zwróconego obiektu options
będzie wyglądać podobnie jak w tym przykładzie. Dla uproszczenia 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 chcieć, aby użytkownik wybrał wartość dla określonej opcji. Wymaga to interfejsu użytkownika. Użyj ikony
OpenScannerResponse
(otwieranej za pomocą ikony
openScanner()
), aby pobrać opcje dołączonego skanera zgodnie z opisem w poprzedniej sekcji.
Niektóre skanery grupują opcje w sposób charakterystyczny dla danego urządzenia. Nie mają one wpływu na działanie opcji, ale ponieważ mogą być wymienione w dokumentacji skanera, powinny być widoczne dla użytkownika. Możesz je pobrać, dzwoniąc pod numer getOptionGroups()
. Zwraca to Promise, który jest rozwiązywany za pomocą obiektu GetOptionGroupsResponse
. Jego właściwość groups
zawiera tablicę grup specyficzną dla skanera. Informacje z tych grup służą do porządkowania opcji w OpenScannerResponse
.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Jak wspomnieliśmy w sekcji Konfiguracja skanera, zmiana jednej opcji może wpłynąć na ograniczenia innej opcji. Dlatego setOptionsResponse
(obiekt odpowiedzi dla setOptions()
) zawiera inną właściwość options
. Użyj tego, aby zaktualizować interfejs. Następnie powtarzaj te czynności, aż ustawisz wszystkie opcje.
Ustawianie opcji skanera
Ustaw opcje skanera, przekazując tablicę obiektów OptionSetting
do setOptions()
. Przykład znajdziesz w sekcji Skanowanie jednej strony w formacie Letter.
Przykłady
Pobieranie strony jako obiektu blob
Ten przykład pokazuje jeden ze sposobów pobierania strony ze skanera w formie obiektu blob i demonstruje użycie znaczników 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" });
}
Skanowanie 1 strony w formacie Letter
Ten przykład pokazuje, jak wybrać skaner, ustawić jego opcje i go otworzyć. Następnie pobiera zawartość jednej strony i zamyka skaner. Ten proces pokazuje, jak używać znacznikó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);
}
Pokaż konfigurację
Jak wspomnieliśmy wcześniej, wyświetlanie użytkownikowi opcji konfiguracji skanera wymaga wywołania funkcji getOptionGroups()
oprócz opcji skanera zwróconych przez wywołanie funkcji openScanner()
. Dzięki temu użytkownicy będą mogli zobaczyć opcje 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
Zwraca ten sam uchwyt zadania, który został przekazany do funkcji
cancelScan()
. -
wynik
Wynik anulowania skanowania z backendu. Jeśli wynikiem jest
OperationResult.SUCCESS
lubOperationResult.CANCELLED
, skanowanie zostało anulowane, a skaner jest gotowy do rozpoczęcia nowego skanowania. Jeśli wynik toOperationResult.DEVICE_BUSY
, skaner nadal przetwarza żądanie anulowania. Dzwoniący powinien poczekać chwilę i ponownie spróbować wysłać żądanie. Pozostałe wartości wyników wskazują na trwały błąd, którego nie należy ponawiać.
CloseScannerResponse
Właściwości
-
wynik
Wynik zamknięcia skanera. Nawet jeśli ta wartość nie jest równa
SUCCESS
, uchwyt będzie nieprawidłowy i nie należy go używać do żadnych dalszych operacji. -
scannerHandle
ciąg znaków
Ten sam uchwyt 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”
Opcję można ustawić, przełączając lub naciskając przycisk na skanerze.
ConnectionType
Określa, w jaki sposób skaner jest podłączony do komputera.
Typ wyliczeniowy
„UNSPECIFIED”
„USB”
"NETWORK"
ConstraintType
Typ danych ograniczenia reprezentowanego przez OptionConstraint
.
Typ wyliczeniowy
„INT_RANGE”
Ograniczenie 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
będzie niezdefiniowana.
„FIXED_RANGE”
Ograniczenie dotyczące zakresu OptionType.FIXED
wartości. Właściwości min
, max
i quant
elementu OptionConstraint
będą miały wartość double
, a właściwość list
będzie nieustawiona.
„INT_LIST”
Ograniczenie dotyczące konkretnej listy wartości OptionType.INT
. Właściwość OptionConstraint.list
będzie zawierać wartości long
, a pozostałe właściwości będą nieustawione.
„FIXED_LIST”
Ograniczenie dotyczące konkretnej listy wartości OptionType.FIXED
. Właściwość OptionConstraint.list
będzie zawierać wartości double
, a pozostałe właściwości będą nieustawione.
„STRING_LIST”
Ograniczenie dotyczące konkretnej listy wartości OptionType.STRING
. Właściwość OptionConstraint.list
będzie zawierać wartości DOMString
, a pozostałe właściwości będą nieustawione.
DeviceFilter
Właściwości
-
lokalne
wartość logiczna opcjonalna
Zwraca tylko skanery podłączone bezpośrednio do komputera.
-
Bezpieczny
wartość logiczna opcjonalna
Zwraca tylko skanery, które korzystają z bezpiecznego transportu, np. USB lub TLS.
GetOptionGroupsResponse
Właściwości
-
grupy
OptionGroup[] opcjonalne
Jeśli
result
ma wartośćSUCCESS
, podaje listę grup opcji w kolejności dostarczonej przez sterownik skanera. -
wynik
Wynik pobierania grup opcji. Jeśli wartość tego pola to
SUCCESS
, zostanie wypełnione polegroups
. -
scannerHandle
ciąg znaków
Ten sam uchwyt skanera, który został przekazany do funkcji
getOptionGroups
.
GetScannerListResponse
Właściwości
-
wynik
Wynik wyliczenia. Pamiętaj, że nawet jeśli wystąpi błąd, mogą zostać zwrócone częściowe wyniki.
-
skanery,
Lista skanerów, które pasują do podanego
DeviceFilter
. Może być pusta.
OpenScannerResponse
Właściwości
-
Opcje
obiekt opcjonalny
Jeśli
result
ma wartośćSUCCESS
, udostępnia mapowanie klucz-wartość, w którym klucz jest opcją specyficzną dla urządzenia, a wartość jest instancjąScannerOption
. -
wynik
Wynik otwarcia skanera. Jeśli wartość tego parametru to
SUCCESS
, zostaną wypełnione właściwościscannerHandle
ioptions
. -
scannerHandle
string opcjonalny
Jeśli
result
ma wartośćSUCCESS
, jest to uchwyt skanera, którego można używać do dalszych operacji. -
scannerId
ciąg znaków
Identyfikator skanera przekazany do
openScanner()
.
OperationResult
Wyliczenie wskazujące wynik każdej operacji.
Typ wyliczeniowy
„UNKNOWN”
Wystąpił nieznany lub ogólny błąd.
„SUCCESS”
Operacja zakończyła się powodzeniem.
„UNSUPPORTED”
Operacja nie jest obsługiwana.
„ANULOWANO”
Operacja została anulowana.
„DEVICE_BUSY”
Urządzenie jest zajęte.
„INVALID”
Dane lub argument przekazany do metody są nieprawidłowe.
„WRONG_TYPE”
Podana wartość ma nieprawidłowy typ danych dla opcji bazowej.
„EOF”
Brak dostępnych danych.
„ADF_JAMMED”
Podajnik dokumentów jest zacięty.
„ADF_EMPTY”
Podajnik dokumentów jest pusty.
„COVER_OPEN”
Pokrywa skanera płaskiego jest otwarta.
„IO_ERROR”
Podczas komunikacji z urządzeniem wystąpił błąd.
„ACCESS_DENIED”
Urządzenie wymaga uwierzytelnienia.
„NO_MEMORY”
Na Chromebooku nie ma wystarczającej ilości pamięci, aby ukończyć operację.
„UNREACHABLE”
Urządzenie jest nieosiągalne.
„MISSING”
Urządzenie jest odłączone.
„INTERNAL_ERROR”
Wystąpił błąd w miejscu innym niż aplikacja wywołująca.
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 sterownik.
-
tytuł
ciąg znaków
Zawiera tytuł do wydruku, 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 bazowej.
-
wartość
string | number | boolean | number[] opcjonalnie
Wskazuje wartość do ustawienia. Pozostaw to pole bez ustawień, aby poprosić o automatyczne ustawienie opcji, które mają włączoną funkcję
autoSettable
. Typ danych podany dlavalue
musi być zgodny ztype
.
OptionType
Typ danych opcji.
Typ wyliczeniowy
„UNKNOWN”
Typ danych opcji jest nieznany. Właściwość value
zostanie cofnięta.
„BOOL”
Właściwość value
będzie miała wartość true
false.
„INT”
Podpisana 32-bitowa liczba całkowita. Właściwość value
będzie miała wartość long lub long[], w zależności od tego, czy opcja przyjmuje więcej niż jedną wartość.
„FIXED”
Liczba zmiennoprzecinkowa o podwójnej precyzji z zakresu od -32768 do 32767,9999 i rozdzielczości 1/65535. Właściwość value
będzie miała wartość double lub double[], w zależności od tego, czy opcja przyjmuje więcej niż jedną wartość. Wartości typu double, których nie można dokładnie przedstawić, zostaną zaokrąglone do dostępnego zakresu i dokładności.
"STRING"
Ciąg dowolnych bajtów z wyjątkiem znaku NUL („\0”). Właściwość value
będzie ciągiem DOMString.
„BUTTON”
Opcja tego typu nie ma wartości. Zamiast tego ustawienie opcji tego typu powoduje w sterowniku skanera efekt uboczny specyficzny dla danej opcji. Na przykład opcja typu przycisku może być używana przez sterownik skanera do wybierania wartości domyślnych lub do informowania automatycznego podajnika dokumentów o przejściu do następnego arkusza papieru.
„GROUP”
Opcja grupowania. Brak wartości. Jest to uwzględnione ze względu na zgodność, ale zwykle nie jest zwracane w wartościach ScannerOption
. Użyj getOptionGroups()
, aby pobrać listę grup z opcjami członków.
Typ wyliczeniowy
„UNITLESS”
Wartość jest liczbą bez jednostki. Może to być na przykład wartość progowa.
„PIXEL”
Wartość to liczba pikseli, np. wymiary skanu.
„BIT”
Wartość to liczba bitów, np. głębia kolorów.
„MM”
Wartość jest mierzona w milimetrach, np. wymiary skanu.
„DPI”
Wartość jest mierzona w punktach na cal, np. rozdzielczość.
„PERCENT”
Wartość jest procentem, np. jasność.
„MICROSECOND”
Wartość jest mierzona w mikrosekundach, np. czas ekspozycji.
ReadScanDataResponse
Właściwości
-
dane
ArrayBuffer opcjonalny
Jeśli wartość
result
toSUCCESS
, zawiera kolejny fragment danych zeskanowanego obrazu. Jeśliresult
ma wartośćEOF
, zawiera ostatni fragment danych zeskanowanego obrazu. -
estimatedCompletion
number opcjonalny
Jeśli wartość
result
toSUCCESS
, szacunkowa ilość danych skanowania dostarczonych do tej pory (w zakresie od 0 do 100). -
zadanie
ciąg znaków
Zwraca uchwyt zadania przekazany do
readScanData()
. -
wynik
Wynik odczytu danych. Jeśli jego wartość to
SUCCESS
,data
zawiera następny (być może pusty) fragment danych obrazu gotowy do odczytu. Jeśli jego wartość toEOF
,data
zawiera ostatni fragment danych obrazu.
ScannerInfo
Właściwości
-
connectionType
Określa, w jaki sposób skaner jest podłączony do komputera.
-
deviceUuid
ciąg znaków
Do dopasowywania do innych wpisów
ScannerInfo
, które wskazują to samo urządzenie fizyczne. -
imageFormats
string[]
Tablica typów MIME, które można przesłać w żądaniu w przypadku zwracanych skanów.
-
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, która będzie 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 w przypadku, gdy użytkownik ma możliwość wyboru protokołu, jeśli urządzenie obsługuje ich kilka.
-
scannerId
ciąg znaków
Identyfikator konkretnego skanera.
-
Bezpieczny
Wartość logiczna
Jeśli wartość to „true”, połączenie skanera nie może zostać przechwycone przez pasywnego odbiorcę, takiego jak TLS lub USB.
ScannerOption
Właściwości
-
możliwość konfiguracji,
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, właściwość
value
nie zostanie ustawiona. -
isAdvanced
Wartość logiczna
Wskazuje, że interfejs nie powinien domyślnie wyświetlać tej opcji.
-
isAutoSettable
Wartość logiczna
Może być automatycznie ustawiony przez sterownik skanera.
-
isDetectable
Wartość logiczna
Wskazuje, że tę opcję można wykryć za pomocą oprogramowania.
-
isEmulated
Wartość logiczna
Emulowane przez sterownik skanera, jeśli ma wartość true.
-
nazwa
ciąg znaków
Nazwa opcji zawierająca małe litery ASCII, cyfry i myślniki. Znaki diakrytyczne są niedozwolone.
-
tytuł
ciąg znaków
Tytuł do wydrukowania w jednym wierszu.
-
typ
Typ danych zawartych 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 (w stosownych przypadkach). Pamiętaj, że typ danych tej właściwości musi być zgodny z typem danych określonym w
type
.
ScanOptions
Właściwości
-
maxImages
number opcjonalny
Liczba dozwolonych skanowanych obrazów. Wartość domyślna to 1.
-
mimeTypes
string[] opcjonalne
Typy MIME akceptowane przez rozmówcę.
ScanResults
Właściwości
-
dataUrls
string[]
Tablica adresów URL obrazów danych w formacie, który można przekazać jako wartość parametru „src” do tagu obrazu.
-
mimeType
ciąg znaków
Typ MIME elementu
dataUrls
.
SetOptionResult
Właściwości
-
nazwa
ciąg znaków
Zawiera nazwę ustawionej opcji.
-
wynik
Wskazuje wynik ustawienia opcji.
SetOptionsResponse
Właściwości
-
Opcje
obiekt opcjonalny
Zaktualizowane mapowanie klucz-wartość z nazw opcji na wartości
ScannerOption
zawierające nową konfigurację po próbie ustawienia wszystkich podanych opcji. Ma taką samą strukturę jak usługaoptions
wOpenScannerResponse
.Ta właściwość zostanie ustawiona nawet wtedy, gdy niektóre opcje nie zostały ustawione, ale zostanie wycofana, jeśli pobieranie zaktualizowanej konfiguracji się nie powiedzie (np. jeśli skaner zostanie odłączony w trakcie skanowania).
-
wyniki
Tablica wyników, po jednym dla każdego przekazanego parametru
OptionSetting
. -
scannerHandle
ciąg znaków
Zwraca uchwyt 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 podano wartość różną od zera, ogranicza maksymalną liczbę skanowanych bajtów zwracanych w jednej odpowiedzi
readScanData
do tej wartości. Najmniejsza dozwolona wartość to 32768 (32 KB). Jeśli ta właściwość nie jest określona, rozmiar zwróconego fragmentu może być równy rozmiarowi całego zeskanowanego obrazu.
StartScanResponse
Właściwości
-
zadanie
string opcjonalny
Jeśli
result
ma wartośćSUCCESS
, zwraca uchwyt, którego można użyć do odczytania danych skanowania lub anulowania zadania. -
wynik
Wynik rozpoczęcia skanowania. Jeśli wartość tego pola to
SUCCESS
, zostanie wypełnione polejob
. -
scannerHandle
ciąg znaków
Zwraca ten sam uchwyt skanera, który został przekazany do funkcji
startScan()
.
Metody
cancelScan()
chrome.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
Anuluje rozpoczęte skanowanie i zwraca obietnicę, która jest realizowana za pomocą obiektu CancelScanResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
Parametry
-
zadanie
ciąg znaków
Uchwyt aktywnego zadania skanowania zwrócony wcześniej przez wywołanie funkcji
startScan
.
Zwroty
-
Promise<CancelScanResponse>
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
Zamyka skaner za pomocą przekazanego uchwytu i zwraca obietnicę, która jest realizowana za pomocą obiektu CloseScannerResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Nawet jeśli odpowiedź nie jest pozytywna, podany uchwyt 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 przez wywołanie funkcji
openScanner
.
Zwroty
-
Promise<CloseScannerResponse>
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
Pobiera nazwy grup i opcje członków ze skanera otwartego wcześniej przez openScanner
. Ta metoda zwraca obietnicę, która jest spełniana za pomocą obiektu GetOptionGroupsResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego przekazywane są do niego zwrócone dane.
Parametry
-
scannerHandle
ciąg znaków
Uchwyt otwartego skanera zwrócony przez wywołanie funkcji
openScanner
.
Zwroty
-
Promise<GetOptionGroupsResponse>
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
Pobiera listę dostępnych skanerów i zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu GetScannerListResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego przekazywane są do niego zwrócone dane.
Parametry
-
filtr
Wartość
DeviceFilter
wskazująca, które typy skanerów powinny zostać zwrócone.
Zwroty
-
Promise<GetScannerListResponse>
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Otwiera skaner z wyłącznym dostępem i zwraca Promise, który jest rozwiązywany za pomocą obiektu OpenScannerResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego przekazywane są do niego 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
.
Zwroty
-
Promise<OpenScannerResponse>
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
Odczytuje następny fragment dostępnych danych obrazu z aktywnego uchwytu zadania i zwraca obietnicę, która jest realizowana za pomocą obiektu ReadScanDataResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
**Uwaga: w przypadku wyniku odpowiedzi dopuszczalne jest wystąpienie SUCCESS
z elementem data
o zerowej długości. Oznacza to, że skaner nadal działa, ale nie ma jeszcze gotowych dodatkowych danych. Dzwoniący powinien poczekać chwilę i spróbować ponownie.
Po zakończeniu skanowania w odpowiedzi pojawi się wartość EOF
. Ta odpowiedź może zawierać końcowy element data
o wartości innej niż 0.
Parametry
-
zadanie
ciąg znaków
Uchwyt aktywnego zadania zwrócony wcześniej przez funkcję
startScan
.
Zwroty
-
Promise<ReadScanDataResponse>
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
Wykonuje skanowanie dokumentu i zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu ScanResults
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zwrócone dane zostaną przekazane do niego.
Parametry
-
Opcje
Obiekt zawierający parametry skanowania.
Zwroty
-
Promise<ScanResults>
Chrome w wersji 96 lub nowszej
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
Ustawia opcje na określonym skanerze i zwraca obietnicę, która jest spełniana przez 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, na którym można ustawić opcje. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji
openScanner
. -
Opcje
Lista
OptionSetting
obiektów, które mają być zastosowane w skanerze.
Zwroty
-
Promise<SetOptionsResponse>
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Rozpoczyna skanowanie na określonym skanerze i zwraca obietnicę, która jest spełniana za pomocą obiektu StartScanResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Jeśli wywołanie się powiedzie, odpowiedź będzie zawierać uchwyt zadania, którego można użyć w kolejnych wywołaniach do odczytywania 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, które mają być używane podczas skanowania. WłaściwośćStartScanOptions.format
musi być zgodna z jednym z wpisów zwróconych wScannerInfo
skanera.
Zwroty
-
Promise<StartScanResponse>