Opis
Używaj interfejsu API chrome.documentScan do wykrywania i pobierania obrazów z podłączonych skanerów dokumentów.
Interfejs Document Scan API umożliwia aplikacjom i rozszerzeniom wyświetlanie treści dokumentów papierowych na podłączonym skanerze dokumentów.
Uprawnienia
documentScanDostępność
Pojęcia i użycie
Ten interfejs API obsługuje 2 sposoby skanowania dokumentów. Jeśli Twój przypadek użycia może działać z dowolnym skanerem i nie wymaga kontroli nad konfiguracją, użyj metody scan(). Bardziej skomplikowane przypadki użycia wymagają połączenia metod, które są obsługiwane tylko w Chrome 124 i nowszych wersjach.
Proste skanowanie
W przypadku prostych zastosowań, czyli takich, które mogą działać z dowolnym skanerem i nie wymagają kontroli nad konfiguracją, wywołaj scan(). Ta metoda przyjmuje obiekt ScanOptions i zwraca obiekt Promise, który rozwiązuje się z obiektem ScanResults. Możliwości tej opcji są ograniczone do liczby skanów i typów MIME, które zostaną zaakceptowane przez rozmówcę. Skanowane dokumenty są zwracane jako adresy URL do wyświetlenia w tagu <img> w interfejsie użytkownika.
Skanowanie złożone
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 on jedynie służyć jako ogólny przewodnik po pisaniu kodu skanera.
Odkrywanie
Zadzwoń pod numer
getScannerList(). Dostępne skanery są zwracane w obiekcie Promise, który jest rozwiązywany za pomocąGetScannerListResponse.- Obiekt odpowiedzi zawiera tablicę obiektów
ScannerInfo. - Tablica może zawierać wiele wpisów dotyczących jednego skanera, jeśli obsługuje on wiele protokołów lub metod połączenia.
- Obiekt odpowiedzi zawiera tablicę obiektów
Wybierz skaner ze 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 tego samego skanera. Obiekty z tego samego skanera będą miały tę samą wartość właściwoścideviceUuid.ScannerInfozawiera też właściwośćimageFormats, która zawiera tablicę obsługiwanych typów obrazów.
Konfiguracja skanera
Wywołaj
openScanner(), podając zapisany identyfikator skanera. Zwraca obietnicę, która jest rozwiązywana za pomocąOpenScannerResponse. Obiekt odpowiedzi zawiera:Właściwość
scannerHandle, którą musisz zapisać.Właściwość opcji zawierająca właściwości skanera, które musisz ustawić. Więcej informacji znajdziesz w sekcji dotyczącej pobierania opcji skanera.
(Opcjonalnie) Jeśli chcesz, aby użytkownik podał wartości opcji skanera, utwórz interfejs użytkownika. Będziesz potrzebować opcji skanera podanych w poprzednim kroku oraz grup opcji udostępnianych przez skaner. Więcej informacji znajdziesz w artykule Tworzenie interfejsu użytkownika.
Utwórz tablicę obiektów
OptionSetting, używając wartości automatycznych lub podanych przez użytkownika. Więcej informacji znajdziesz w artykule o ustawianiu opcji skanera.Przekaż tablicę obiektów
OptionSettingdosetOptions(), aby ustawić opcje skanera. Zwraca obiekt Promise, który rozwiązuje się za pomocąSetOptionsResponse. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.Zmiana jednej opcji może wpłynąć na ograniczenia dotyczące innej opcji, dlatego może być konieczne powtórzenie tych czynności kilka razy.
Skanowanie
Utwórz obiekt
StartScanOptionsi przekaż go dostartScan(). Zwraca obiekt Promise, który rozwiązuje się zStartScanResponse. Właściwośćjobto uchwyt, którego użyjesz do odczytania danych skanowania lub anulowania skanowania.Przekaż uchwyt zadania do
readScanData(). Zwraca obiekt Promise, który rozwiązuje się z obiektemReadScanDataResponse. Jeśli dane zostały odczytane prawidłowo, właściwośćresultma wartośćSUCCESS, a właściwośćdatazawiera obiektArrayBufferz częścią skanu. Pamiętaj, żeestimatedCompletionzawiera szacunkowy odsetek wszystkich danych, które zostały do tej pory dostarczone.Powtarzaj poprzedni krok, aż właściwość
resultbędzie równaEOFlub wystąpi błąd.
Po zakończeniu skanowania wywołaj funkcję closeScanner() z uchwytem skanera zapisanym w kroku 3. Zwraca obiekt Promise, który rozwiązuje się z CloseScannerResponse. Wywołanie cancelScan() w dowolnym momencie po utworzeniu zadania spowoduje zakończenie skanowania.
Obiekty odpowiedzi
Wszystkie metody zwracają obiekt Promise, który jest rozwiązywany za pomocą obiektu odpowiedzi określonego rodzaju.
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ść result będzie miała określoną wartość. Te relacje są opisane w dokumentacji każdego obiektu odpowiedzi.
Na przykład OpenScannerResponse.scannerHandle będzie mieć wartość tylko wtedy, gdy OpenScannerResponse.result będzie równe 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ść, OpenScannerResponse (pobrany za pomocą openScanner()) i SetOptionsResponse (obiekt odpowiedzi dla setOptions()) zawierają właściwość options, która jest obiektem zawierającym opcje dotyczące skanera. Każda opcja to mapowanie klucz-wartość, gdzie klucz to opcja dotycząca urządzenia, a wartość to instancja ScannerOption.
Struktura wygląda zwykle tak:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Wyobraźmy sobie na przykład skaner, który zwraca opcje o nazwach „źródło” i „rozdzielczość”. Struktura zwróconego obiektu options będzie wyglądać mniej więcej tak jak w poniższym 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
Chociaż nie jest to wymagane do korzystania z tego interfejsu API, możesz chcieć, aby użytkownik wybrał wartość dla konkretnej opcji. Wymaga to interfejsu użytkownika. Użyj OpenScannerResponse (otwieranego przez openScanner()), aby pobrać opcje podłączonego skanera, jak opisano w poprzedniej sekcji.
Niektóre skanery grupują opcje w sposób specyficzny dla urządzenia. Nie wpływają na zachowanie opcji, ale ponieważ te grupy mogą być wymienione w dokumentacji produktu skanera, powinny być widoczne dla użytkownika. Możesz pobrać te grupy, wywołując funkcję getOptionGroups(). Zwraca obiekt Promise, który rozwiązuje obiekt GetOptionGroupsResponse. Jego właściwość groups zawiera tablicę grup właściwą dla skanera. Użyj informacji z tych grup, aby uporządkować opcje w OpenScannerResponse do wyświetlenia.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Jak wspomniano w sekcji Konfiguracja skanera, zmiana jednej opcji może wpłynąć na ograniczenia innej opcji. Dlatego setOptionsResponse (obiekt odpowiedzi dla setOptions()) zawiera kolejną właściwość options. Użyj tej opcji, 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 poniżej.
Przykłady
Pobieranie strony jako obiektu blob
Ten przykład pokazuje, jak pobrać stronę ze skanera jako obiekt blob, oraz demonstruje użycie startScan() i readScanData() z wartością OperationResult.
async function pageAsBlob(handle) {
let response = await browser.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != browser.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await browser.documentScan.readScanData(job);
while (response.result == browser.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 browser.documentScan.readScanData(job);
}
if (response.result != browser.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ść pojedynczej strony i zamyka skaner. Ten proces pokazuje, jak używać getScannerList(), openScanner(), setOptions() i closeScanner(). Zwróć uwagę, że zawartość strony jest pobierana przez wywołanie funkcji pageAsBlob() z poprzedniego przykładu.
async function scan() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.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: browser.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: browser.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: browser.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await browser.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await browser.documentScan.closeScanner(handle);
}
Pokaż konfigurację
Jak wspomniano w innym miejscu, wyświetlenie użytkownikowi opcji konfiguracji skanera wymaga wywołania getOptionGroups() oprócz opcji skanera zwróconych przez wywołanie 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 browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await browser.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
tekst
Zapewnia ten sam uchwyt zadania, który został przekazany do
cancelScan(). -
wynik
Wynik anulowania skanowania przez backend. Jeśli wynik to
OperationResult.SUCCESSlubOperationResult.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. Obiekt wywołujący powinien chwilę poczekać i spróbować ponownie. Inne wartości wyniku wskazują na błąd stały, którego nie należy próbować naprawiać.
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 dalszych operacji. -
scannerHandle
tekst
Ten sam uchwyt skanera, który został przekazany do
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
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 zakresu wartości OptionType.INT. Właściwości min, max i quant elementu OptionConstraint będą miały wartość long, a właściwość list nie będzie ustawiona.
"FIXED_RANGE"
Ograniczenie zakresu wartości OptionType.FIXED. Właściwości min, max i quant elementu OptionConstraint będą miały wartość double, a 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 pozostałe właściwości nie będą ustawione.
"FIXED_LIST"
Ograniczenie do określonej listy wartości OptionType.FIXED. Właściwość OptionConstraint.list będzie zawierać wartości double, a pozostałe właściwości nie będą ustawione.
"STRING_LIST"
Ograniczenie dotyczące określonej listy wartości OptionType.STRING. Właściwość OptionConstraint.list będzie zawierać wartości DOMString, a pozostałe właściwości nie będą ustawione.
DeviceFilter
Właściwości
-
lokalne
boolean opcjonalne
Zwracaj tylko skanery, które są bezpośrednio podłączone do komputera.
-
Bezpieczny
boolean opcjonalne
Zwracaj tylko skanery, które korzystają z bezpiecznego transportu, np. USB lub TLS.
GetOptionGroupsResponse
Właściwości
-
grupy
OptionGroup[] opcjonalny
Jeśli
resulttoSUCCESS, podaje listę grup opcji w kolejności dostarczonej przez sterownik skanera. -
wynik
Wynik pobierania grup opcji. Jeśli wartość to
SUCCESS, zostanie wypełniona właściwośćgroups. -
scannerHandle
tekst
Ten sam uchwyt skanera, który został przekazany do
getOptionGroups.
GetScannerListResponse
Właściwości
-
wynik
Wynik wyliczenia. Pamiętaj, że wyniki częściowe mogą zostać zwrócone, nawet jeśli wskazuje to na błąd.
-
skanery
Lista skanerów, które pasują do podanego
DeviceFilter(może być pusta).
OpenScannerResponse
Właściwości
-
Opcje
object opcjonalny
Jeśli
resulttoSUCCESS, udostępnia mapowanie klucz-wartość, gdzie klucz to opcja dotycząca urządzenia, a wartość to instancjaScannerOption. -
wynik
Wynik otwarcia skanera. Jeśli wartość to
SUCCESS, zostaną wypełnione właściwościscannerHandleioptions. -
scannerHandle
ciąg znaków opcjonalny
Jeśli
resulttoSUCCESS, uchwyt do skanera, którego można używać do dalszych operacji. -
scannerId
tekst
Identyfikator skanera przekazany do
openScanner().
OperationResult
Typ wyliczeniowy wskazujący wynik każdej operacji.
Typ wyliczeniowy
"UNKNOWN"
Wystąpił nieznany lub ogólny błąd.
"SUCCESS"
Operacja się powiodła.
"UNSUPPORTED"
Operacja nie jest obsługiwana.
"CANCELLED"
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ść jest nieprawidłowym typem danych dla opcji podstawowej.
"EOF"
Brak dostępnych danych.
"ADF_JAMMED"
Podajnik dokumentów jest zablokowany.
"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 innym miejscu niż aplikacja wywołująca.
OptionConstraint
Właściwości
-
lista
string[] | number[] opcjonalne
-
maksimum
number optional
-
min
number optional
-
quant
number optional
-
typ
OptionGroup
Właściwości
-
członkowie
string[]
Tablica nazw opcji w kolejności podanej przez kierowcę.
-
tytuł
tekst
Podaje tytuł do wydrukowania, np. „Opcje geometrii”.
OptionSetting
Właściwości
-
nazwa
tekst
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ść, którą należy ustawić. Pozostaw to pole puste, aby poprosić o automatyczne ustawienie opcji, które mają włączone
autoSettable. Typ danych podany dlavaluemusi być zgodny ztype.
OptionType
Typ danych opcji.
Typ wyliczeniowy
"UNKNOWN"
Typ danych opcji jest nieznany. Właściwość value zostanie usunięta.
"BOOL"
Właściwość value będzie mieć wartość truefalse.
"INT"
32-bitowa liczba całkowita ze znakiem. Właściwość value będzie mieć typ long lub long[], w zależności od tego, czy opcja przyjmuje więcej niż 1 wartość.
"FIXED"
Liczba zmiennoprzecinkowa podwójnej precyzji z zakresu od -32768 do 32767,9999 o rozdzielczości 1/65535. Właściwość value będzie mieć typ double lub double[] w zależności od tego, czy opcja przyjmuje więcej niż 1 wartość. Wartości typu Double, których nie można dokładnie przedstawić, zostaną zaokrąglone do dostępnego zakresu i precyzji.
"STRING"
Ciąg dowolnych bajtów z wyjątkiem 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 efekt uboczny w sterowniku skanera. Na przykład opcja typu przycisk 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 on uwzględniony ze względu na zgodność, ale zwykle nie jest zwracany w wartościach ScannerOption. Użyj getOptionGroups(), aby pobrać listę grup z opcjami członków.
OptionUnit
Wskazuje typ danych dla ScannerOption.unit.
Typ wyliczeniowy
"UNITLESS"
Wartość jest liczbą bez jednostki. Może to być na przykład wartość progowa.
"PIXEL"
Wartość jest liczbą 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 wyrażona w procentach, np. jasność.
"MICROSECOND"
Wartość jest mierzona w mikrosekundach, np. czas ekspozycji.
ReadScanDataResponse
Właściwości
-
dane
ArrayBuffer opcjonalny
Jeśli
resulttoSUCCESS, zawiera następny fragment danych zeskanowanego obrazu. JeśliresulttoEOF, zawiera ostatni fragment zeskanowanych danych obrazu. -
estimatedCompletion
number optional
Jeśli
resulttoSUCCESS, szacunkowa ilość danych skanowania dostarczonych do tej pory, w zakresie od 0 do 100. -
zadanie
tekst
Podaje uchwyt zadania przekazany do
readScanData(). -
wynik
Wynik odczytu danych. Jeśli wartość to
SUCCESS,datazawiera następny (być może o zerowej długości) fragment danych obrazu, który jest gotowy do odczytu. Jeśli wartość toEOF,datazawiera ostatni fragment danych obrazu.
ScannerInfo
Właściwości
-
connectionType
Wskazuje, jak skaner jest podłączony do komputera.
-
deviceUuid
tekst
Do dopasowywania do innych wpisów
ScannerInfo, które wskazują na to samo urządzenie fizyczne. -
imageFormats
string[]
Tablica typów MIME, o które można poprosić w przypadku zwróconych skanów.
-
producent
tekst
Producent skanera.
-
model
tekst
Model skanera, jeśli jest dostępny, lub ogólny opis.
-
nazwa
tekst
Zrozumiała dla człowieka nazwa skanera, która będzie wyświetlana w interfejsie.
-
protocolType
tekst
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 głównie wtedy, gdy użytkownik może wybrać protokół, jeśli urządzenie obsługuje ich kilka.
-
scannerId
tekst
Identyfikator konkretnego skanera.
-
Bezpieczny
wartość logiczna
Jeśli ma wartość „true”, transport połączenia skanera nie może zostać przechwycony 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 opcjonalne
Definiuje
OptionConstraintw bieżącej opcji skanera. -
opis
tekst
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ść
valuenie zostanie ustawiona. -
isAdvanced
wartość logiczna
Wskazuje, że interfejs nie powinien domyślnie wyświetlać tej opcji.
-
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
Jeśli ma wartość Prawda, jest emulowany przez sterownik skanera.
-
nazwa
tekst
Nazwa opcji zawierająca małe litery ASCII, cyfry i myślniki. Znaki diakrytyczne są niedozwolone.
-
tytuł
tekst
Drukowalny jednowierszowy tytuł.
-
typ
Typ danych zawarty we właściwości
value, który jest wymagany do ustawienia tej opcji. -
Jednostka
Jednostka miary 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
type.
ScanOptions
Właściwości
-
maxImages
number optional
Dozwolona liczba zeskanowanych obrazów. Wartość domyślna to 1.
-
mimeTypes
string[] opcjonalne
Typy MIME akceptowane przez element wywołujący.
ScanResults
Właściwości
-
dataUrls
string[]
Tablica adresów URL obrazów danych w formie, którą można przekazać jako wartość „src” do tagu obrazu.
-
mimeType
tekst
Typ MIME elementu
dataUrls.
SetOptionResult
Właściwości
-
nazwa
tekst
Wskazuje nazwę ustawionej opcji.
-
wynik
Wskazuje wynik ustawienia opcji.
SetOptionsResponse
Właściwości
-
Opcje
object opcjonalny
Zaktualizowane mapowanie klucz-wartość z nazw opcji na wartości
ScannerOptionzawierające nową konfigurację po próbie ustawienia wszystkich podanych opcji. Ma taką samą strukturę jak właściwośćoptionswOpenScannerResponse.Ta właściwość zostanie ustawiona, nawet jeśli niektóre opcje nie zostały ustawione, ale zostanie usunięta, jeśli nie uda się pobrać zaktualizowanej konfiguracji (np. jeśli skaner zostanie odłączony w trakcie skanowania).
-
wyniki
Tablica wyników, po jednym dla każdego przekazanego elementu
OptionSetting. -
scannerHandle
tekst
Zapewnia uchwyt skanera przekazany do
setOptions().
StartScanOptions
Właściwości
-
format
tekst
Określa typ MIME, w którym mają być zwracane zeskanowane dane.
-
maxReadSize
number optional
Jeśli podano wartość inną niż 0, ogranicza maksymalną liczbę zeskanowanych bajtów zwracanych w jednej odpowiedzi
readScanDatado 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ć tak duży jak cały zeskanowany obraz.
StartScanResponse
Właściwości
-
zadanie
ciąg znaków opcjonalny
Jeśli
resulttoSUCCESS, udostępnia uchwyt, którego można użyć do odczytu danych skanowania lub anulowania zadania. -
wynik
Wynik rozpoczęcia skanowania. Jeśli wartość to
SUCCESS, zostanie wypełniona właściwośćjob. -
scannerHandle
tekst
Udostępnia ten sam uchwyt skanera, który został przekazany do
startScan().
Metody
cancelScan()
browser.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
Anuluje rozpoczęte skanowanie i zwraca obiekt Promise, który rozwiązuje się z obiektem CancelScanResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
Parametry
-
zadanie
tekst
Uchwyt aktywnego zadania skanowania zwrócony wcześniej przez wywołanie funkcji
startScan.
Zwroty
-
Promise<CancelScanResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem.
closeScanner()
browser.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
Zamyka skaner z przekazanym uchwytem i zwraca obiekt Promise, który rozwiązuje się z obiektem CloseScannerResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Nawet jeśli odpowiedź nie jest prawidłowa, podany uchwyt staje się nieprawidłowy i nie należy go używać do dalszych operacji.
Parametry
-
scannerHandle
tekst
Określa uchwyt otwartego skanera, który został wcześniej zwrócony przez wywołanie funkcji
openScanner.
Zwroty
-
Promise<CloseScannerResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem.
getOptionGroups()
browser.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
Pobiera nazwy grup i opcje członków ze skanera otwartego wcześniej przez openScanner. Ta metoda zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu GetOptionGroupsResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.
Parametry
-
scannerHandle
tekst
Uchwyt otwartego skanera zwrócony przez wywołanie funkcji
openScanner.
Zwroty
-
Promise<GetOptionGroupsResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem.
getScannerList()
browser.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
Pobiera listę dostępnych skanerów i zwraca obiekt Promise, który rozwiązuje się z obiektem GetScannerListResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.
Parametry
-
filtr
DeviceFilterwskazujący, które typy skanerów powinny zostać zwrócone.
Zwroty
-
Promise<GetScannerListResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem i listą skanerów.
openScanner()
browser.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Otwiera skaner z wyłącznym dostępem i zwraca obiekt Promise, który rozwiązuje się z obiektem OpenScannerResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.
Parametry
-
scannerId
tekst
Identyfikator skanera, który ma zostać otwarty. Ta wartość jest zwracana z poprzedniego wywołania funkcji
getScannerList.
Zwroty
-
Promise<OpenScannerResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem.
readScanData()
browser.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
Odczytuje następny fragment dostępnych danych obrazu z aktywnego uchwytu zadania i zwraca obiekt Promise, który rozwiązuje się z obiektem ReadScanDataResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
**Uwaga:**prawidłowy wynik odpowiedzi to SUCCESS z elementem data o zerowej długości. Oznacza to, że skaner nadal działa, ale nie ma jeszcze gotowych dodatkowych danych. Osoba dzwoniąca powinna odczekać chwilę i spróbować ponownie.
Po zakończeniu zadania skanowania odpowiedź będzie miała wartość wyniku EOF. Ta odpowiedź może zawierać końcowy element data o wartości innej niż 0.
Parametry
-
zadanie
tekst
Uchwyt aktywnego zadania zwrócony wcześniej przez
startScan.
Zwroty
-
Promise<ReadScanDataResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem.
scan()
browser.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
Skanuje dokument i zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu ScanResults. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.
Parametry
-
Opcje
Obiekt zawierający parametry skanowania.
Zwroty
-
Promise<ScanResults>
Chrome 96 lub nowsza wersja browser.* od Chrome 148Zwraca obiekt Promise, który rozwiązuje się z wynikami skanowania.
setOptions()
browser.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
Ustawia opcje określonego skanera i zwraca obiekt Promise, który rozwiązuje się z obiektem SetOptionsResponse zawierającym 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
tekst
Uchwyt skanera, dla którego chcesz ustawić opcje. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji
openScanner. -
Opcje
Lista obiektów
OptionSetting, które mają zostać zastosowane do skanera.
Zwroty
-
Promise<SetOptionsResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem.
startScan()
browser.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Rozpoczyna skanowanie na określonym skanerze i zwraca obiekt Promise, który rozwiązuje się z 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, aby odczytać dane skanowania lub anulować skanowanie.
Parametry
-
scannerHandle
tekst
Uchwyt otwartego skanera. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji
openScanner. -
Opcje
Obiekt
StartScanOptionswskazujący opcje, które mają być używane podczas skanowania. WłaściwośćStartScanOptions.formatmusi pasować do jednego z wpisów zwróconych wScannerInfoskanera.
Zwroty
-
Promise<StartScanResponse>
Zwraca obiekt Promise, który rozwiązuje się z wynikiem.