chrome.documentScan

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

documentScan

Dostępność

Chrome 44 i nowsze Tylko ChromeOS
Dostępność dla użytkowników interfejsu API dodanych później jest wyświetlana razem z informacjami o tych użytkownikach.

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

  1. 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.
  2. 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. ScannerInfo zawiera też właściwość imageFormats, która zawiera tablicę obsługiwanych typów obrazów.

Konfiguracja skanera

  1. 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.

  2. (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.

  3. 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.

  4. Przekaż tablicę obiektów OptionSetting do 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

  1. Utwórz obiekt StartScanOptions i przekaż go do funkcji startScan(). Zwraca Promise, który jest rozwiązywany za pomocą StartScanResponse. Jego właściwość job to uchwyt, którego będziesz używać do odczytywania danych skanowania lub anulowania skanowania.

  2. 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ść result ma wartość SUCCESS, a właściwość data zawiera ArrayBuffer z częścią skanu. Pamiętaj, że estimatedCompletion zawiera szacunkowy odsetek łącznej ilości danych, które zostały dotychczas dostarczone.

  3. Powtarzaj poprzedni krok, aż właściwość result będzie równa EOF lub 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()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()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

Chrome 125 lub nowsza

Właściwości

  • zadanie

    ciąg znaków

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

  • Wynik anulowania skanowania z backendu. Jeśli wynikiem jest 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. 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

Chrome 125 lub nowsza

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 żadnych dalszych operacji.

  • scannerHandle

    ciąg znaków

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

Configurability

Chrome 125 lub nowsza

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

Określa, w jaki sposób skaner jest podłączony do komputera.

Typ wyliczeniowy

„UNSPECIFIED”

„USB”

"NETWORK"

ConstraintType

Chrome 125 lub nowsza

Typ danych ograniczenia reprezentowanego przez OptionConstraint.

Typ wyliczeniowy

„INT_RANGE”
Ograniczenie zakresu wartości OptionType.INT. Właściwości min, maxquant 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

Chrome 125 lub nowsza

Właściwości

  • lokalne

    wartość logiczna opcjonalna

    Zwraca tylko skanery podłączone bezpośrednio do komputera.

  • Bezpieczny

    wartość logiczna opcjonalna

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

GetOptionGroupsResponse

Chrome 125 lub nowsza

Właściwości

  • grupy

    OptionGroup[] opcjonalne

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

  • Wynik pobierania grup opcji. Jeśli wartość tego pola to SUCCESS, zostanie wypełnione pole groups.

  • scannerHandle

    ciąg znaków

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

GetScannerListResponse

Chrome 125 lub nowsza

Właściwości

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

  • skanery,

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

OpenScannerResponse

Chrome 125 lub nowsza

Właściwości

  • Opcje

    obiekt opcjonalny

    Jeśli result ma wartość SUCCESS, udostępnia mapowanie klucz-wartość, w którym klucz jest opcją specyficzną dla urządzenia, a wartość jest instancją ScannerOption.

  • Wynik otwarcia skanera. Jeśli wartość tego parametru to SUCCESS, zostaną wypełnione właściwości scannerHandleoptions.

  • scannerHandle

    string opcjonalny

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

  • scannerId

    ciąg znaków

    Identyfikator skanera przekazany do openScanner().

OperationResult

Chrome 125 lub nowsza

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

Chrome 125 lub nowsza

Właściwości

  • lista

    string[] | number[] opcjonalny

  • maksimum

    number opcjonalny

  • min

    number opcjonalny

  • quant

    number opcjonalny

OptionGroup

Chrome 125 lub nowsza

Właściwości

  • członkowie

    string[]

    Tablica nazw opcji w kolejności podanej przez sterownik.

  • tytuł

    ciąg znaków

    Zawiera tytuł do wydruku, np. „Opcje geometrii”.

OptionSetting

Chrome 125 lub nowsza

Właściwości

  • nazwa

    ciąg znaków

    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ść do ustawienia. Pozostaw to pole bez ustawień, aby poprosić o automatyczne ustawienie opcji, które mają włączoną funkcję autoSettable. Typ danych podany dla value musi być zgodny z type.

OptionType

Chrome 125 lub nowsza

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.

OptionUnit

Chrome 125 lub nowsza

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ść 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

Chrome 125 lub nowsza

Właściwości

  • dane

    ArrayBuffer opcjonalny

    Jeśli wartość result to SUCCESS, zawiera kolejny fragment danych zeskanowanego obrazu. Jeśli result ma wartość EOF, zawiera ostatni fragment danych zeskanowanego obrazu.

  • estimatedCompletion

    number opcjonalny

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

  • zadanie

    ciąg znaków

    Zwraca uchwyt zadania przekazany do readScanData().

  • Wynik odczytu danych. Jeśli jego wartość to SUCCESS, data zawiera następny (być może pusty) fragment danych obrazu gotowy do odczytu. Jeśli jego wartość to EOF, data zawiera ostatni fragment danych obrazu.

ScannerInfo

Chrome 125 lub nowsza

Właściwości

  • connectionType

    Określa, w jaki sposób skaner jest podłączony do komputera.

  • deviceUuid

    ciąg znaków

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

  • imageFormats

    string[]

    Tablica typów MIME, które można przesłać w żądaniu w przypadku zwracanych skanów.

  • producent

    ciąg znaków

    producent skanera;

  • model

    ciąg znaków

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

  • nazwa

    ciąg znaków

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

  • protocolType

    ciąg znaków

    Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera, np. Mopria, WSD lub epsonds. Jest to przydatne przede wszystkim w przypadku, gdy użytkownik ma możliwość wyboru protokołu, jeśli urządzenie obsługuje ich kilka.

  • scannerId

    ciąg znaków

    Identyfikator konkretnego skanera.

  • Bezpieczny

    Wartość logiczna

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

ScannerOption

Chrome 125 lub nowsza

Właściwości

  • możliwość konfiguracji,

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

  • ograniczenie

    OptionConstraint opcjonalny

    Określa OptionConstraint w bieżącej opcji skanera.

  • opis

    ciąg znaków

    Dłuższy opis opcji.

  • isActive

    Wartość logiczna

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

  • isAdvanced

    Wartość logiczna

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

  • isAutoSettable

    Wartość logiczna

    Może być automatycznie ustawiony przez sterownik skanera.

  • isDetectable

    Wartość logiczna

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

  • isEmulated

    Wartość logiczna

    Emulowane przez sterownik skanera, jeśli ma wartość true.

  • nazwa

    ciąg znaków

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

  • tytuł

    ciąg znaków

    Tytuł do wydrukowania w jednym wierszu.

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

  • Jednostka

    Jednostka miary dla tej opcji.

  • wartość

    string | number | boolean | number[] opcjonalnie

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

ScanOptions

Właściwości

  • maxImages

    number opcjonalny

    Liczba dozwolonych skanowanych obrazów. Wartość domyślna to 1.

  • mimeTypes

    string[] opcjonalne

    Typy MIME akceptowane przez rozmówcę.

ScanResults

Właściwości

  • dataUrls

    string[]

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

  • mimeType

    ciąg znaków

    Typ MIME elementu dataUrls.

SetOptionResult

Chrome 125 lub nowsza

Właściwości

  • nazwa

    ciąg znaków

    Zawiera nazwę ustawionej opcji.

  • Wskazuje wynik ustawienia opcji.

SetOptionsResponse

Chrome 125 lub nowsza

Właściwości

  • Opcje

    obiekt 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 usługa optionsOpenScannerResponse.

    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).

  • wyniki

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

  • scannerHandle

    ciąg znaków

    Zwraca uchwyt skanera przekazany do setOptions().

StartScanOptions

Chrome 125 lub nowsza

Właściwości

  • reklamy

    ciąg znaków

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

  • maxReadSize

    number opcjonalny

    Jeśli podano wartość różną od zera, ogranicza maksymalną liczbę skanowanych 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ć równy rozmiarowi całego zeskanowanego obrazu.

StartScanResponse

Chrome 125 lub nowsza

Właściwości

  • zadanie

    string opcjonalny

    Jeśli result ma wartość SUCCESS, zwraca uchwyt, którego można użyć do odczytania danych skanowania lub anulowania zadania.

  • Wynik rozpoczęcia skanowania. Jeśli wartość tego pola to SUCCESS, zostanie wypełnione pole job.

  • scannerHandle

    ciąg znaków

    Zwraca ten sam uchwyt skanera, który został przekazany do funkcji startScan().

Metody

cancelScan()

Chrome 125 lub nowsza
chrome.documentScan.cancelScan(
  job: string,
)
: Promise<CancelScanResponse>

Anuluje rozpoczęte skanowanie i zwraca obietnicę, która jest realizowana za pomocą obiektu CancelScanResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.

Parametry

  • zadanie

    ciąg znaków

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

Zwroty

closeScanner()

Chrome 125 lub nowsza
chrome.documentScan.closeScanner(
  scannerHandle: string,
)
: Promise<CloseScannerResponse>

Zamyka skaner za pomocą przekazanego uchwytu i zwraca obietnicę, która jest realizowana za pomocą obiektu CloseScannerResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Nawet jeśli odpowiedź nie jest pozytywna, podany uchwyt staje się nieprawidłowy i nie należy go używać do dalszych operacji.

Parametry

  • scannerHandle

    ciąg znaków

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

Zwroty

getOptionGroups()

Chrome 125 lub nowsza
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

  • scannerHandle

    ciąg znaków

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

Zwroty

getScannerList()

Chrome 125 lub nowsza
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

Zwroty

openScanner()

Chrome 125 lub nowsza
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

  • scannerId

    ciąg znaków

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

Zwroty

readScanData()

Chrome 125 lub nowsza
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

  • zadanie

    ciąg znaków

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

Zwroty

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

  • Opcje

    Obiekt zawierający parametry skanowania.

Zwroty

setOptions()

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

Ustawia opcje na określonym skanerze i zwraca obietnicę, która jest spełniana przez obiekt SetOptionsResponse zawierający wynik próby ustawienia każdej wartości w kolejności przekazanego obiektu OptionSetting. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.

Parametry

  • scannerHandle

    ciąg znaków

    Uchwyt skanera, na którym można ustawić opcje. Powinna to być wartość zwrócona wcześniej przez wywołanie funkcji openScanner.

  • Opcje

    Lista OptionSetting obiektów, które mają być zastosowane w skanerze.

Zwroty

startScan()

Chrome 125 lub nowsza
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

  • scannerHandle

    ciąg znaków

    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 być zgodna z jednym z wpisów zwróconych w ScannerInfo skanera.

Zwroty