browser.documentScan

Opis

Używaj interfejsu API chrome.documentScan do wykrywania i pobierania obrazów z podłączonych skanerów dokumentów.

Interfejs Document Scan API umożliwia aplikacjom i rozszerzeniom wyświetlanie treści dokumentów papierowych na podłączonym skanerze dokumentów.

Uprawnienia

documentScan

Dostępność

Chrome 44 lub nowsza browser.* od Chrome 148 Tylko ChromeOS
Dostępność użytkowników interfejsu API dodanych później jest wyświetlana wraz z tymi użytkownikami.

Pojęcia i użycie

Ten interfejs API obsługuje 2 sposoby skanowania dokumentów. Jeśli Twój przypadek użycia może działać z dowolnym skanerem i nie wymaga kontroli nad konfiguracją, użyj metody scan(). Bardziej skomplikowane przypadki użycia wymagają połączenia metod, które są obsługiwane tylko w Chrome 124 i nowszych wersjach.

Proste skanowanie

W przypadku prostych zastosowań, czyli takich, które mogą działać z dowolnym skanerem i nie wymagają kontroli nad konfiguracją, wywołaj scan(). Ta metoda przyjmuje obiekt ScanOptions i zwraca obiekt Promise, który rozwiązuje się z obiektem ScanResults. Możliwości tej opcji są ograniczone do liczby skanów i typów MIME, które zostaną zaakceptowane przez rozmówcę. Skanowane dokumenty są zwracane jako adresy URL do wyświetlenia w tagu <img> w interfejsie użytkownika.

Skanowanie złożone

Złożone skanowanie odbywa się w 3 fazach opisanych w tej sekcji. Ten opis nie zawiera wszystkich argumentów metody ani wszystkich właściwości zwracanych w odpowiedzi. Ma on jedynie służyć jako ogólny przewodnik po pisaniu kodu skanera.

Odkrywanie

  1. Zadzwoń pod numer getScannerList(). Dostępne skanery są zwracane w obiekcie Promise, który jest rozwiązywany za pomocą GetScannerListResponse.

    • Obiekt odpowiedzi zawiera tablicę obiektów ScannerInfo.
    • Tablica może zawierać wiele wpisów dotyczących jednego skanera, jeśli obsługuje on wiele protokołów lub metod połączenia.
  2. Wybierz skaner ze zwróconej tablicy i zapisz wartość jego właściwości scannerId.

    Użyj właściwości poszczególnych obiektów ScannerInfo, aby odróżnić wiele obiektów tego samego skanera. Obiekty z tego samego skanera będą miały tę samą wartość właściwości deviceUuid. ScannerInfo zawiera też właściwość imageFormats, która zawiera tablicę obsługiwanych typów obrazów.

Konfiguracja skanera

  1. Wywołaj openScanner(), podając zapisany identyfikator skanera. Zwraca obietnicę, która jest rozwiązywana za pomocą OpenScannerResponse. Obiekt odpowiedzi zawiera:

    • Właściwość scannerHandle, którą musisz zapisać.

    • Właściwość opcji zawierająca właściwości skanera, które musisz ustawić. Więcej informacji znajdziesz w sekcji dotyczącej pobierania opcji skanera.

  2. (Opcjonalnie) Jeśli chcesz, aby użytkownik podał wartości opcji skanera, utwórz interfejs użytkownika. Będziesz potrzebować opcji skanera podanych w poprzednim kroku oraz grup opcji udostępnianych przez skaner. Więcej informacji znajdziesz w artykule Tworzenie interfejsu użytkownika.

  3. Utwórz tablicę obiektów OptionSetting, używając wartości automatycznych lub podanych przez użytkownika. Więcej informacji znajdziesz w artykule o ustawianiu opcji skanera.

  4. Przekaż tablicę obiektów OptionSetting do setOptions(), aby ustawić opcje skanera. Zwraca obiekt Promise, który rozwiązuje się za pomocą SetOptionsResponse. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.

    Zmiana jednej opcji może wpłynąć na ograniczenia dotyczące innej opcji, dlatego może być konieczne powtórzenie tych czynności kilka razy.

Skanowanie

  1. Utwórz obiekt StartScanOptions i przekaż go do startScan(). Zwraca obiekt Promise, który rozwiązuje się z StartScanResponse. Właściwość job to uchwyt, którego użyjesz do odczytania danych skanowania lub anulowania skanowania.

  2. Przekaż uchwyt zadania do readScanData(). Zwraca obiekt Promise, który rozwiązuje się z obiektem ReadScanDataResponse. Jeśli dane zostały odczytane prawidłowo, właściwość result ma wartość SUCCESS, a właściwość data zawiera obiekt ArrayBuffer z częścią skanu. Pamiętaj, że estimatedCompletion zawiera szacunkowy odsetek wszystkich danych, które zostały do tej pory dostarczone.

  3. Powtarzaj poprzedni krok, aż właściwość result będzie równa EOF lub wystąpi błąd.

Po zakończeniu skanowania wywołaj funkcję closeScanner() z uchwytem skanera zapisanym w kroku 3. Zwraca obiekt Promise, który rozwiązuje się z CloseScannerResponse. Wywołanie cancelScan() w dowolnym momencie po utworzeniu zadania spowoduje zakończenie skanowania.

Obiekty odpowiedzi

Wszystkie metody zwracają obiekt Promise, który jest rozwiązywany za pomocą obiektu odpowiedzi określonego rodzaju. Większość z nich zawiera właściwość result, której wartość jest elementem OperationResult. Niektóre właściwości obiektów odpowiedzi nie będą zawierać wartości, chyba że wartość result będzie miała określoną wartość. Te relacje są opisane w dokumentacji każdego obiektu odpowiedzi.

Na przykład OpenScannerResponse.scannerHandle będzie mieć wartość tylko wtedy, gdy OpenScannerResponse.result będzie równe SUCCESS.

Opcje skanera

Opcje skanera różnią się znacznie w zależności od urządzenia. W związku z tym nie można odzwierciedlić opcji skanera bezpośrednio w interfejsie documentScan API. Aby to obejść, OpenScannerResponse (pobrany za pomocą openScanner()) i SetOptionsResponse (obiekt odpowiedzi dla setOptions()) zawierają właściwość options, która jest obiektem zawierającym opcje dotyczące skanera. Każda opcja to mapowanie klucz-wartość, gdzie klucz to opcja dotycząca urządzenia, a wartość to instancja ScannerOption.

Struktura wygląda zwykle tak:

{
  "key1": { scannerOptionInstance }
  "key2": { scannerOptionInstance }
}

Wyobraźmy sobie na przykład skaner, który zwraca opcje o nazwach „źródło” i „rozdzielczość”. Struktura zwróconego obiektu options będzie wyglądać mniej więcej tak jak w poniższym przykładzie. Dla uproszczenia wyświetlane są tylko częściowe odpowiedzi ScannerOption.

{
  "source": {
    "name": "source",
    "type": OptionType.STRING,
...
},
  "resolution": {
    "name": "resolution",
    "type": OptionType.INT,
...
  },
...
}

Tworzenie interfejsu

Chociaż nie jest to wymagane do korzystania z tego interfejsu API, możesz chcieć, aby użytkownik wybrał wartość dla konkretnej opcji. Wymaga to interfejsu użytkownika. Użyj OpenScannerResponse (otwieranego przez openScanner()), aby pobrać opcje podłączonego skanera, jak opisano w poprzedniej sekcji.

Niektóre skanery grupują opcje w sposób specyficzny dla urządzenia. Nie wpływają na zachowanie opcji, ale ponieważ te grupy mogą być wymienione w dokumentacji produktu skanera, powinny być widoczne dla użytkownika. Możesz pobrać te grupy, wywołując funkcję getOptionGroups(). Zwraca obiekt Promise, który rozwiązuje obiekt GetOptionGroupsResponse. Jego właściwość groups zawiera tablicę grup właściwą dla skanera. Użyj informacji z tych grup, aby uporządkować opcje w OpenScannerResponse do wyświetlenia.

{
  scannerHandle: "123456",
  result: SUCCESS,
  groups: [
    {
      title: "Standard",
      members: [ "resolution", "mode", "source" ]
    }
  ]
}

Jak wspomniano w sekcji Konfiguracja skanera, zmiana jednej opcji może wpłynąć na ograniczenia innej opcji. Dlatego setOptionsResponse (obiekt odpowiedzi dla setOptions()) zawiera kolejną właściwość options. Użyj tej opcji, aby zaktualizować interfejs. Następnie powtarzaj te czynności, aż ustawisz wszystkie opcje.

Ustawianie opcji skanera

Ustaw opcje skanera, przekazując tablicę obiektów OptionSetting do setOptions(). Przykład znajdziesz w sekcji Skanowanie jednej strony w formacie Letter poniżej.

Przykłady

Pobieranie strony jako obiektu blob

Ten przykład pokazuje, jak pobrać stronę ze skanera jako obiekt blob, oraz demonstruje użycie startScan() i readScanData() z wartością OperationResult.

async function pageAsBlob(handle) {
  let response = await browser.documentScan.startScan(
      handle, {format: "image/jpeg"});
  if (response.result != browser.documentScan.OperationResult.SUCCESS) {
    return null;
  }
  const job = response.job;

  let imgParts = [];
  response = await browser.documentScan.readScanData(job);
  while (response.result == browser.documentScan.OperationResult.SUCCESS) {
    if (response.data && response.data.byteLength > 0) {
        imgParts.push(response.data);
    } else {
      // Delay so hardware can make progress.
      await new Promise(r => setTimeout(r, 100));
    }
    response = await browser.documentScan.readScanData(job);
  }
  if (response.result != browser.documentScan.OperationResult.EOF) {
    return null;
  }
  if (response.data && response.data.byteLength > 0) {
    imgParts.push(response.data);
  }
  return new Blob(imgParts, { type: "image/jpeg" });
}

Skanowanie 1 strony w formacie Letter

Ten przykład pokazuje, jak wybrać skaner, ustawić jego opcje i go otworzyć. Następnie pobiera zawartość pojedynczej strony i zamyka skaner. Ten proces pokazuje, jak używać getScannerList(), openScanner(), setOptions() i closeScanner(). Zwróć uwagę, że zawartość strony jest pobierana przez wywołanie funkcji pageAsBlob() z poprzedniego przykładu.

async function scan() {
    let response = await browser.documentScan.getScannerList({ secure: true });
    let scanner = await browser.documentScan.openScanner(
        response.scanners[0].scannerId);
    const handle = scanner.scannerHandle;

    let options = [];
    for (source of scanner.options["source"].constraint.list) {
        if (source.includes("ADF")) {
            options.push({
                name: "source",
                type: browser.documentScan.OptionType.STRING,
                value: { value: source }
            });
            break;
        }
    }
    options.push({
        name: "tl-x",
        type: browser.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-x",
        type: browser.documentScan.OptionType.FIXED,
        value: 215.9  // 8.5" in mm
    });
    options.push({
        name: "tl-y",
        type: browser.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-y",
        type: browser.documentScan.OptionType.FIXED,
        value: 279.4  // 11" in mm
    });
    response = await browser.documentScan.setOptions(handle, options);

    let imgBlob = await pageAsBlob(handle);
    if (imgBlob != null) {
        // Insert imgBlob into DOM, save to disk, etc
    }
    await browser.documentScan.closeScanner(handle);
}

Pokaż konfigurację

Jak wspomniano w innym miejscu, wyświetlenie użytkownikowi opcji konfiguracji skanera wymaga wywołania getOptionGroups() oprócz opcji skanera zwróconych przez wywołanie openScanner(). Dzięki temu opcje mogą być wyświetlane użytkownikom w grupach zdefiniowanych przez producenta. Ten przykład pokazuje, jak to zrobić.

async function showConfig() {
  let response = await browser.documentScan.getScannerList({ secure: true });
  let scanner = await browser.documentScan.openScanner(
      response.scanners[0].scannerId);
  let groups = await browser.documentScan.getOptionGroups(scanner.scannerHandle);

  for (const group of groups.groups) {
    console.log("=== " + group.title + " ===");
    for (const member of group.members) {
      const option = scanner.options[member];
      if (option.isActive) {
        console.log("  " + option.name + " = " + option.value);
      } else {
        console.log("  " + option.name + " is inactive");
      }
    }
  }
}

Typy

CancelScanResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • zadanie

    tekst

    Zapewnia ten sam uchwyt zadania, który został przekazany do cancelScan().

  • Wynik anulowania skanowania przez backend. Jeśli wynik to OperationResult.SUCCESS lub OperationResult.CANCELLED, skanowanie zostało anulowane, a skaner jest gotowy do rozpoczęcia nowego skanowania. Jeśli wynik to OperationResult.DEVICE_BUSY , skaner nadal przetwarza żądanie anulowania. Obiekt wywołujący powinien chwilę poczekać i spróbować ponownie. Inne wartości wyniku wskazują na błąd stały, którego nie należy próbować naprawiać.

CloseScannerResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • Wynik zamknięcia skanera. Nawet jeśli ta wartość nie jest równa SUCCESS, uchwyt będzie nieprawidłowy i nie należy go używać do dalszych operacji.

  • scannerHandle

    tekst

    Ten sam uchwyt skanera, który został przekazany do closeScanner.

Configurability

Chrome 125 lub nowsza browser.* od Chrome 148

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

Chrome 125 lub nowsza browser.* od Chrome 148

Wskazuje, jak skaner jest podłączony do komputera.

Typ wyliczeniowy

"UNSPECIFIED"

„USB”

"NETWORK"

ConstraintType

Chrome 125 lub nowsza browser.* od Chrome 148

Typ danych ograniczenia reprezentowany przez OptionConstraint.

Typ wyliczeniowy

"INT_RANGE"
Ograniczenie zakresu wartości OptionType.INT. Właściwości min, max i quant elementu OptionConstraint będą miały wartość long, a właściwość list nie będzie ustawiona.

"FIXED_RANGE"
Ograniczenie zakresu wartości OptionType.FIXED. Właściwości min, max i quant elementu OptionConstraint będą miały wartość double, a właściwość list nie będzie ustawiona.

"INT_LIST"
Ograniczenie dotyczące określonej listy wartości OptionType.INT. Właściwość OptionConstraint.list będzie zawierać wartości long, a pozostałe właściwości nie będą ustawione.

"FIXED_LIST"
Ograniczenie do określonej listy wartości OptionType.FIXED. Właściwość OptionConstraint.list będzie zawierać wartości double, a pozostałe właściwości nie będą ustawione.

"STRING_LIST"
Ograniczenie dotyczące określonej listy wartości OptionType.STRING. Właściwość OptionConstraint.list będzie zawierać wartości DOMString, a pozostałe właściwości nie będą ustawione.

DeviceFilter

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • lokalne

    boolean opcjonalne

    Zwracaj tylko skanery, które są bezpośrednio podłączone do komputera.

  • Bezpieczny

    boolean opcjonalne

    Zwracaj tylko skanery, które korzystają z bezpiecznego transportu, np. USB lub TLS.

GetOptionGroupsResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • grupy

    OptionGroup[] opcjonalny

    Jeśli result to SUCCESS, podaje listę grup opcji w kolejności dostarczonej przez sterownik skanera.

  • Wynik pobierania grup opcji. Jeśli wartość to SUCCESS, zostanie wypełniona właściwość groups.

  • scannerHandle

    tekst

    Ten sam uchwyt skanera, który został przekazany do getOptionGroups.

GetScannerListResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • Wynik wyliczenia. Pamiętaj, że wyniki częściowe mogą zostać zwrócone, nawet jeśli wskazuje to na błąd.

  • skanery

    Lista skanerów, które pasują do podanego DeviceFilter (może być pusta).

OpenScannerResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • Opcje

    object opcjonalny

    Jeśli result to SUCCESS, udostępnia mapowanie klucz-wartość, gdzie klucz to opcja dotycząca urządzenia, a wartość to instancja ScannerOption.

  • Wynik otwarcia skanera. Jeśli wartość to SUCCESS, zostaną wypełnione właściwości scannerHandle i options.

  • scannerHandle

    ciąg znaków opcjonalny

    Jeśli result to SUCCESS, uchwyt do skanera, którego można używać do dalszych operacji.

  • scannerId

    tekst

    Identyfikator skanera przekazany do openScanner().

OperationResult

Chrome 125 lub nowsza browser.* od Chrome 148

Typ wyliczeniowy wskazujący wynik każdej operacji.

Typ wyliczeniowy

"UNKNOWN"
Wystąpił nieznany lub ogólny błąd.

"SUCCESS"
Operacja się powiodła.

"UNSUPPORTED"
Operacja nie jest obsługiwana.

"CANCELLED"
Operacja została anulowana.

"DEVICE_BUSY"
Urządzenie jest zajęte.

"INVALID"
Dane lub argument przekazany do metody są nieprawidłowe.

"WRONG_TYPE"
Podana wartość jest nieprawidłowym typem danych dla opcji podstawowej.

"EOF"
Brak dostępnych danych.

"ADF_JAMMED"
Podajnik dokumentów jest zablokowany.

"ADF_EMPTY"
Podajnik dokumentów jest pusty.

"COVER_OPEN"
Pokrywa skanera płaskiego jest otwarta.

"IO_ERROR"
Podczas komunikacji z urządzeniem wystąpił błąd.

"ACCESS_DENIED"
Urządzenie wymaga uwierzytelnienia.

"NO_MEMORY"
Na Chromebooku nie ma wystarczającej ilości pamięci, aby ukończyć operację.

"UNREACHABLE"
Urządzenie jest nieosiągalne.

"MISSING"
Urządzenie jest odłączone.

"INTERNAL_ERROR"
Wystąpił błąd w innym miejscu niż aplikacja wywołująca.

OptionConstraint

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • lista

    string[] | number[] opcjonalne

  • maksimum

    number optional

  • min

    number optional

  • quant

    number optional

OptionGroup

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • członkowie

    string[]

    Tablica nazw opcji w kolejności podanej przez kierowcę.

  • tytuł

    tekst

    Podaje tytuł do wydrukowania, np. „Opcje geometrii”.

OptionSetting

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • nazwa

    tekst

    Wskazuje nazwę opcji do ustawienia.

  • Wskazuje typ danych opcji. Żądany typ danych musi być zgodny z rzeczywistym typem danych opcji bazowej.

  • wartość

    string | number | boolean | number[] opcjonalnie

    Wskazuje wartość, którą należy ustawić. Pozostaw to pole puste, aby poprosić o automatyczne ustawienie opcji, które mają włączone autoSettable. Typ danych podany dla value musi być zgodny z type.

OptionType

Chrome 125 lub nowsza browser.* od Chrome 148

Typ danych opcji.

Typ wyliczeniowy

"UNKNOWN"
Typ danych opcji jest nieznany. Właściwość value zostanie usunięta.

"BOOL"
Właściwość value będzie mieć wartość truefalse.

"INT"
32-bitowa liczba całkowita ze znakiem. Właściwość value będzie mieć typ long lub long[], w zależności od tego, czy opcja przyjmuje więcej niż 1 wartość.

"FIXED"
Liczba zmiennoprzecinkowa podwójnej precyzji z zakresu od -32768 do 32767,9999 o rozdzielczości 1/65535. Właściwość value będzie mieć typ double lub double[] w zależności od tego, czy opcja przyjmuje więcej niż 1 wartość. Wartości typu Double, których nie można dokładnie przedstawić, zostaną zaokrąglone do dostępnego zakresu i precyzji.

"STRING"
Ciąg dowolnych bajtów z wyjątkiem NUL ('\0'). Właściwość value będzie ciągiem DOMString.

"BUTTON"
Opcja tego typu nie ma wartości. Zamiast tego ustawienie opcji tego typu powoduje efekt uboczny w sterowniku skanera. Na przykład opcja typu przycisk może być używana przez sterownik skanera do wybierania wartości domyślnych lub do informowania automatycznego podajnika dokumentów o przejściu do następnego arkusza papieru.

"GROUP"
Opcja grupowania. Brak wartości. Jest on uwzględniony ze względu na zgodność, ale zwykle nie jest zwracany w wartościach ScannerOption. Użyj getOptionGroups(), aby pobrać listę grup z opcjami członków.

OptionUnit

Chrome 125 lub nowsza browser.* od Chrome 148

Wskazuje typ danych dla ScannerOption.unit.

Typ wyliczeniowy

"UNITLESS"
Wartość jest liczbą bez jednostki. Może to być na przykład wartość progowa.

"PIXEL"
Wartość jest liczbą pikseli, np. wymiary skanu.

"BIT"
Wartość to liczba bitów, np. głębia kolorów.

"MM"
Wartość jest mierzona w milimetrach, np. wymiary skanu.

"DPI"
Wartość jest mierzona w punktach na cal, np. rozdzielczość.

"PERCENT"
Wartość jest wyrażona w procentach, np. jasność.

"MICROSECOND"
Wartość jest mierzona w mikrosekundach, np. czas ekspozycji.

ReadScanDataResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • dane

    ArrayBuffer opcjonalny

    Jeśli result to SUCCESS, zawiera następny fragment danych zeskanowanego obrazu. Jeśli result to EOF, zawiera ostatni fragment zeskanowanych danych obrazu.

  • estimatedCompletion

    number optional

    Jeśli result to SUCCESS, szacunkowa ilość danych skanowania dostarczonych do tej pory, w zakresie od 0 do 100.

  • zadanie

    tekst

    Podaje uchwyt zadania przekazany do readScanData().

  • Wynik odczytu danych. Jeśli wartość to SUCCESS, data zawiera następny (być może o zerowej długości) fragment danych obrazu, który jest gotowy do odczytu. Jeśli wartość to EOF, data zawiera ostatni fragment danych obrazu.

ScannerInfo

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • connectionType

    Wskazuje, jak skaner jest podłączony do komputera.

  • deviceUuid

    tekst

    Do dopasowywania do innych wpisów ScannerInfo, które wskazują na to samo urządzenie fizyczne.

  • imageFormats

    string[]

    Tablica typów MIME, o które można poprosić w przypadku zwróconych skanów.

  • producent

    tekst

    Producent skanera.

  • model

    tekst

    Model skanera, jeśli jest dostępny, lub ogólny opis.

  • nazwa

    tekst

    Zrozumiała dla człowieka nazwa skanera, która będzie wyświetlana w interfejsie.

  • protocolType

    tekst

    Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera, np. Mopria, WSD lub epsonds. Jest to przydatne głównie wtedy, gdy użytkownik może wybrać protokół, jeśli urządzenie obsługuje ich kilka.

  • scannerId

    tekst

    Identyfikator konkretnego skanera.

  • Bezpieczny

    wartość logiczna

    Jeśli ma wartość „true”, transport połączenia skanera nie może zostać przechwycony przez pasywnego odbiorcę, takiego jak TLS lub USB.

ScannerOption

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • możliwość konfiguracji

    Wskazuje, czy i jak można zmienić opcję.

  • ograniczenie

    OptionConstraint opcjonalne

    Definiuje OptionConstraint w bieżącej opcji skanera.

  • opis

    tekst

    Dłuższy opis opcji.

  • isActive

    wartość logiczna

    Wskazuje, że opcja jest aktywna i można ją ustawić lub pobrać. Jeśli ma wartość Fałsz, właściwość value nie zostanie ustawiona.

  • isAdvanced

    wartość logiczna

    Wskazuje, że interfejs nie powinien domyślnie wyświetlać tej opcji.

  • isAutoSettable

    wartość logiczna

    Może być ustawiany automatycznie przez sterownik skanera.

  • isDetectable

    wartość logiczna

    Wskazuje, że tę opcję można wykryć za pomocą oprogramowania.

  • isEmulated

    wartość logiczna

    Jeśli ma wartość Prawda, jest emulowany przez sterownik skanera.

  • nazwa

    tekst

    Nazwa opcji zawierająca małe litery ASCII, cyfry i myślniki. Znaki diakrytyczne są niedozwolone.

  • tytuł

    tekst

    Drukowalny jednowierszowy tytuł.

  • Typ danych zawarty we właściwości value, który jest wymagany do ustawienia tej opcji.

  • Jednostka

    Jednostka miary tej opcji.

  • wartość

    string | number | boolean | number[] opcjonalnie

    Bieżąca wartość opcji (jeśli dotyczy). Pamiętaj, że typ danych tej właściwości musi być zgodny z typem danych określonym w type.

ScanOptions

Właściwości

  • maxImages

    number optional

    Dozwolona liczba zeskanowanych obrazów. Wartość domyślna to 1.

  • mimeTypes

    string[] opcjonalne

    Typy MIME akceptowane przez element wywołujący.

ScanResults

Właściwości

  • dataUrls

    string[]

    Tablica adresów URL obrazów danych w formie, którą można przekazać jako wartość „src” do tagu obrazu.

  • mimeType

    tekst

    Typ MIME elementu dataUrls.

SetOptionResult

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • nazwa

    tekst

    Wskazuje nazwę ustawionej opcji.

  • Wskazuje wynik ustawienia opcji.

SetOptionsResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • Opcje

    object opcjonalny

    Zaktualizowane mapowanie klucz-wartość z nazw opcji na wartości ScannerOption zawierające nową konfigurację po próbie ustawienia wszystkich podanych opcji. Ma taką samą strukturę jak właściwość options w OpenScannerResponse.

    Ta właściwość zostanie ustawiona, nawet jeśli niektóre opcje nie zostały ustawione, ale zostanie usunięta, jeśli nie uda się pobrać zaktualizowanej konfiguracji (np. jeśli skaner zostanie odłączony w trakcie skanowania).

  • wyniki

    Tablica wyników, po jednym dla każdego przekazanego elementu OptionSetting.

  • scannerHandle

    tekst

    Zapewnia uchwyt skanera przekazany do setOptions().

StartScanOptions

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • format

    tekst

    Określa typ MIME, w którym mają być zwracane zeskanowane dane.

  • maxReadSize

    number optional

    Jeśli podano wartość inną niż 0, ogranicza maksymalną liczbę zeskanowanych bajtów zwracanych w jednej odpowiedzi readScanData do tej wartości. Najmniejsza dozwolona wartość to 32768 (32 KB). Jeśli ta właściwość nie jest określona, rozmiar zwróconego fragmentu może być tak duży jak cały zeskanowany obraz.

StartScanResponse

Chrome 125 lub nowsza browser.* od Chrome 148

Właściwości

  • zadanie

    ciąg znaków opcjonalny

    Jeśli result to SUCCESS, udostępnia uchwyt, którego można użyć do odczytu danych skanowania lub anulowania zadania.

  • Wynik rozpoczęcia skanowania. Jeśli wartość to SUCCESS, zostanie wypełniona właściwość job.

  • scannerHandle

    tekst

    Udostępnia ten sam uchwyt skanera, który został przekazany do startScan().

Metody

cancelScan()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.cancelScan(
  job: string,
)
: Promise<CancelScanResponse>

Anuluje rozpoczęte skanowanie i zwraca obiekt Promise, który rozwiązuje się z obiektem CancelScanResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.

Parametry

  • zadanie

    tekst

    Uchwyt aktywnego zadania skanowania zwrócony wcześniej przez wywołanie funkcji startScan.

Zwroty

closeScanner()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.closeScanner(
  scannerHandle: string,
)
: Promise<CloseScannerResponse>

Zamyka skaner z przekazanym uchwytem i zwraca obiekt Promise, który rozwiązuje się z obiektem CloseScannerResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Nawet jeśli odpowiedź nie jest prawidłowa, podany uchwyt staje się nieprawidłowy i nie należy go używać do dalszych operacji.

Parametry

  • scannerHandle

    tekst

    Określa uchwyt otwartego skanera, który został wcześniej zwrócony przez wywołanie funkcji openScanner.

Zwroty

getOptionGroups()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.getOptionGroups(
  scannerHandle: string,
)
: Promise<GetOptionGroupsResponse>

Pobiera nazwy grup i opcje członków ze skanera otwartego wcześniej przez openScanner. Ta metoda zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu GetOptionGroupsResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.

Parametry

  • scannerHandle

    tekst

    Uchwyt otwartego skanera zwrócony przez wywołanie funkcji openScanner.

Zwroty

getScannerList()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.getScannerList(
  filter: DeviceFilter,
)
: Promise<GetScannerListResponse>

Pobiera listę dostępnych skanerów i zwraca obiekt Promise, który rozwiązuje się z obiektem GetScannerListResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.

Parametry

Zwroty

  • Zwraca obiekt Promise, który rozwiązuje się z wynikiem i listą skanerów.

openScanner()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.openScanner(
  scannerId: string,
)
: Promise<OpenScannerResponse>

Otwiera skaner z wyłącznym dostępem i zwraca obiekt Promise, który rozwiązuje się z obiektem OpenScannerResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.

Parametry

  • scannerId

    tekst

    Identyfikator skanera, który ma zostać otwarty. Ta wartość jest zwracana z poprzedniego wywołania funkcji getScannerList.

Zwroty

readScanData()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.readScanData(
  job: string,
)
: Promise<ReadScanDataResponse>

Odczytuje następny fragment dostępnych danych obrazu z aktywnego uchwytu zadania i zwraca obiekt Promise, który rozwiązuje się z obiektem ReadScanDataResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.

**Uwaga:**prawidłowy wynik odpowiedzi to SUCCESS z elementem data o zerowej długości. Oznacza to, że skaner nadal działa, ale nie ma jeszcze gotowych dodatkowych danych. Osoba dzwoniąca powinna odczekać chwilę i spróbować ponownie.

Po zakończeniu zadania skanowania odpowiedź będzie miała wartość wyniku EOF. Ta odpowiedź może zawierać końcowy element data o wartości innej niż 0.

Parametry

  • zadanie

    tekst

    Uchwyt aktywnego zadania zwrócony wcześniej przez startScan.

Zwroty

scan()

browser.documentScan.scan(
  options: ScanOptions,
)
: Promise<ScanResults>

Skanuje dokument i zwraca obiekt Promise, który jest rozwiązywany za pomocą obiektu ScanResults. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast tego zostaną do niego przekazane zwrócone dane.

Parametry

  • Opcje

    Obiekt zawierający parametry skanowania.

Zwroty

  • Promise<ScanResults>

    Chrome 96 lub nowsza wersja browser.* od Chrome 148

    Zwraca obiekt Promise, który rozwiązuje się z wynikami skanowania.

setOptions()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
)
: Promise<SetOptionsResponse>

Ustawia opcje określonego skanera i zwraca obiekt Promise, który rozwiązuje się z obiektem SetOptionsResponse zawierającym wynik próby ustawienia każdej wartości w kolejności przekazanego obiektu OptionSetting. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.

Parametry

  • scannerHandle

    tekst

    Uchwyt skanera, dla którego chcesz ustawić opcje. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji openScanner.

  • Opcje

    Lista obiektów OptionSetting, które mają zostać zastosowane do skanera.

Zwroty

startScan()

Chrome 125 lub nowsza browser.* od Chrome 148
browser.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
)
: Promise<StartScanResponse>

Rozpoczyna skanowanie na określonym skanerze i zwraca obiekt Promise, który rozwiązuje się z StartScanResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Jeśli wywołanie się powiedzie, odpowiedź będzie zawierać uchwyt zadania, którego można użyć w kolejnych wywołaniach, aby odczytać dane skanowania lub anulować skanowanie.

Parametry

  • scannerHandle

    tekst

    Uchwyt otwartego skanera. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji openScanner.

  • Obiekt StartScanOptions wskazujący opcje, które mają być używane podczas skanowania. Właściwość StartScanOptions.format musi pasować do jednego z wpisów zwróconych w ScannerInfo skanera.

Zwroty

  • Zwraca obiekt Promise, który rozwiązuje się z wynikiem.