Opis
Wykrywaj i pobieraj obrazy z podłączonych skanerów dokumentów za pomocą interfejsu API chrome.documentScan
.
Interfejs Document Scan API umożliwia aplikacjom i rozszerzeniom wyświetlanie treść papierowych dokumentów na podłączonym skanerze dokumentów.
Uprawnienia
documentScan
Dostępność
Pojęcia i wykorzystanie
Ten interfejs API obsługuje dwa sposoby skanowania dokumentów. Jeśli Twój przypadek użycia może się sprawdzić
ze skanerem i nie wymaga kontroli nad konfiguracją, użyj
Metoda 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
Do prostych przypadków użycia, czyli tych, które mogą działać z dowolnym skanerem i nie
wymaga kontroli nad konfiguracją, wywołaj scan()
. Ta metoda wymaga
ScanOptions
i zwraca obietnicę realizowaną przez ScanResults
obiektu. Możliwości tej opcji są ograniczone do liczby skanowań i
typy MIME akceptowane przez wywołującego. Skanowania są zwracane jako adresy URL
do wyświetlania w tagu <img>
w interfejsie.
Skomplikowane skanowanie
Złożone skanowanie odbywa się w 3 fazach, jak opisano w tej sekcji. Ten kontur nie opisuje wszystkich argumentów metody ani każdej zwróconej właściwości w odpowiedzi. Jego zadaniem jest tylko zapoznanie się ze skanerem pisma odręcznego w kodzie.
Odkrywanie treści
Zadzwoń pod numer
getScannerList()
. Dostępne skanery to zwracaną w obietnicy, która rozwiązujeGetScannerListResponse
- Obiekt odpowiedzi zawiera tablicę wartości
ScannerInfo
. obiektów. - Tablica może zawierać wiele wpisów dla jednego skanera, jeśli ten skaner obsługuje wiele protokołów i metod połączenia.
- Obiekt odpowiedzi zawiera tablicę wartości
Wybierz skaner ze zwróconej tablicy i zapisz wartość jej
scannerId
.Używanie właściwości poszczególnych obiektów
ScannerInfo
aby odróżnić kilka obiektów w ramach tego samego skanera. Obiekty z ten sam skaner będzie miał tę samą wartość właściwoścideviceUuid
.ScannerInfo
zawiera też właściwośćimageFormats
zawierającą tablicę obsługiwane typy obrazów.
Konfiguracja skanera
Zadzwoń pod numer
openScanner()
, podając identyfikator zapisanego skanera. Zwraca obietnicę realizowaną przezOpenScannerResponse
. Obiekt odpowiedzi zawiera:Usługa w usłudze
scannerHandle
, którą musisz zapisać.Jest to właściwość opcji zawierająca właściwości specyficzne dla skanera, którą którą trzeba ustawić. Więcej informacji znajdziesz w artykule Pobieranie opcji skanera.
(Opcjonalnie) Jeśli musisz podać wartości opcji skanera, stworzyć interfejs użytkownika. Potrzebujesz opcji skanera udostępnionych przez i musisz pobrać grupy opcji podane przez skaner. Więcej informacji znajdziesz w artykule Tworzenie interfejsu.
Utwórz tablicę obiektów
OptionSetting
za pomocą automatyzacji lub wartości przekazywanych przez użytkownika. Więcej informacji znajdziesz w artykule Ustawianie opcji skanera i informacjami o nich.Przekaż tablicę obiektów
OptionSetting
dosetOptions()
, aby ustawić opcje skanera. it zwraca obietnicę rozwiązaną za pomocąSetOptionsResponse
Ten obiekt zawiera zaktualizowana wersja opcji skanera pobranych w kroku 1 skanera konfiguracji.Od zmiany urządzenia może zmienić ograniczenia dla innej opcji, konieczne może być powtórzenie tych kroków.
Skanowanie
Zbuduj obiekt
StartScanOptions
i przekaż go dostartScan()
. Zwraca obietnicę satysfakcjonującą dziękiStartScanResponse
. Jego właściwośćjob
to uchwyt, którego będziesz używać do odczytywania danych skanowania lub anulowania skanowania.Przekaż nick zadania do
readScanData()
. Zwraca ono błąd Obietnica satysfakcjonującaReadScanDataResponse
. Jeśli dane zostały odczytane poprawnie, jego właściwośćresult
równa sięSUCCESS
i jego właściwośćdata
zawieraArrayBuffer
z częścią skanu. Pamiętaj, żeestimatedCompletion
zawiera szacowaną wartość procent całości danych dostarczonych do tej pory.Powtarzaj poprzedni krok, aż właściwość
result
będzie równaEOF
lub wystąpi błąd.
Po zakończeniu skanowania wywołaj
closeScanner()
z uchwytem skanera zapisanym w kroku
3. Zwraca obietnicę rozwiązaną za pomocą
CloseScannerResponse
Łączę
cancelScan()
w dowolnym momencie po utworzeniu zadania zostanie
i zakończ skanowanie.
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 będzie zawierać wartości, chyba że wartość result
ma określoną wartość. Te
są opisane w dokumentacji dla każdego obiektu odpowiedzi.
Na przykład OpenScannerResponse.scannerHandle
ma wartość tylko wtedy, gdy
OpenScannerResponse.result
to SUCCESS
.
Opcje skanera
Opcje skanera znacznie się różnią w zależności od urządzenia. W związku z tym nie można
uwzględnia opcje skanera bezpośrednio w interfejsie documentScan API. Poruszanie się po okolicy
to OpenScannerResponse
(pobrane przy użyciu
openScanner()
) i
SetOptionsResponse
(obiekt odpowiedzi dla funkcji
setOptions()
) zawierają właściwość options
, która jest
z opcjami specyficznymi dla skanera. Każda opcja to mapowanie par klucz-wartość
gdzie klucz jest opcją związaną z konkretnym urządzeniem, a wartością jest wystąpieniem
ScannerOption
Ogólnie struktura wygląda tak:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Wyobraź sobie na przykład skaner, który zwraca opcje o nazwie „source”. oraz
do „rozwiązania”. Struktura zwróconego obiektu options
będzie coś wyglądać
jak w tym przykładzie. Dla uproszczenia tylko częściowa wartość ScannerOption
odpowiedzi.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Tworzenie interfejsu użytkownika
Chociaż nie jest wymagane używanie tego interfejsu API, możesz zdecydować, aby użytkownik wybrał wartość dla
wybierz konkretną opcję. Wymaga to interfejsu użytkownika. Użyj
OpenScannerResponse
(otwarte przez:
openScanner()
), aby pobrać opcje dołączonego
jak opisano w poprzedniej sekcji.
Niektóre skanery grupują opcje w sposób specyficzny dla urządzenia. Nie mają wpływu na opcję
ale skoro o takich grupach można wspominać w usłudze skanera
dokumentacji, takie grupy powinny być widoczne dla użytkownika. Możesz pobrać te
grup, wywołując metodę getOptionGroups()
. Powoduje to zwrócenie
Obietnica satysfakcjonująca
GetOptionGroupsResponse
. Jest groups
zawiera tablicę grup właściwych dla skanera. Skorzystaj z informacji zawartych w dokumencie
w tych grupach, aby uporządkować opcje
OpenScannerResponse
w sieci reklamowej.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Zgodnie z konfiguracją skanera zmiana jednej opcji może zmienić ograniczenia.
w inny sposób. To dlatego
setOptionsResponse
(obiekt odpowiedzi dla funkcji
setOptions()
) zawiera inną usługę options
. Używaj
aby zaktualizować interfejs. W razie potrzeby powtórz to, aż wszystkie opcje
ustawiony.
Ustaw opcje skanera
Ustaw opcje skanera, przekazując tablicę
OptionSetting
obiektów do
setOptions()
Przykład znajdziesz w sekcji Skanowanie strony o rozmiarze jednoliterowym.
Przykłady
Pobieranie strony jako obiektu blob
Ten przykład pokazuje jeden ze sposobów pobrania strony ze skanera jako obiektu blob,
przedstawia użycie atrybutów 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 jedną stronę o rozmiarze liter
Ten przykład pokazuje, jak wybrać skaner, ustawić jego opcje i go otworzyć. it
pobiera zawartość pojedynczej strony i zamyka skaner. Ten proces
pokazuje korzystanie z interfejsów getScannerList()
, openScanner()
, setOptions()
i
closeScanner()
Zawartość strony jest pobierana przez wywołanie metody
funkcję 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 w innym miejscu, wyświetlanie użytkownikowi opcji konfiguracji skanera wymaga
getOptionGroups()
oprócz opcji skanera zwróconych przez
połączenie z numerem openScanner()
. Dzięki temu opcje mogą być widoczne dla użytkowników
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
Zapewnia ten sam nick zadania, 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. Jeśli wynik toOperationResult.DEVICE_BUSY
, skaner nadal przetwarza żądanie anulowania. dzwoniący powinien chwilę odczekać i spróbować ponownie. Inne wartości wyników wskazują 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 wartością
SUCCESS
, nick będzie nieprawidłowy i nie należy go używać w przypadku dalszych operacji. -
scannerHandle
ciąg znaków
Ten sam nick skanera, który został przekazany do
closeScanner
.
Configurability
Jak można zmienić opcję.
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 połączenia skanera z komputerem.
Typ wyliczeniowy
"UNSPECIFIED"
„USB”
"NETWORK"
ConstraintType
Typ danych z ograniczeniem przedstawiony przez OptionConstraint
.
Typ wyliczeniowy
"INT_RANGE"
Ograniczenie dotyczące zakresu OptionType.INT
wartości. Właściwości min
, max
i quant
elementu OptionConstraint
będą miały wartość long
, a jego właściwość list
zostanie nieskonfigurowana.
"FIXED_RANGE"
Ograniczenie zakresu OptionType.FIXED
wartości. Właściwości min
, max
i quant
elementu OptionConstraint
będą miały wartość double
, a jej właściwość list
będzie nieskonfigurowana.
"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 nie będą ustawione.
"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 nie będą ustawione.
"STRING_LIST"
Ograniczenie dotyczące konkretnej listy OptionType.STRING
wartości. 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
Wartość logiczna opcjonalna
Zwracaj tylko te skanery, które są bezpośrednio podłączone do komputera.
-
Bezpieczny
Wartość logiczna opcjonalna
Zwróć tylko te skanery, które korzystają z bezpiecznego przesyłania, np. USB lub TLS.
GetOptionGroupsResponse
Właściwości
-
grupy
OptionGroup[] opcjonalny
Jeśli
result
toSUCCESS
, zobaczysz listę grup opcji w kolejności podanej przez sterownik skanera. -
wynik
Wynik pobierania grup opcji. Jeśli wartość wynosi
SUCCESS
, właściwośćgroups
zostanie uzupełniona. -
scannerHandle
ciąg znaków
Ten sam nick skanera, który został przekazany do
getOptionGroups
.
GetScannerListResponse
Właściwości
-
wynik
Wynik wyliczania. Pamiętaj, że częściowe wyniki mogą zostać zwrócone nawet wtedy, gdy oznacza to błąd.
-
skanery
Prawdopodobnie pusta lista skanerów pasujących do
DeviceFilter
.
OpenScannerResponse
Właściwości
-
Opcje
obiekt opcjonalny
Jeśli
result
toSUCCESS
, udostępnia mapowanie par klucz-wartość, w którym klucz jest opcją specyficzną dla danego urządzenia, a wartością jest wystąpienieScannerOption
. -
wynik
Wynik otwarcia skanera. Jeśli wartość wynosi
SUCCESS
, właściwościscannerHandle
ioptions
będą wypełnione. -
scannerHandle
ciąg znaków opcjonalny
Jeśli
result
toSUCCESS
, to uchwyt skanera, którego można używać do kolejnych operacji. -
scannerId
ciąg znaków
Identyfikator skanera został przekazany na urządzenie
openScanner()
.
OperationResult
Wyliczenie wskazujące wynik każdej operacji.
Typ wyliczeniowy
„UNKNOWN”
Wystąpił nieznany lub ogólny błąd.
"success"
Operacja się powiodła.
"UNSUPPORTED"
Ta operacja nie jest obsługiwana.
„CANCELLED”
Operacja została anulowana.
"DEVICE_BUSY"
Urządzenie jest zajęte.
"NOT"
Dane lub argument przekazane do metody są nieprawidłowe.
"WRONG_TYPE"
Podana wartość ma nieprawidłowy typ danych w przypadku opcji podstawowej.
"EOF"
Nie ma więcej danych.
"ADF_JAMMED"
Podajnik dokumentów się zaciął.
"ADF_EMPTY"
Podajnik dokumentów jest pusty.
"COVER_OPEN"
Płaska pokrywa jest otwarta.
"IO_ERROR"
Podczas komunikacji z urządzeniem wystąpił błąd.
"ACCESS_DENIED"
Urządzenie wymaga uwierzytelnienia.
"NO_MEMORY"
Na Chromebooku jest za mało pamięci, aby ukończyć tę operację.
„UNREACHABLE”
Urządzenie jest nieosiągalne.
"MISSING"
Urządzenie jest odłączone.
"INTERNAL_ERROR"
Wystąpił błąd w innym miejscu niż aplikacja do nawiązywania połączenia.
OptionConstraint
Właściwości
-
lista
string[] | liczba[] opcjonalnie
-
maksimum
liczba opcjonalnie
-
min
liczba opcjonalnie
-
kwantowy
liczba opcjonalnie
-
typ
OptionGroup
Właściwości
-
członkowie
ciąg znaków[]
Tablica nazw opcji w kolejności podanej przez kierowcę.
-
tytuł
ciąg znaków
Umożliwia wydrukowanie tytułu, np. „Opcje geometrii”.
OptionSetting
Właściwości
-
nazwa
ciąg znaków
Wskazuje nazwę opcji, która ma zostać ustawiona.
-
typ
Wskazuje typ danych opcji. Żądany typ danych musi odpowiadać rzeczywistemu typowi danych opcji bazowej.
-
wartość
string | liczba | boolean | liczba[] opcjonalnie
Wskazuje wartość do ustawienia. Pozostaw nieskonfigurowane ustawienie, aby żądać automatycznego ustawienia opcji, które mają włączone ustawienie
autoSettable
. Typ danych podany dla opcjivalue
musi być zgodny z typem danychtype
.
OptionType
Typ danych opcji.
Typ wyliczeniowy
"UNKNOWN"
Typ danych opcji jest nieznany. Właściwość value
zostanie nieskonfigurowana.
"BOOL"
Właściwość value
będzie mieć jedną z wartości true
false.
"INT"
32-bitowa liczba całkowita ze znakiem. Właściwość value
może mieć długie lub długie (long[]) w zależności od tego, czy opcja używa więcej niż 1 wartości.
„FIXED”
Podwójna wartość w zakresie -32768-32767.9999 z rozdzielczością 1/65535. Właściwość value
będzie mieć wartość podwójnej precyzji czy podwójnej precyzji[] w zależności od tego, czy opcja przyjmuje więcej niż jedną wartość. Wartości, których nie można dokładnie przedstawić, są zaokrąglane do dostępnego zakresu i dokładności.
"STRING"
Sekwencja dowolnych bajtów oprócz NUL („\0”). Właściwość value
ma postać DOMString.
"Button"
Opcja tego typu nie ma wartości. Zamiast tego ustawienie tego typu powoduje w sterowniku skanera efekt uboczny związany z daną opcją. Sterownik skanera może na przykład użyć opcji wpisywania przycisku, aby umożliwić wybór wartości domyślnych lub poinformowanie automatycznego podajnika dokumentów o przejściu do następnej kartki.
"GROUP"
Opcja grupowania. Brak wartości. Jest to uwzględniane ze względu na zgodność, ale zwykle nie jest zwracane w wartościach ScannerOption
. Użyj polecenia getOptionGroups()
, aby pobrać listę grup z opcjami członków.
Typ wyliczeniowy
"UNITLESS"
Wartość jest liczbą bez jednostek. Może to być na przykład próg.
"PIXEL"
Wartość to liczba pikseli, np. wymiary skanowania.
"BIT"
Wartość to liczba bitów, np. głębia koloru.
"MM"
Wartość jest mierzona w milimetrach, np. wymiary skanu.
"DPI"
Wartość jest mierzona w kropkach na cal, na przykład rozdzielczość.
"PERCENT"
Wartość to procent, na przykład jasność.
"MICROSECOND"
Wartość jest mierzona w mikrosekundach, np. czas ekspozycji.
ReadScanDataResponse
Właściwości
-
dane
SlateBuffer opcjonalnie
Jeśli
result
ma wartośćSUCCESS
, zawiera następny fragment danych zeskanowanych obrazów. Jeśliresult
ma wartośćEOF
, zawiera ostatni fragment danych zeskanowanego obrazu. -
estimatedCompletion
liczba opcjonalnie
Jeśli
result
toSUCCESS
, oznacza to, jaka część wszystkich danych skanowania została dostarczona do tej pory (w zakresie od 0 do 100). -
zadanie
ciąg znaków
Udostępnia nick zadania przekazany do
readScanData()
. -
wynik
Wynik odczytu danych. Jeśli jego wartość to
SUCCESS
,data
zawiera następny (prawdopodobnie zerowy) fragment danych obrazu, który jest gotowy do odczytu. Jeśli jego wartość toEOF
,data
zawiera ostatni fragment danych obrazu.
ScannerInfo
Właściwości
-
connectionType
Wskazuje sposób połączenia skanera z komputerem.
-
deviceUuid
ciąg znaków
Do porównywania z innymi wpisami
ScannerInfo
, które odnoszą się do tego samego urządzenia fizycznego. -
imageFormats
ciąg znaków[]
Tablica typów MIME, których mogą żądać w przypadku zwracanych skanowań.
-
producent
ciąg znaków
Producent skanera.
-
model
ciąg znaków
Model skanera, jeśli jest dostępny, lub ogólny opis.
-
nazwa
ciąg znaków
Zrozumiała dla człowieka nazwa skanera wyświetlana w interfejsie.
-
protocolType
ciąg znaków
Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera, np. Mopria, WSD lub epsonds. Przydaje się to przede wszystkim wtedy, gdy użytkownik może wybrać protokoły, jeśli urządzenie obsługuje kilka protokołów.
-
scannerId
ciąg znaków
Identyfikator konkretnego skanera.
-
Bezpieczny
wartość logiczna
Jeśli ma wartość true (prawda), transport między skanerem nie może zostać przechwycony przez pasywny detektor, taki jak TLS lub USB.
ScannerOption
Właściwości
-
konfigurowalność
Wskazuje, czy i w jaki sposób można zmienić tę opcję.
-
ograniczenie
OptionConstraint opcjonalny
Definiuje
OptionConstraint
przy obecnej 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ść false (fałsz), właściwość
value
nie zostanie ustawiona. -
isAdvanced
wartość logiczna
Wskazuje, że domyślnie ta opcja nie powinna być wyświetlana w interfejsie.
-
isAutoSettable
wartość logiczna
Może być konfigurowane automatycznie przez sterownik skanera.
-
isDetectable
wartość logiczna
Wskazuje, że tę opcję można wykryć za pomocą oprogramowania.
-
isEmulated
wartość logiczna
Emulowana przez sterownik skanera (jeśli ma wartość prawda).
-
nazwa
ciąg znaków
Nazwa opcji zawierająca małe litery, cyfry i myślniki. Znaki diakrytyczne nie są dozwolone.
-
tytuł
ciąg znaków
Jednowierszowy tytuł do wydrukowania.
-
typ
Typ danych zawarty we właściwości
value
wymagany do ustawienia tej opcji. -
Jednostka
Jednostka miary dla tej opcji.
-
wartość
string | liczba | boolean | liczba[] opcjonalnie
Bieżąca wartość opcji (w stosownych przypadkach). Pamiętaj, że typ danych tej usługi musi odpowiadać typowi danych określonemu w
type
.
ScanOptions
Właściwości
-
maxImages
liczba opcjonalnie
Dozwolona liczba zeskanowanych obrazów. Wartość domyślna to 1.
-
mimeTypes
string[] opcjonalnie
Typy MIME akceptowane przez wywołującego.
ScanResults
Właściwości
-
dataUrls
ciąg znaków[]
Tablica adresów URL obrazów danych w formie, którą można przekazać jako „src” do tagu obrazu.
-
mimeType
ciąg znaków
Typ MIME
dataUrls
.
SetOptionResult
Właściwości
-
nazwa
ciąg znaków
Wskazuje nazwę ustawionej opcji.
-
wynik
Wskazuje wynik ustawienia tej opcji.
SetOptionsResponse
Właściwości
-
Opcje
obiekt opcjonalny
Po próbie ustawienia wszystkich podanych opcji zaktualizowaliśmy mapowanie par klucz-wartość z nazw opcji na wartości
ScannerOption
zawierające nową konfigurację. Ma taką samą strukturę jak właściwośćoptions
wOpenScannerResponse
.Ta właściwość zostanie ustawiona nawet wtedy, gdy niektóre opcje nie zostały ustawione poprawnie, ale nie będzie można jej wyłączyć, jeśli nie uda się pobrać zaktualizowanej konfiguracji (na przykład jeśli skaner jest odłączony w trakcie skanowania).
-
wyniki
Tablica wyników, po jednym dla każdej przekazanej wartości
OptionSetting
. -
scannerHandle
ciąg znaków
Udostępnia uchwyt skanera przekazywany 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
liczba opcjonalnie
Jeśli podasz wartość inną niż 0, ogranicza liczbę skanowanych bajtów zwracanych 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ć równy wielkości całego zeskanowanego obrazu.
StartScanResponse
Właściwości
-
zadanie
ciąg znaków opcjonalny
Jeśli
result
toSUCCESS
, udostępnia uchwyt, którego można używać do odczytu danych skanowania lub anulowania zadania. -
wynik
Wynik rozpoczęcia skanowania. Jeśli wartość wynosi
SUCCESS
, właściwośćjob
zostanie uzupełniona. -
scannerHandle
ciąg znaków
Udostępnia ten sam nick skanera, który został przekazany do urządzenia
startScan()
.
Metody
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
Anuluje rozpoczęte skanowanie i zwraca obietnicę realizowaną przez obiekt CancelScanResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest do niego przekazywany.
Parametry
-
zadanie
ciąg znaków
Uchwyt aktywnego zadania skanowania, który został zwrócony z wywołania
startScan
. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: CancelScanResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<CancelScanResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
Zamyka skaner z przekazanym nickiem i zwraca obietnicę rozwiązaną za pomocą obiektu CloseScannerResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest do niego przekazywany. Nawet jeśli odpowiedź zakończy się niepowodzeniem, podany nick stanie się nieprawidłowy i nie należy go używać do dalszych operacji.
Parametry
-
scannerHandle
ciąg znaków
Określa uchwyt otwartego skanera, który został wcześniej zwrócony z wywołania
openScanner
. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: CloseScannerResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<CloseScannerResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane 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 wcześniej otwartego przez openScanner
. Ta metoda zwraca obietnicę realizowaną przez obiekt GetOptionGroupsResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niej przekazane zwrócone dane.
Parametry
-
scannerHandle
ciąg znaków
Uchwyt otwartego skanera zwrócony z wywołania
openScanner
. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: GetOptionGroupsResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<GetOptionGroupsResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane 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ę rozwiązaną za pomocą obiektu GetScannerListResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niej przekazane zwrócone dane.
Parametry
-
filtr
DeviceFilter
wskazujący, które typy skanerów powinny zostać zwrócone. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: GetScannerListResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<GetScannerListResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
Otwiera skaner zapewniający dostęp na wyłączność i zwraca obietnicę rozwiązaną za pomocą obiektu OpenScannerResponse
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niej przekazane zwrócone dane.
Parametry
-
scannerId
ciąg znaków
Identyfikator skanera, który ma zostać otwarty. Ta wartość to jedna z poprzednich wywołań funkcji
getScannerList
. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: OpenScannerResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<OpenScannerResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane 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ę realizowaną przez obiekt ReadScanDataResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest do niego przekazywany.
**Uwaga:**odpowiedź może zawierać 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 chwilę zaczekać 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
Aktywny uchwyt zadania zwrócony wcześniej z
startScan
. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: ReadScanDataResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<ReadScanDataResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Skanuje dokument i zwraca obietnicę rozwiązaną za pomocą obiektu ScanResults
. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niej przekazane zwrócone dane.
Parametry
-
Opcje
Obiekt zawierający parametry skanowania.
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(result: ScanResults) => void
-
wynik
-
Zwroty
-
Promise<ScanResults>
Chrome w wersji 96 lub nowszej, .Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane 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 wybranym skanerze i zwraca obietnicę realizowaną przez obiekt SetOptionsResponse
zawierający wynik próby ustawienia wszystkich wartości w kolejności przekazanego obiektu OptionSetting
. Jeśli używane jest wywołanie zwrotne, obiekt jest do niego przekazywany.
Parametry
-
scannerHandle
ciąg znaków
Uchwyt skanera, aby ustawić opcje. Powinna to być wartość zwrócona wcześniej z wywołania
openScanner
. -
Opcje
Lista
OptionSetting
obiektów, które mają zostać zastosowane do skanera. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: SetOptionsResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<SetOptionsResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane 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 wybranym skanerze i zwraca obietnicę realizowaną przez StartScanResponse
. Jeśli używane jest wywołanie zwrotne, obiekt jest do niego przekazywany. Jeśli wywołanie zostało wykonane, odpowiedź zawiera uchwyt zadania, którego można używać 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 z wywołania
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. -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(response: StartScanResponse) => void
-
odpowiedź
-
Zwroty
-
Promise<StartScanResponse>
Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.