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
documentScanDostępność
Pojęcia i zastosowanie
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 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 działają 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 wywołują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 zarys 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ć od siebie 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 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ść opcji 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
OptionSettingdo 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 opcji, dlatego może być konieczne powtórzenie tych kroków kilka razy.
Skanowanie
Utwórz obiekt
StartScanOptionsi przekaż go do funkcjistartScan(). Zwraca obietnicę, która jest realizowana z wartościąStartScanResponse. Jego właściwośćjobto uchwyt, którego użyjesz do odczytania 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śćresultma wartośćSUCCESS, a właściwośćdatazawieraArrayBufferz częścią skanu. Pamiętaj, żeestimatedCompletionzawiera szacunkowy odsetek łącznej ilości danych, które zostały dotychczas dostarczone.Powtarzaj poprzedni krok, aż właściwość
resultbędzie równaEOFlub wystąpi błąd.
Gdy skanowanie dobiegnie końca, wywołaj funkcję
closeScanner() z uchwytem skanera zapisanym w kroku 3. Zwraca obietnicę, która jest spełniana z wartością CloseScannerResponse. Wywołanie funkcji Calling
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 typu.
Większość z nich zawiera właściwość result, której wartość jest elementem zbioru 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 (pobierany 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ą ScannerOption.
Struktura wygląda zwykle tak:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Wyobraź sobie skaner, który zwraca opcje o nazwach „source” i „resolution”. Struktura zwróconego obiektu options będzie podobna do tej z poniższego przykładu. 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 pobrać te grupy, wywołując funkcję getOptionGroups(). Zwraca to obiekt 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. W razie potrzeby 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 jako 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.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. Dzwoniący powinien poczekać chwilę i ponownie spróbować wysłać żądanie. Inne wartości wyniku 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 usługi 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ć long wartości, a pozostałe właściwości nie będą ustawione.
„FIXED_LIST”
Ograniczenie dotyczące konkretnej listy wartości OptionType.FIXED. Właściwość OptionConstraint.list będzie zawierać double wartości, a pozostałe właściwości nie będą ustawione.
„STRING_LIST”
Ograniczenie dotyczące konkretnej listy wartości OptionType.STRING. Właściwość OptionConstraint.list będzie zawierać DOMString wartości, a pozostałe właściwości nie będą ustawione.
DeviceFilter
Właściwości
-
lokalne
wartość logiczna opcjonalna
Zwraca tylko skanery podłączone bezpośrednio do komputera.
-
Bezpieczny
wartość logiczna opcjonalna
Zwracaj tylko skanery, które korzystają z bezpiecznego transportu, np. USB lub TLS.
GetOptionGroupsResponse
Właściwości
-
grupy
OptionGroup[] opcjonalny
Jeśli
resultma wartośćSUCCESS, podaje 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 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
resultma 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ściscannerHandleioptions. -
scannerHandle
ciąg znaków opcjonalny
Jeśli wartość
resulttoSUCCESS, 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 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 dokoń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 ustawienia, aby poprosić o automatyczne ustawienie opcji, które mają włączoną funkcję
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 cofnięta.
„BOOL”
Właściwość value będzie miała wartość truefalse.
„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 precyzji.
„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 koloru.
„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ść
resulttoSUCCESS, zawiera kolejny fragment danych zeskanowanego obrazu. Jeśliresultma wartośćEOF, zawiera ostatni fragment danych zeskanowanego obrazu. -
estimatedCompletion
number opcjonalny
Jeśli wartość
resulttoSUCCESS, 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, todatazawiera następny (być może pusty) fragment danych obrazu, który jest gotowy do odczytu. Jeśli jego wartość toEOF,datazawiera 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 wtedy, 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ę, np. TLS lub USB.
ScannerOption
Właściwości
-
możliwość konfiguracji,
Wskazuje, czy i jak można zmienić opcję.
-
ograniczenie
OptionConstraint opcjonalny
Definiuje
OptionConstraintw 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ść
valuenie 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 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 (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[] opcjonalny
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
Wskazuje nazwę ustawionej opcji.
-
wynik
Wskazuje wynik ustawienia opcji.
SetOptionsResponse
Właściwości
-
Opcje
obiekt opcjonalny
Zaktualizowane mapowanie klucz-wartość od nazw opcji do 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 wtedy, gdy niektóre opcje nie zostały ustawione, ale zostanie usunięta, 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 ona maksymalną liczbę zeskanowanych bajtów zwracanych w jednej odpowiedzi
readScanData. Najmniejsza dozwolona wartość to 32768 (32 KB). Jeśli ta właściwość nie jest określona, rozmiar zwracanego fragmentu może być równy rozmiarowi całego zeskanowanego obrazu.
StartScanResponse
Właściwości
-
zadanie
ciąg znaków opcjonalny
Jeśli
resultma 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 parametru to
SUCCESS, zostanie wypełniona właściwośćjob. -
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>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem.
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>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem.
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 przez obiekt GetOptionGroupsResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.
Parametry
-
scannerHandle
ciąg znaków
Uchwyt otwartego skanera zwrócony przez wywołanie funkcji
openScanner.
Zwroty
-
Promise<GetOptionGroupsResponse>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem.
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 zostaną do niego przekazane zwrócone dane.
Parametry
-
filtr
Wartość
DeviceFilterwskazująca, które typy skanerów powinny zostać zwrócone.
Zwroty
-
Promise<GetScannerListResponse>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem i listą skanerów.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Otwiera skaner do wyłącznego dostępu i zwraca obietnicę, która jest spełniana przez obiekt OpenScannerResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.
Parametry
-
scannerId
ciąg znaków
Identyfikator skanera, który ma zostać otwarty. Ta wartość jest jedną z wartości zwróconych przez poprzednie wywołanie funkcji
getScannerList.
Zwroty
-
Promise<OpenScannerResponse>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem.
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 rozwiązywana za pomocą obiektu ReadScanDataResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
**Uwaga: prawidłowy wynik odpowiedzi może być 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 zadania skanowania odpowiedź będzie miała 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>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem.
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, zamiast tego zostaną do niego przekazane zwrócone dane.
Parametry
-
Opcje
Obiekt zawierający parametry skanowania.
Zwroty
-
Promise<ScanResults>
Chrome 96 lub nowsza wersjaZwraca obiekt Promise, który jest rozwiązywany z wynikami skanowania.
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
OptionSettingobiektów, które mają być zastosowane do skanera.
Zwroty
-
Promise<SetOptionsResponse>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Rozpoczyna skanowanie na określonym skanerze i zwraca Promise, który jest rozwiązywany za pomocą 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
StartScanOptionswskazujący opcje, które mają być używane podczas skanowania. WłaściwośćStartScanOptions.formatmusi być zgodna z jednym z wpisów zwróconych wScannerInfoskanera.
Zwroty
-
Promise<StartScanResponse>
Zwraca obiekt Promise, który jest rozwiązywany z wynikiem.