Opis
Używaj interfejsu chrome.documentScan
API do wykrywania i pobierania obrazów z dołączonych skanerów dokumentów.
Interfejs Document Scan API umożliwia aplikacjom i rozszerzeniom przeglądanie 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 sposoby skanowania dokumentów. Jeśli Twój przypadek użycia może współpracować z dowolnym skanerem i nie wymaga kontroli nad konfiguracją, użyj metody scan()
. Bardziej złożone przypadki użycia wymagają kombinacji metod, które są obsługiwane tylko w Chrome 124 i nowszych wersjach.
Proste skanowanie
Na potrzeby prostych przypadków użycia, czyli takich, które działają z dowolnym skanerem i nie wymagają kontroli nad konfiguracją, wywołaj funkcję scan()
. Ta metoda pobiera obiekt ScanOptions
i zwraca obietnicę, która rozwiązuje się za pomocą obiektu ScanResults
. Możliwości tej opcji są ograniczone do liczby skanowań i typów MIME, które będą akceptowane przez element wywołujący. Skanowania są zwracane jako adresy URL do wyświetlenia w tagu <img>
interfejsu użytkownika.
Złożone skanowanie
Złożone skanowanie jest wykonywane w 3 fazach opisanych w tej sekcji. Ten schemat nie opisuje każdego argumentu metody ani każdej właściwości zwróconej w odpowiedzi. Ma ono jedynie stanowić ogólny przewodnik po pisaniu kodu skanera.
Kampanie Discovery
Zadzwoń pod numer
getScannerList()
. Dostępne skanery są zwracane w obietnicy, która kończy się ciągiemGetScannerListResponse
.- 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 ze zwróconej tablicy i zapisz wartość jego właściwości
scannerId
.Używaj właściwości poszczególnych obiektów
ScannerInfo
, aby rozróżnić wiele obiektów 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
zawierającą tablicę obsługiwanych typów obrazów.
Konfiguracja skanera
Zadzwoń pod numer
openScanner()
, podając zapisany identyfikator skanera. Zwraca obietnicę, która kończy się wartością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 artykule Pobieranie opcji skanera.
(Opcjonalnie) Jeśli chcesz, aby użytkownik podał wartości opcji skanera, utwórz interfejs. Potrzebne będą opcje skanera udostępnione w poprzednim kroku oraz pobrane przez niego grupy opcji. Więcej informacji znajdziesz w artykule Tworzenie interfejsu użytkownika.
Utwórz tablicę obiektów
OptionSetting
za pomocą wartości automatycznych lub przekazywanych 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 kończy się ciągiemSetOptionsResponse
. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.Zmiana jednej opcji może spowodować zmianę ograniczeń innej opcji, więc konieczne może być powtórzenie tych czynności kilka razy.
Skanowanie
Utwórz obiekt
StartScanOptions
i przekaż go dostartScan()
. Zwraca obietnicę, która kończy się wartościąStartScanResponse
. Właściwośćjob
to nick, którego będziesz używać do odczytu danych skanowania lub anulowania skanowania.Przekaż nick zadania do
readScanData()
. Zwraca obietnicę, która kończy się z obiektemReadScanDataResponse
. Jeśli odczyt danych się powiedzie, jej właściwośćresult
równa sięSUCCESS
, a jej właściwośćdata
zawiera elementArrayBuffer
z częścią skanowania. Uwaga:estimatedCompletion
zawiera szacowany odsetek łącznej liczby dostarczonych do tej pory danych.Powtarzaj poprzedni krok, aż właściwość
result
będzie równa wartościEOF
lub wystąpi błąd.
Po osiągnięciu końca skanowania wywołaj closeScanner()
z nickem skanera zapisanym w kroku 3. Zwraca obietnicę, która kończy się wartością CloseScannerResponse
. Wywołanie cancelScan()
w dowolnym momencie po utworzeniu zadania spowoduje zakończenie skanowania.
Obiekty odpowiedzi
Wszystkie metody zwracają obietnicę, która kończy się obiektem odpowiedzi jakiegoś 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 zawierają wartości, chyba że wartość result
ma określoną wartość. Relacje te są opisane w dokumentacji każdego obiektu odpowiedzi.
Na przykład OpenScannerResponse.scannerHandle
będzie mieć wartość tylko wtedy, gdy OpenScannerResponse.result
równa się SUCCESS
.
Opcje skanera
Opcje skanera znacznie się różnią w zależności od urządzenia. W związku z tym nie można wyświetlić opcji skanera bezpośrednio w interfejsie documentScan API. Aby obejść ten problem, obiekty OpenScannerResponse
(pobierane za pomocą 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 jest mapowaniem par klucz-wartość, w którym klucz jest opcją zależnie od urządzenia, a wartość to wystąpienie obiektu ScannerOption
.
Ogólnie wygląda to tak:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Weźmy na przykład skaner, który zwraca opcje o nazwie „source” (źródło) i „resolution” (rozdzielczość). Struktura zwróconego obiektu options
będzie wyglądać mniej więcej tak jak w przykładzie poniżej. Dla uproszczenia wyświetlane są tylko częściowe odpowiedzi ScannerOption
.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Utwórz interfejs użytkownika
Chociaż korzystanie z tego interfejsu API nie jest wymagane, możesz chcieć, aby użytkownik sam wybierał wartość dla konkretnej opcji. Wymaga to interfejsu użytkownika. Użyj narzędzia OpenScannerResponse
(otwartego przez narzędzie openScanner()
), aby pobrać opcje dołączonego skanera zgodnie z opisem w poprzedniej sekcji.
Niektóre skanery grupują opcje w sposób odpowiedni dla urządzenia. Nie wpływają one na działanie opcji, ale ponieważ te grupy mogą być wspomniane w dokumentacji usługi skanera, powinny być one pokazywane użytkownikowi. Możesz pobrać te grupy, wywołując metodę getOptionGroups()
. Zwraca to obietnicę, która zamyka się z obiektem GetOptionGroupsResponse
. Właściwość groups
zawiera tablicę grup specyficzną dla skanera. Na podstawie informacji z tych grup uporządkuj opcje wyświetlania w obszarze OpenScannerResponse
.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Jak wspomnieliśmy w konfiguracji Scannera, zmiana jednej opcji może zmienić ograniczenia dotyczące innej. Właśnie dlatego setOptionsResponse
(obiekt odpowiedzi dla setOptions()
) zawiera inną właściwość options
. Służy do aktualizowania interfejsu. Następnie w razie potrzeby powtórz te czynności, aż ustawisz wszystkie opcje.
Ustawianie opcji skanera
Ustaw opcje skanera, przekazując do setOptions()
tablicę obiektów OptionSetting
. Przykład znajduje się w sekcji Skanowanie strony o rozmiarze 1 literowym.
Przykłady
Pobieranie strony jako obiektu blob
W tym przykładzie pokazujemy, jak pobrać stronę ze skanera w postaci obiektu blob, oraz pokazujemy użycie właściwości startScan()
i readScanData()
z użyciem 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" });
}
Skanuj stronę w formacie 1 literowym
Ten przykład pokazuje, jak wybrać skaner, ustawić jego opcje i go otworzyć. Następnie pobiera zawartość pojedynczej strony i zamyka skaner. Ten proces demonstruje użycie getScannerList()
, openScanner()
, setOptions()
i closeScanner()
. 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 już wspomnieliśmy, wyświetlenie użytkownikowi opcji konfiguracji skanera wymaga wywołania getOptionGroups()
oprócz opcji skanera zwracanych w wyniku wywołania openScanner()
. Dzięki temu opcje będą widoczne dla użytkowników z grup utworzonych 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
string,
Udostępnia ten sam nick, który został przekazany do
cancelScan()
. -
wynik
Wynik anulowania skanowania backendu. Jeśli wynik to
OperationResult.SUCCESS
lubOperationResult.CANCELLED
, skanowanie zostało anulowane, a skaner jest gotowy do rozpoczęcia nowego skanowania. Jeśli wynikiem jestOperationResult.DEVICE_BUSY
, skaner nadal przetwarza żądanie anulowania. Rozmówca powinien poczekać chwilę i spróbować ponownie wysłać żądanie. Inne wartości wyników wskazują trwały błąd, którego nie należy powtarzać.
CloseScannerResponse
Właściwości
-
wynik
Wynik zamknięcia skanera. Nawet jeśli wartością inną niż
SUCCESS
, nick będzie nieprawidłowy i nie należy go używać w kolejnych operacjach. -
scannerHandle
string,
Ten sam uchwyt skanera, który został przekazany do
closeScanner
.
Configurability
sposób zmiany opcji;
Typ wyliczeniowy
"NOT_CONFIGURABLE"
Ta opcja jest tylko do odczytu.
"SOFTWARE_CONFIGURABLE"
Tę opcję można ustawić w oprogramowaniu.
"HARDWARE_CONFIGURABLE"
Tę opcję można ustawić, przełączając lub naciskając przycisk na skanerze.
ConnectionType
Wskazuje sposób podłączenia skanera do komputera.
Typ wyliczeniowy
ConstraintType
Typ danych ograniczenia reprezentowanego przez OptionConstraint
.
Typ wyliczeniowy
"INT_RANGE"
Ograniczenie dotyczące zakresu OptionType.INT
wartości. Właściwości min
, max
i quant
obiektu OptionConstraint
będą miały wartość long
, a jego właściwość list
zostanie nieskonfigurowana.
"FIXED_RANGE"
Ograniczenie zakresu wartości OptionType.FIXED
. Właściwości min
, max
i quant
obiektu OptionConstraint
będą miały wartość double
, a jej właściwość list
zostanie nieskonfigurowana.
"INT_LIST"
Ograniczenie na określonej liście 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ą skonfigurowane.
"FIXED_LIST"
Ograniczenie na określonej liście 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ą skonfigurowane.
"STRING_LIST"
Ograniczenie na określonej liście 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ą skonfigurowane.
DeviceFilter
Właściwości
-
lokalne
wartość logiczna opcjonalna
Zwróć tylko te skanery, które są bezpośrednio podłączone do komputera.
-
Bezpieczny
wartość logiczna opcjonalna
Zwracaj tylko te skanery, które korzystają z bezpiecznego przesyłania, takiego jak USB lub TLS.
GetOptionGroupsResponse
Właściwości
-
grupy
OptionGroup[] opcjonalnie
Jeśli
result
toSUCCESS
, udostępnia listę grup opcji w kolejności podanej przez sterownik skanera. -
wynik
Wynik pobierania grup opcji. Jeśli wartością jest
SUCCESS
, wypełniona zostanie właściwośćgroups
. -
scannerHandle
string,
Ten sam uchwyt skanera, który został przekazany do
getOptionGroups
.
GetScannerListResponse
Właściwości
-
wynik
Wynik wyliczenia. Pamiętaj, że nawet jeśli oznacza to błąd, mogą zostać zwrócone częściowe wyniki.
-
skanery
Prawdopodobnie pusta lista skanerów pasujących do podanego
DeviceFilter
.
OpenScannerResponse
Właściwości
-
Opcje
obiekt opcjonalnie
Jeśli
result
toSUCCESS
, udostępnia mapowanie par klucz-wartość, w którym klucz jest opcją zależną od urządzenia, a wartością jest wystąpienie elementuScannerOption
. -
wynik
Wynik uruchomienia skanera. Jeśli wartością jest
SUCCESS
, wypełnione zostaną właściwościscannerHandle
ioptions
. -
scannerHandle
ciąg znaków opcjonalny
Jeśli
result
toSUCCESS
, jest to uchwyt skanera, który może służyć do dalszych operacji. -
scannerId
string,
Identyfikator skanera przekazany do
openScanner()
.
OperationResult
Wyliczenie, które wskazuje wynik każdej operacji.
Typ wyliczeniowy
„UNKNOWN”
Wystąpił nieznany lub ogólny błąd.
"SUCCESS"
Operacja powiodła się.
"UNSUPPORTED"
Ta operacja nie jest obsługiwana.
"CANCELLED"
operacja została anulowana.
„DEVICE_BUSY”
Urządzenie jest zajęte.
„NIEPRAWIDŁOWE”
Dane lub argument przekazany do metody są nieprawidłowe.
"WRONG_TYPE"
Podana wartość to nieprawidłowy typ danych dla opcji bazowej.
"EOF"
Nie ma więcej danych.
"ADF_JAMMED"
Podajnik dokumentów się zaciął.
"ADF_EMPTY"
Podajnik dokumentów jest pusty.
"COVER_OPEN"
Pokrywa jest otwarta.
„IO_ERROR”
Podczas komunikacji z urządzeniem wystąpił błąd.
"ACCESS_DENIED"
Urządzenie wymaga uwierzytelnienia.
"NO_MEMORY"
Chromebook ma za mało pamięci, aby ukończyć operację.
„UNREACHABLE”
Urządzenie jest nieosiągalne.
„MISSING”
Urządzenie jest odłączone.
„INTERNAL_ERROR”
Wystąpił błąd nie tylko w aplikacji wywołującej.
OptionConstraint
Właściwości
-
lista
string[] | number[] opcjonalny
-
maksimum
Liczba opcjonalnie
-
min
Liczba opcjonalnie
-
kwanty
Liczba opcjonalnie
-
Niestandardowy typ treści
OptionGroup
Właściwości
-
członkowie
string[]
Tablica nazw opcji w kolejności podanej przez kierowcę.
-
title
string,
Oferuje tytuł do wydrukowania, na przykład „Opcje geometrii”.
OptionSetting
Właściwości
-
nazwa
string,
Wskazuje nazwę opcji do ustawienia.
-
Niestandardowy typ treści
Wskazuje typ danych opcji. Żądany typ danych musi być zgodny z rzeczywistym typem danych opcji bazowej.
-
value
ciąg znaków | liczba | wartość logiczna | liczba[] opcjonalny
Wskazuje wartość do ustawienia. Pozostaw nieskonfigurowane, aby żądać automatycznego ustawienia dla opcji z włączoną funkcją
autoSettable
. Typ danych podany dla funkcjivalue
musi być zgodny z parametremtype
.
OptionType
Typ danych opcji.
Typ wyliczeniowy
"UNKNOWN"
Typ danych tej opcji jest nieznany. Właściwość value
zostanie usunięta.
"BOOL"
value
ma wartość true
false.
"INT"
32-bitowa liczba całkowita ze znakiem. W zależności od tego, czy dana opcja przyjmuje więcej niż 1 wartość, właściwość value
będzie miała długość długą lub długa[].
„NAPRAWO”
Wynik zmiennoprzecinkowy w zakresie -32768-32767.9999 z rozdzielczością 1/65535. W zależności od tego, czy dana opcja przyjmuje więcej niż 1 wartość, właściwość value
będzie miała wartość podwójny lub podwójny[]. Wartości podwójne, których nie można dokładnie przedstawić, zostaną zaokrąglone do dostępnego zakresu i dokładności.
"STRING"
Sekwencja bajtów oprócz NUL ('\0'). Właściwość value
będzie mieć typ DOMString.
"BUTTON"
Opcja tego typu nie ma wartości. Ustawienie tego typu opcji powoduje wystąpienie specyficznego dla niej efektu ubocznego w sterowniku skanera. Na przykład opcja wpisana za pomocą przycisku może zostać użyta przez sterownik skanera, aby umożliwić wybór wartości domyślnych lub przekazać automatycznemu podajnikowi dokumentów informację o przejściu do następnej kartki.
"GROUP"
Opcja grupowania. Brak wartości. Jest to uwzględniane w celu zapewnienia zgodności, ale zwykle nie będzie zwracane w wartościach ScannerOption
. Użyj narzędzia getOptionGroups()
, aby pobrać listę grup z ich opcjami członków.
Typ wyliczeniowy
"BEZ JEDNOSTKI"
Ta wartość jest liczbą bez jednostek. Może to być na przykład próg.
"PIXEL"
Wartość to liczba pikseli, na przykład wymiary skanowania.
"BIT"
Wartość to liczba bitów, na przykład głębia kolorów.
"MM"
Ta wartość jest mierzona w milimetrach, np. w wymiarach skanowania.
"DPI"
Ta wartość jest mierzona w kropkach na cal (np. w rozdzielczości).
"PERCENT"
Wartość to procent, np. jasność.
"MIKROSEKUNDA"
Ta wartość jest mierzona w mikrosekundach, np. czas ekspozycji.
ReadScanDataResponse
Właściwości
-
dane
Tablica SlateBuffer opcjonalna
Jeśli
result
ma wartośćSUCCESS
, zawiera następny fragment danych obrazu. Jeśliresult
toEOF
, zawiera ostatni fragment danych zeskanowanego obrazu. -
estimatedCompletion
Liczba opcjonalnie
Jeśli
result
ma wartośćSUCCESS
, to szacowana ilość wszystkich danych skanowania dostarczonych do tej pory (z zakresu od 0 do 100). -
zadanie
string,
Podaje nick zadania przekazany do
readScanData()
. -
wynik
Wynik odczytu danych. Jeśli jego wartość to
SUCCESS
,data
zawiera następny (prawdopodobnie o zerowej długości) fragment danych zdjęcia, który jest gotowy do odczytania. Jeśli jego wartością jestEOF
,data
zawiera ostatni fragment danych obrazu.
ScannerInfo
Właściwości
-
connectionType
Wskazuje sposób podłączenia skanera do komputera.
-
deviceUuid
string,
Do porównywania z innymi wpisami
ScannerInfo
, które wskazują na to samo urządzenie fizyczne. -
imageFormats
string[]
Tablica typów MIME, których można żądać w przypadku zwracanych skanowań.
-
producent
string,
Producent skanera.
-
model
string,
Model skanera (jeśli jest dostępny) lub ogólny opis.
-
nazwa
string,
Zrozumiała dla człowieka nazwa skanera, która będzie wyświetlana w interfejsie.
-
protocolType
string,
Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera (np. Mopria, WSD lub epsonds). Przydaje się to głównie do umożliwienia użytkownikowi wyboru protokołów, jeśli urządzenie obsługuje wiele protokołów.
-
scannerId
string,
Identyfikator konkretnego skanera.
-
Bezpieczny
boolean
Jeśli ma wartość prawda, pasywny detektor (np. TLS lub USB) nie może przechwycić danych połączenia ze skanerem.
ScannerOption
Właściwości
-
możliwość konfiguracji
Wskazuje, czy i jak można zmienić tę opcję.
-
ograniczenie
OptionConstraint opcjonalnie
Określa
OptionConstraint
w bieżącej opcji skanera. -
opis
string,
Dłuższy opis opcji.
-
isActive
boolean
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
boolean
Wskazuje, że domyślnie interfejs nie powinien wyświetlać tej opcji.
-
isAutoSettable
boolean
Może być ustawiane automatycznie przez sterownik skanera.
-
isDetectable
boolean
Oznacza, że tę opcję można wykryć za pomocą oprogramowania.
-
isEmulated
boolean
Jeśli ma wartość prawda, emulacja przez sterownik skanera.
-
nazwa
string,
Nazwa opcji zawierająca małe litery, cyfry i łączniki ASCII. Znaki diakrytyczne są niedozwolone.
-
title
string,
Jednowierszowy tytuł do wydrukowania.
-
Niestandardowy typ treści
Typ danych zawarty w usłudze
value
– wymagany do ustawienia tej opcji. -
Jednostka
Jednostka miary danej opcji.
-
value
ciąg znaków | liczba | wartość logiczna | liczba[] opcjonalny
Bieżąca wartość opcji (jeśli ma znaczenie). Pamiętaj, że typ danych tej usługi musi odpowiadać typowi danych określonemu w polu
type
.
ScanOptions
Właściwości
-
maxImages
Liczba opcjonalnie
Liczba dozwolonych zeskanowanych obrazów. Wartość domyślna to 1.
-
mimeTypes
string[] opcjonalny
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
string,
Typ MIME elementu
dataUrls
.
SetOptionResult
Właściwości
-
nazwa
string,
Wskazuje nazwę ustawionej opcji.
-
wynik
Wskazuje wynik ustawienia opcji.
SetOptionsResponse
Właściwości
-
Opcje
obiekt opcjonalnie
Po próbie ustawienia wszystkich podanych opcji zaktualizowane mapowanie par klucz-wartość z nazw opcji na wartości
ScannerOption
zawierające nową konfigurację. Ma tę samą strukturę co właściwośćoptions
wOpenScannerResponse
.Ta właściwość będzie ustawiona nawet wtedy, gdy niektóre opcje nie zostały skonfigurowane, ale nie będzie ona ustawiona, jeśli nie uda się pobrać zaktualizowanej konfiguracji (np. jeśli skaner jest odłączony w trakcie skanowania).
-
wyniki
Tablica wyników, po jednym dla każdego przekazanego elementu
OptionSetting
. -
scannerHandle
string,
Podaje uchwyt skanera przekazany do
setOptions()
.
StartScanOptions
Właściwości
-
reklamy
string,
Określa typ MIME, w którym mają być zwracane zeskanowane dane.
-
maxReadSize
Liczba opcjonalnie
Jeśli określona wartość jest inna niż 0, ogranicza maksymalną liczbę przeskanowanych bajtów zwróconych w pojedynczej odpowiedzi
readScanData
na tę wartość. Najmniejsza dozwolona wartość to 32 768 (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
result
ma wartośćSUCCESS
, podaje nick, który może służyć do odczytu danych skanowania lub anulowania zadania. -
wynik
Wynik uruchomienia skanowania. Jeśli wartością jest
SUCCESS
, wypełniona zostanie właściwośćjob
. -
scannerHandle
string,
Udostępnia ten sam uchwyt skanera, który został przekazany do
startScan()
.
Metody
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
Anuluje rozpoczęte skanowanie i zwraca obietnicę, która kończy się z obiektem CancelScanResponse
. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany.
Parametry
-
zadanie
string,
Nick aktywnego zadania skanowania, który został wcześniej zwrócony przez wywołanie do
startScan
. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: CancelScanResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<CancelScanResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
Zamyka skaner z przekazanym uchwytem i zwraca obietnicę, która kończy się obiektem CloseScannerResponse
. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany. Nawet jeśli odpowiedź się nie powiedzie, podany nick staje się nieprawidłowy i nie należy go używać w kolejnych operacjach.
Parametry
-
scannerHandle
string,
Określa uchwyt otwartego skanera, który został wcześniej zwrócony w wyniku wywołania
openScanner
. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: CloseScannerResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<CloseScannerResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
Pobiera nazwy grup i opcje członków ze skanera otwartego wcześniej przez openScanner
. Ta metoda zwraca obietnicę, która zwraca wartość z obiektem GetOptionGroupsResponse
. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane są do niej zwrócone dane.
Parametry
-
scannerHandle
string,
Uchwyt otwartego skanera zwróconego w wyniku wywołania
openScanner
. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: GetOptionGroupsResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<GetOptionGroupsResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
Pobiera listę dostępnych skanerów i zwraca obietnicę, która rozwiązuje się za pomocą obiektu GetScannerListResponse
. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane są do niej zwrócone dane.
Parametry
-
filtr
Wartość
DeviceFilter
wskazująca, które skanery należy zwrócić. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: GetScannerListResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<GetScannerListResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
Otwiera skaner z dostępem na wyłączność i zwraca obietnicę, która kończy się obiektem OpenScannerResponse
. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane są do niej zwrócone dane.
Parametry
-
scannerId
string,
Identyfikator skanera, który ma zostać otwarty. Ta wartość jest zwrócona z poprzedniego wywołania funkcji
getScannerList
. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: OpenScannerResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<OpenScannerResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
Odczytuje następny fragment dostępnych danych obrazu z aktywnego uchwytu zadania i zwraca obietnicę, która kończy się z obiektem ReadScanDataResponse
. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany.
**Uwaga:**wynik odpowiedzi może mieć wartość SUCCESS
z elementem data
o zerowej długości. Oznacza to, że skaner nadal działa, ale nie ma jeszcze gotowych danych. Rozmówca powinien poczekać chwilę i spróbować ponownie.
Po zakończeniu zadania skanowania odpowiedź będzie miała wartość EOF
. Ta odpowiedź może zawierać ostateczną wartość użytkownika data
inną niż 0.
Parametry
-
zadanie
string,
Aktywny uchwyt zadania zwrócony wcześniej z
startScan
. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: ReadScanDataResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<ReadScanDataResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Skanuje dokumenty i zwraca obietnicę, która zostaje rozpoznana jako obiekt ScanResults
. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane dane są do niej przekazywane.
Parametry
-
Opcje
Obiekt zawierający parametry skanowania.
-
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(result: ScanResults) => void
-
wynik
-
Zwroty
-
Promise<ScanResults>
Chrome 96 i nowsze wersjeObietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
Ustawia opcje na wskazanym 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
. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany.
Parametry
-
scannerHandle
string,
Uchwyt skanera, za pomocą którego można ustawić opcje. Powinna to być wartość zwrócona wcześniej z wywołania funkcji
openScanner
. -
Opcje
Lista
OptionSetting
obiektów, które mają zostać zastosowane do skanera. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: SetOptionsResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<SetOptionsResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
Rozpoczyna skanowanie na określonym skanerze i zwraca obietnicę, która kończy się błędem StartScanResponse
. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany. Jeśli wywołanie się udało, odpowiedź zawiera uchwyt zadania, którego można używać w kolejnych wywołaniach do odczytu danych skanowania lub anulowania skanowania.
Parametry
-
scannerHandle
string,
Uchwyt otwartego skanera. Powinna to być wartość zwrócona wcześniej z wywołania funkcji
openScanner
. -
Opcje
Obiekt
StartScanOptions
wskazujący opcje, które mają być używane do skanowania. WłaściwośćStartScanOptions.format
musi być zgodna z jednym z wpisów zwróconych w poluScannerInfo
skanera. -
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(response: StartScanResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<StartScanResponse>
Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.