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 metody skanowania dokumentów. Jeśli Twój przypadek użycia może działać z dowolnym skanerem i nie wymaga kontroli konfiguracji, użyj metody scan(). Bardziej skomplikowane przypadki użycia wymagają połączenia metod, które są obsługiwane tylko w Chrome w wersji 124 i nowszych.
Proste skanowanie
W przypadku prostych zastosowań, czyli takich, które mogą działać z dowolnym skanerem i nie wymagają kontroli konfiguracji, wywołaj scan(). Ta metoda przyjmuje obiekt ScanOptions i zwraca obietnicę, która jest realizowana za pomocą obiektu ScanResults. Możliwości tej opcji są ograniczone do liczby skanów i typów MIME, które będą akceptowane przez dzwoniącego. Skanowania są zwracane jako adresy URL
do wyświetlania w tagu <img> w interfejsie.
Złożone skanowanie
Złożone skanowanie odbywa się w 3 fazach opisanych w tej sekcji. Ten opis nie zawiera wszystkich argumentów metody ani wszystkich właściwości zwracanych w odpowiedzi. Ma ona jedynie stanowić ogólny przewodnik po pisaniu kodu skanera.
Odkrywanie
- Zadzwoń pod numer - getScannerList(). Dostępne skanery są zwracane w obietnicy, która jest realizowana za pomocą- GetScannerListResponse.- Obiekt odpowiedzi zawiera tablicę obiektów ScannerInfo.
- Tablica może zawierać wiele wpisów dla jednego skanera, jeśli obsługuje on wiele protokołów lub metod połączenia.
 
- Obiekt odpowiedzi zawiera tablicę obiektów 
- Wybierz skaner z zwróconej tablicy i zapisz wartość jego właściwości - scannerId.- Użyj właściwości poszczególnych obiektów - ScannerInfo, aby odróżnić wiele obiektów dla tego samego skanera. Obiekty z tego samego skanera będą miały tę samą wartość właściwości- deviceUuid.- 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ść options zawierająca właściwości specyficzne dla skanera, które musisz ustawić. Więcej informacji znajdziesz w artykule Pobieranie opcji skanera. 
 
- (Opcjonalnie) Jeśli chcesz, aby użytkownik podał wartości opcji skanera, utwórz interfejs. Będziesz potrzebować opcji skanera podanych w poprzednim kroku oraz grup opcji udostępnionych przez skaner. Więcej informacji znajdziesz w artykule Tworzenie interfejsu użytkownika. 
- Utwórz tablicę obiektów - OptionSetting, używając wartości podanych przez użytkownika lub uzyskanych programowo. Więcej informacji znajdziesz w artykule Ustawianie opcji skanera.
- Przekaż tablicę obiektów - OptionSettingdo funkcji- setOptions(), aby ustawić opcje skanera. Zwraca Promise, który jest rozwiązywany za pomocą obiektu- SetOptionsResponse. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.- Zmiana jednej opcji może wpłynąć na ograniczenia innej, dlatego może być konieczne powtórzenie tych kroków kilka razy. 
Skanowanie
- Utwórz obiekt - StartScanOptionsi przekaż go do funkcji- startScan(). Zwraca Promise, który jest rozwiązywany za pomocą- StartScanResponse. Jego właściwość- jobto uchwyt, którego będziesz używać do odczytywania danych skanowania lub anulowania skanowania.
- Przekaż uchwyt zadania do funkcji - readScanData(). Zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu- ReadScanDataResponse. Jeśli dane zostały odczytane prawidłowo, właściwość- resultma wartość- SUCCESS, a właściwość- datazawiera- ArrayBufferz częścią skanu. Pamiętaj, że- estimatedCompletionzawiera szacunkowy odsetek łącznej ilości danych, które zostały dotychczas dostarczone.
- Powtarzaj poprzedni krok, aż właściwość - resultbędzie równa- EOFlub wystąpi błąd.
Gdy skanowanie dobiegnie końca, wywołaj funkcję
closeScanner(), używając uchwytu skanera zapisanego w kroku 3. Zwraca obietnicę, która jest realizowana z wartością CloseScannerResponse. Wywołanie funkcji Calling
cancelScan() w dowolnym momencie po utworzeniu zadania spowoduje zakończenie skanowania.
Obiekty odpowiedzi
Wszystkie metody zwracają obietnicę, która jest rozwiązywana za pomocą obiektu odpowiedzi.
Większość z nich zawiera właściwość result, której wartość jest elementem OperationResult. Niektóre właściwości obiektów odpowiedzi
nie będą zawierać wartości, chyba że wartość parametru result będzie określona. Te relacje są opisane w informacjach o poszczególnych obiektach odpowiedzi.
Na przykład parametr OpenScannerResponse.scannerHandle będzie miał wartość tylko wtedy, gdy parametr OpenScannerResponse.result będzie równy SUCCESS.
Opcje skanera
Opcje skanera różnią się znacznie w zależności od urządzenia. W związku z tym nie można odzwierciedlić opcji skanera bezpośrednio w interfejsie documentScan API. Aby to obejść, obiekty OpenScannerResponse (pobrany za pomocą openScanner()) i SetOptionsResponse (obiekt odpowiedzi dla setOptions()) zawierają właściwość options, która jest obiektem zawierającym opcje specyficzne dla skanera. Każda opcja to mapowanie klucz-wartość, w którym klucz jest opcją specyficzną dla urządzenia, a wartość jest instancją elementu ScannerOption.
Struktura zwykle wygląda tak:
{
  "key1": { scannerOptionInstance }
  "key2": { scannerOptionInstance }
}
Wyobraź sobie skaner, który zwraca opcje o nazwach „source” i „resolution”. Struktura zwróconego obiektu options będzie wyglądać podobnie jak w tym przykładzie. Dla uproszczenia wyświetlane są tylko częściowe odpowiedzi ScannerOption.
{
  "source": {
    "name": "source",
    "type": OptionType.STRING,
...
},
  "resolution": {
    "name": "resolution",
    "type": OptionType.INT,
...
  },
...
}
Tworzenie interfejsu użytkownika
Chociaż nie jest to wymagane do korzystania z tego interfejsu API, możesz chcieć, aby użytkownik wybrał wartość dla określonej opcji. Wymaga to interfejsu użytkownika. Użyj ikony
OpenScannerResponse (otwieranej za pomocą ikony
openScanner()), aby pobrać opcje dołączonego skanera zgodnie z opisem w poprzedniej sekcji.
Niektóre skanery grupują opcje w sposób charakterystyczny dla danego urządzenia. Nie mają one wpływu na działanie opcji, ale ponieważ mogą być wymienione w dokumentacji skanera, powinny być widoczne dla użytkownika. Możesz je pobrać, dzwoniąc pod numer getOptionGroups(). Zwraca to Promise, który jest rozwiązywany za pomocą obiektu GetOptionGroupsResponse. Jego właściwość groups zawiera tablicę grup specyficzną dla skanera. Informacje z tych grup służą do porządkowania opcji w OpenScannerResponse.
{
  scannerHandle: "123456",
  result: SUCCESS,
  groups: [
    {
      title: "Standard",
      members: [ "resolution", "mode", "source" ]
    }
  ]
}
Jak wspomnieliśmy w sekcji Konfiguracja skanera, zmiana jednej opcji może wpłynąć na ograniczenia innej opcji. Dlatego setOptionsResponse (obiekt odpowiedzi dla setOptions()) zawiera inną właściwość options. Użyj tego, aby zaktualizować interfejs. Następnie powtarzaj te czynności, aż ustawisz wszystkie opcje.
Ustawianie opcji skanera
Ustaw opcje skanera, przekazując tablicę obiektów OptionSetting do setOptions(). Przykład znajdziesz w sekcji Skanowanie jednej strony w formacie Letter.
Przykłady
Pobieranie strony jako obiektu blob
Ten przykład pokazuje jeden ze sposobów pobierania strony ze skanera w formie obiektu blob i demonstruje użycie znaczników startScan() i readScanData() z wartością OperationResult.
async function pageAsBlob(handle) {
  let response = await chrome.documentScan.startScan(
      handle, {format: "image/jpeg"});
  if (response.result != chrome.documentScan.OperationResult.SUCCESS) {
    return null;
  }
  const job = response.job;
  let imgParts = [];
  response = await chrome.documentScan.readScanData(job);
  while (response.result == chrome.documentScan.OperationResult.SUCCESS) {
    if (response.data && response.data.byteLength > 0) {
        imgParts.push(response.data);
    } else {
      // Delay so hardware can make progress.
      await new Promise(r => setTimeout(r, 100));
    }
    response = await chrome.documentScan.readScanData(job);
  }
  if (response.result != chrome.documentScan.OperationResult.EOF) {
    return null;
  }
  if (response.data && response.data.byteLength > 0) {
    imgParts.push(response.data);
  }
  return new Blob(imgParts, { type: "image/jpeg" });
}
Skanowanie 1 strony w formacie Letter
Ten przykład pokazuje, jak wybrać skaner, ustawić jego opcje i go otworzyć. Następnie pobiera zawartość jednej strony i zamyka skaner. Ten proces pokazuje, jak używać znaczników getScannerList(), openScanner(), setOptions() i closeScanner(). Pamiętaj, że zawartość strony jest pobierana przez wywołanie funkcji pageAsBlob() z poprzedniego przykładu.
async function scan() {
    let response = await chrome.documentScan.getScannerList({ secure: true });
    let scanner = await chrome.documentScan.openScanner(
        response.scanners[0].scannerId);
    const handle = scanner.scannerHandle;
    let options = [];
    for (source of scanner.options["source"].constraint.list) {
        if (source.includes("ADF")) {
            options.push({
                name: "source",
                type: chrome.documentScan.OptionType.STRING,
                value: { value: source }
            });
            break;
        }
    }
    options.push({
        name: "tl-x",
        type: chrome.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-x",
        type: chrome.documentScan.OptionType.FIXED,
        value: 215.9  // 8.5" in mm
    });
    options.push({
        name: "tl-y",
        type: chrome.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-y",
        type: chrome.documentScan.OptionType.FIXED,
        value: 279.4  // 11" in mm
    });
    response = await chrome.documentScan.setOptions(handle, options);
    let imgBlob = await pageAsBlob(handle);
    if (imgBlob != null) {
        // Insert imgBlob into DOM, save to disk, etc
    }
    await chrome.documentScan.closeScanner(handle);
}
Pokaż konfigurację
Jak wspomnieliśmy wcześniej, wyświetlanie użytkownikowi opcji konfiguracji skanera wymaga wywołania funkcji getOptionGroups() oprócz opcji skanera zwróconych przez wywołanie funkcji openScanner(). Dzięki temu użytkownicy będą mogli zobaczyć opcje w grupach zdefiniowanych przez producenta. Ten przykład pokazuje, jak to zrobić.
async function showConfig() {
  let response = await chrome.documentScan.getScannerList({ secure: true });
  let scanner = await chrome.documentScan.openScanner(
      response.scanners[0].scannerId);
  let groups = await chrome.documentScan.getOptionGroups(scanner.scannerHandle);
  for (const group of groups.groups) {
    console.log("=== " + group.title + " ===");
    for (const member of group.members) {
      const option = scanner.options[member];
      if (option.isActive) {
        console.log("  " + option.name + " = " + option.value);
      } else {
        console.log("  " + option.name + " is inactive");
      }
    }
  }
}
Typy
CancelScanResponse
Właściwości
- 
    zadanieciąg znaków Zwraca ten sam uchwyt zadania, który został przekazany do funkcji cancelScan().
- 
    wynikWynik 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. Pozostałe wartości wyników wskazują na trwały błąd, którego nie należy ponawiać.
CloseScannerResponse
Właściwości
- 
    wynikWynik 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.
- 
    scannerHandleciąg znaków Ten sam uchwyt skanera, który został przekazany do funkcji closeScanner.
Configurability
Jak można zmienić opcję.
Typ wyliczeniowy
„NOT_CONFIGURABLE” 
 Opcja jest tylko do odczytu.
„SOFTWARE_CONFIGURABLE” 
 Opcję można ustawić w oprogramowaniu.
„HARDWARE_CONFIGURABLE” 
 Opcję można ustawić, przełączając lub naciskając przycisk na skanerze.
ConnectionType
Określa, w jaki sposób skaner jest podłączony do komputera.
Typ wyliczeniowy
„UNSPECIFIED” 
 
„USB” 
 
"NETWORK" 
 
ConstraintType
Typ danych ograniczenia reprezentowanego przez OptionConstraint.
Typ wyliczeniowy
„INT_RANGE” 
 Ograniczenie zakresu wartości OptionType.INT. Właściwości min, max i quant obiektu OptionConstraint będą miały wartość long, a właściwość list będzie niezdefiniowana.
„FIXED_RANGE” 
 Ograniczenie dotyczące zakresu OptionType.FIXED wartości. Właściwości min, max i quant elementu OptionConstraint będą miały wartość double, a właściwość list będzie nieustawiona.
„INT_LIST” 
 Ograniczenie dotyczące konkretnej listy wartości OptionType.INT. Właściwość OptionConstraint.list będzie zawierać wartości long, a pozostałe właściwości będą nieustawione.
„FIXED_LIST” 
 Ograniczenie dotyczące konkretnej listy wartości OptionType.FIXED. Właściwość OptionConstraint.list będzie zawierać wartości double, a pozostałe właściwości będą nieustawione.
„STRING_LIST” 
 Ograniczenie dotyczące konkretnej listy wartości OptionType.STRING. Właściwość OptionConstraint.list będzie zawierać wartości DOMString, a pozostałe właściwości będą nieustawione.
DeviceFilter
Właściwości
- 
    lokalnewartość logiczna opcjonalna Zwraca tylko skanery podłączone bezpośrednio do komputera. 
- 
    Bezpiecznywartość logiczna opcjonalna Zwraca tylko skanery, które korzystają z bezpiecznego transportu, np. USB lub TLS. 
GetOptionGroupsResponse
Właściwości
- 
    grupyOptionGroup[] opcjonalne Jeśli resultma wartośćSUCCESS, podaje listę grup opcji w kolejności dostarczonej przez sterownik skanera.
- 
    wynikWynik pobierania grup opcji. Jeśli wartość tego pola to SUCCESS, zostanie wypełnione polegroups.
- 
    scannerHandleciąg znaków Ten sam uchwyt skanera, który został przekazany do funkcji getOptionGroups.
GetScannerListResponse
Właściwości
- 
    wynikWynik 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
- 
    Opcjeobiekt 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.
- 
    wynikWynik otwarcia skanera. Jeśli wartość tego parametru to SUCCESS, zostaną wypełnione właściwościscannerHandleioptions.
- 
    scannerHandlestring opcjonalny Jeśli resultma wartośćSUCCESS, jest to uchwyt skanera, którego można używać do dalszych operacji.
- 
    scannerIdciąg znaków Identyfikator skanera przekazany do openScanner().
OperationResult
Wyliczenie wskazujące wynik każdej operacji.
Typ wyliczeniowy
„UNKNOWN” 
 Wystąpił nieznany lub ogólny błąd.
„SUCCESS” 
 Operacja zakończyła się powodzeniem.
„UNSUPPORTED” 
 Operacja nie jest obsługiwana.
„ANULOWANO” 
 Operacja została anulowana.
„DEVICE_BUSY” 
 Urządzenie jest zajęte.
„INVALID” 
 Dane lub argument przekazany do metody są nieprawidłowe.
„WRONG_TYPE” 
 Podana wartość ma nieprawidłowy typ danych dla opcji bazowej.
„EOF” 
 Brak dostępnych danych.
„ADF_JAMMED” 
 Podajnik dokumentów jest zacięty.
„ADF_EMPTY” 
 Podajnik dokumentów jest pusty.
„COVER_OPEN” 
 Pokrywa skanera płaskiego jest otwarta.
„IO_ERROR” 
 Podczas komunikacji z urządzeniem wystąpił błąd.
„ACCESS_DENIED” 
 Urządzenie wymaga uwierzytelnienia.
„NO_MEMORY” 
 Na Chromebooku nie ma wystarczającej ilości pamięci, aby ukończyć operację.
„UNREACHABLE” 
 Urządzenie jest nieosiągalne.
„MISSING” 
 Urządzenie jest odłączone.
„INTERNAL_ERROR” 
 Wystąpił błąd w miejscu innym niż aplikacja wywołująca.
OptionConstraint
Właściwości
- 
    listastring[] | number[] opcjonalny 
- 
    maksimumnumber opcjonalny 
- 
    minnumber opcjonalny 
- 
    quantnumber opcjonalny 
- 
    typ
OptionGroup
Właściwości
- 
    członkowiestring[] 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
- 
    nazwaciąg znaków Wskazuje nazwę opcji do ustawienia. 
- 
    typWskazuje typ danych opcji. Żądany typ danych musi być zgodny z rzeczywistym typem danych opcji bazowej. 
- 
    wartośćstring | number | boolean | number[] opcjonalnie Wskazuje wartość do ustawienia. Pozostaw to pole bez ustawień, aby poprosić o automatyczne ustawienie opcji, które mają włączoną funkcję autoSettable. Typ danych podany 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 dokładności.
"STRING" 
 Ciąg dowolnych bajtów z wyjątkiem znaku NUL („\0”). Właściwość value będzie ciągiem DOMString.
„BUTTON” 
 Opcja tego typu nie ma wartości. Zamiast tego ustawienie opcji tego typu powoduje w sterowniku skanera efekt uboczny specyficzny dla danej opcji. Na przykład opcja typu przycisku może być używana przez sterownik skanera do wybierania wartości domyślnych lub do informowania automatycznego podajnika dokumentów o przejściu do następnego arkusza papieru.
„GROUP” 
 Opcja grupowania. Brak wartości. Jest to uwzględnione ze względu na zgodność, ale zwykle nie jest zwracane w wartościach ScannerOption. Użyj getOptionGroups(), aby pobrać listę grup z opcjami członków.
Typ wyliczeniowy
„UNITLESS” 
 Wartość jest liczbą bez jednostki. Może to być na przykład wartość progowa.
„PIXEL” 
 Wartość to liczba pikseli, np. wymiary skanu.
„BIT” 
 Wartość to liczba bitów, np. głębia kolorów.
„MM” 
 Wartość jest mierzona w milimetrach, np. wymiary skanu.
„DPI” 
 Wartość jest mierzona w punktach na cal, np. rozdzielczość.
„PERCENT” 
 Wartość jest procentem, np. jasność.
„MICROSECOND” 
 Wartość jest mierzona w mikrosekundach, np. czas ekspozycji.
ReadScanDataResponse
Właściwości
- 
    daneArrayBuffer opcjonalny Jeśli wartość resulttoSUCCESS, zawiera kolejny fragment danych zeskanowanego obrazu. Jeśliresultma wartośćEOF, zawiera ostatni fragment danych zeskanowanego obrazu.
- 
    estimatedCompletionnumber opcjonalny Jeśli wartość resulttoSUCCESS, szacunkowa ilość danych skanowania dostarczonych do tej pory (w zakresie od 0 do 100).
- 
    zadanieciąg znaków Zwraca uchwyt zadania przekazany do readScanData().
- 
    wynikWynik odczytu danych. Jeśli jego wartość to SUCCESS,datazawiera następny (być może pusty) fragment danych obrazu gotowy do odczytu. Jeśli jego wartość toEOF,datazawiera ostatni fragment danych obrazu.
ScannerInfo
Właściwości
- 
    connectionTypeOkreśla, w jaki sposób skaner jest podłączony do komputera. 
- 
    deviceUuidciąg znaków Do dopasowywania do innych wpisów ScannerInfo, które wskazują to samo urządzenie fizyczne.
- 
    imageFormatsstring[] Tablica typów MIME, które można przesłać w żądaniu w przypadku zwracanych skanów. 
- 
    producentciąg znaków producent skanera; 
- 
    modelciąg znaków Model skanera, jeśli jest dostępny, lub ogólny opis. 
- 
    nazwaciąg znaków Zrozumiała dla człowieka nazwa skanera, która będzie wyświetlana w interfejsie. 
- 
    protocolTypeciąg znaków Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera, np. Mopria, WSD lub epsonds. Jest to przydatne przede wszystkim w przypadku, gdy użytkownik ma możliwość wyboru protokołu, jeśli urządzenie obsługuje ich kilka. 
- 
    scannerIdciąg znaków Identyfikator konkretnego skanera. 
- 
    BezpiecznyWartość logiczna Jeśli wartość to „true”, połączenie skanera nie może zostać przechwycone przez pasywnego odbiorcę, takiego jak TLS lub USB. 
ScannerOption
Właściwości
- 
    możliwość konfiguracji,Wskazuje, czy i jak można zmienić opcję. 
- 
    ograniczenieOptionConstraint opcjonalny Określa OptionConstraintw bieżącej opcji skanera.
- 
    opisciąg znaków Dłuższy opis opcji. 
- 
    isActiveWartość 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.
- 
    isAdvancedWartość logiczna Wskazuje, że interfejs nie powinien domyślnie wyświetlać tej opcji. 
- 
    isAutoSettableWartość logiczna Może być automatycznie ustawiony przez sterownik skanera. 
- 
    isDetectableWartość logiczna Wskazuje, że tę opcję można wykryć za pomocą oprogramowania. 
- 
    isEmulatedWartość logiczna Emulowane przez sterownik skanera, jeśli ma wartość true. 
- 
    nazwacią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. 
- 
    typTyp danych zawartych we właściwości value, który jest potrzebny do ustawienia tej opcji.
- 
    JednostkaJednostka 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
- 
    maxImagesnumber opcjonalny Liczba dozwolonych skanowanych obrazów. Wartość domyślna to 1. 
- 
    mimeTypesstring[] opcjonalne Typy MIME akceptowane przez rozmówcę. 
ScanResults
Właściwości
- 
    dataUrlsstring[] Tablica adresów URL obrazów danych w formacie, który można przekazać jako wartość parametru „src” do tagu obrazu. 
- 
    mimeTypeciąg znaków Typ MIME elementu dataUrls.
SetOptionResult
Właściwości
- 
    nazwaciąg znaków Zawiera nazwę ustawionej opcji. 
- 
    wynikWskazuje wynik ustawienia opcji. 
SetOptionsResponse
Właściwości
- 
    Opcjeobiekt 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 usługaoptionswOpenScannerResponse.Ta właściwość zostanie ustawiona nawet wtedy, gdy niektóre opcje nie zostały ustawione, ale zostanie wycofana, jeśli pobieranie zaktualizowanej konfiguracji się nie powiedzie (np. jeśli skaner zostanie odłączony w trakcie skanowania). 
- 
    wynikiTablica wyników, po jednym dla każdego przekazanego parametru OptionSetting.
- 
    scannerHandleciąg znaków Zwraca uchwyt skanera przekazany do setOptions().
StartScanOptions
Właściwości
- 
    reklamyciąg znaków Określa typ MIME, w którym mają być zwracane zeskanowane dane. 
- 
    maxReadSizenumber opcjonalny Jeśli podano wartość różną od zera, ogranicza maksymalną liczbę skanowanych 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ć równy rozmiarowi całego zeskanowanego obrazu.
StartScanResponse
Właściwości
- 
    zadaniestring opcjonalny Jeśli resultma wartośćSUCCESS, zwraca uchwyt, którego można użyć do odczytania danych skanowania lub anulowania zadania.
- 
    wynikWynik rozpoczęcia skanowania. Jeśli wartość tego pola to SUCCESS, zostanie wypełnione polejob.
- 
    scannerHandlecią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
- 
    zadanieciąg znaków Uchwyt aktywnego zadania skanowania zwrócony wcześniej przez wywołanie funkcji startScan.
Zwroty
- 
            Promise<CancelScanResponse> 
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
Zamyka skaner za pomocą przekazanego uchwytu i zwraca obietnicę, która jest realizowana za pomocą obiektu CloseScannerResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Nawet jeśli odpowiedź nie jest pozytywna, podany uchwyt staje się nieprawidłowy i nie należy go używać do dalszych operacji.
Parametry
- 
    scannerHandleciąg znaków Określa uchwyt otwartego skanera, który został wcześniej zwrócony przez wywołanie funkcji openScanner.
Zwroty
- 
            Promise<CloseScannerResponse> 
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
Pobiera nazwy grup i opcje członków ze skanera otwartego wcześniej przez openScanner. Ta metoda zwraca obietnicę, która jest spełniana za pomocą obiektu GetOptionGroupsResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego przekazywane są do niego zwrócone dane.
Parametry
- 
    scannerHandleciąg znaków Uchwyt otwartego skanera zwrócony przez wywołanie funkcji openScanner.
Zwroty
- 
            Promise<GetOptionGroupsResponse> 
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
Pobiera listę dostępnych skanerów i zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu GetScannerListResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego przekazywane są do niego zwrócone dane.
Parametry
- 
    filtrWartość DeviceFilterwskazująca, które typy skanerów powinny zostać zwrócone.
Zwroty
- 
            Promise<GetScannerListResponse> 
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Otwiera skaner z wyłącznym dostępem i zwraca Promise, który jest rozwiązywany za pomocą obiektu OpenScannerResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego przekazywane są do niego zwrócone dane.
Parametry
- 
    scannerIdciąg znaków Identyfikator skanera, który ma zostać otwarty. Ta wartość jest zwracana z poprzedniego wywołania funkcji getScannerList.
Zwroty
- 
            Promise<OpenScannerResponse> 
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
Odczytuje następny fragment dostępnych danych obrazu z aktywnego uchwytu zadania i zwraca obietnicę, która jest realizowana za pomocą obiektu ReadScanDataResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
**Uwaga: w przypadku wyniku odpowiedzi dopuszczalne jest wystąpienie SUCCESS z elementem data o zerowej długości. Oznacza to, że skaner nadal działa, ale nie ma jeszcze gotowych dodatkowych danych. Dzwoniący powinien poczekać chwilę i spróbować ponownie.
Po zakończeniu skanowania w odpowiedzi pojawi się wartość EOF. Ta odpowiedź może zawierać końcowy element data o wartości innej niż 0.
Parametry
- 
    zadanieciąg znaków Uchwyt aktywnego zadania zwrócony wcześniej przez funkcję startScan.
Zwroty
- 
            Promise<ReadScanDataResponse> 
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
Wykonuje skanowanie dokumentu i zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu ScanResults. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zwrócone dane zostaną przekazane do niego.
Parametry
- 
    OpcjeObiekt zawierający parametry skanowania. 
Zwroty
- 
            Promise<ScanResults> Chrome w wersji 96 lub nowszej
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
Ustawia opcje na określonym skanerze i zwraca obietnicę, która jest spełniana przez obiekt SetOptionsResponse zawierający wynik próby ustawienia każdej wartości w kolejności przekazanego obiektu OptionSetting. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.
Parametry
- 
    scannerHandlecią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.
- 
    OpcjeLista OptionSettingobiektów, które mają być zastosowane w skanerze.
Zwroty
- 
            Promise<SetOptionsResponse> 
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Rozpoczyna skanowanie na określonym skanerze i zwraca obietnicę, która jest spełniana za pomocą obiektu StartScanResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Jeśli wywołanie się powiedzie, odpowiedź będzie zawierać uchwyt zadania, którego można użyć w kolejnych wywołaniach do odczytywania danych skanowania lub anulowania skanowania.
Parametry
- 
    scannerHandleciąg znaków Uchwyt otwartego skanera. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji openScanner.
- 
    OpcjeObiekt 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>