chrome.documentScan

Opis

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

Interfejs Document Scan API umożliwia aplikacjom i rozszerzeniom przeglądanie zawartości dokumentów papierowych na podłączonym skanerze dokumentów.

Uprawnienia

documentScan

Dostępność

Chrome 44 i nowsze Tylko ChromeOS
Dostępność dla użytkowników interfejsu API dodanych później jest wyświetlana wraz z tymi użytkownikami.

Pojęcia i zastosowanie

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

Proste skanowanie

Na potrzeby prostych przypadków użycia, czyli takich, które działają z dowolnym skanerem i nie wymagają kontroli nad konfiguracją, wywołaj funkcję scan(). Ta metoda pobiera obiekt ScanOptions i zwraca obietnicę, która rozwiązuje się za pomocą obiektu ScanResults. Możliwości tej opcji są ograniczone do liczby skanowań i typów MIME, które będą akceptowane przez element wywołujący. Skanowania są zwracane jako adresy URL do wyświetlenia w tagu <img> interfejsu użytkownika.

Złożone skanowanie

Złożone skanowanie jest wykonywane w 3 fazach opisanych w tej sekcji. Ten schemat nie opisuje każdego argumentu metody ani każdej właściwości zwróconej w odpowiedzi. Ma ono jedynie stanowić ogólny przewodnik po pisaniu kodu skanera.

Kampanie Discovery

  1. Zadzwoń pod numer getScannerList(). Dostępne skanery są zwracane w obietnicy, która kończy się ciągiem 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 ze zwróconej tablicy i zapisz wartość jego właściwości scannerId.

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

Konfiguracja skanera

  1. Zadzwoń pod numer openScanner(), podając zapisany identyfikator skanera. Zwraca obietnicę, która kończy się wartością OpenScannerResponse. Obiekt odpowiedzi zawiera:

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

    • Właściwość opcji zawierająca właściwości związane ze skanerem, które musisz skonfigurować. Więcej informacji znajdziesz w artykule Pobieranie opcji skanera.

  2. (Opcjonalnie) Jeśli chcesz, aby użytkownik podał wartości opcji skanera, utwórz interfejs. Potrzebne będą opcje skanera udostępnione w poprzednim kroku oraz pobrane przez niego grupy opcji. Więcej informacji znajdziesz w artykule Tworzenie interfejsu użytkownika.

  3. Utwórz tablicę obiektów OptionSetting za pomocą wartości automatycznych lub przekazywanych przez użytkownika. Więcej informacji znajdziesz w artykule Ustawianie opcji skanera.

  4. Przekaż tablicę obiektów OptionSetting do setOptions(), aby ustawić opcje skanera. Zwraca obietnicę, która kończy się ciągiem SetOptionsResponse. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.

    Zmiana jednej opcji może spowodować zmianę ograniczeń innej opcji, więc konieczne może być powtórzenie tych czynności kilka razy.

Skanowanie

  1. Utwórz obiekt StartScanOptions i przekaż go do startScan(). Zwraca obietnicę, która kończy się wartością StartScanResponse. Właściwość job to nick, którego będziesz używać do odczytu danych skanowania lub anulowania skanowania.

  2. Przekaż nick zadania do readScanData(). Zwraca obietnicę, która kończy się z obiektem ReadScanDataResponse. Jeśli odczyt danych się powiedzie, jej właściwość result równa się SUCCESS, a jej właściwość data zawiera element ArrayBuffer z częścią skanowania. Uwaga: estimatedCompletion zawiera szacowany odsetek łącznej liczby dostarczonych do tej pory danych.

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

Po osiągnięciu końca skanowania wywołaj closeScanner() z nickem skanera zapisanym w kroku 3. Zwraca obietnicę, która kończy się wartością CloseScannerResponse. Wywołanie cancelScan() w dowolnym momencie po utworzeniu zadania spowoduje zakończenie skanowania.

Obiekty odpowiedzi

Wszystkie metody zwracają obietnicę, która kończy się obiektem odpowiedzi jakiegoś rodzaju. Większość z nich zawiera właściwość result, której wartość jest elementem OperationResult. Niektóre właściwości obiektów odpowiedzi nie zawierają wartości, chyba że wartość result ma określoną wartość. Relacje te są opisane w dokumentacji każdego obiektu odpowiedzi.

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

Opcje skanera

Opcje skanera znacznie się różnią w zależności od urządzenia. W związku z tym nie można wyświetlić opcji skanera bezpośrednio w interfejsie documentScan API. Aby obejść ten problem, obiekty OpenScannerResponse (pobierane za pomocą openScanner()) i SetOptionsResponse (obiekt odpowiedzi dla setOptions()) zawierają właściwość options, która jest obiektem zawierającym opcje związane ze skanerem. Każda opcja jest mapowaniem par klucz-wartość, w którym klucz jest opcją zależnie od urządzenia, a wartość to wystąpienie obiektu ScannerOption.

Ogólnie wygląda to tak:

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

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

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

Utwórz interfejs użytkownika

Chociaż korzystanie z tego interfejsu API nie jest wymagane, możesz chcieć, aby użytkownik sam wybierał wartość dla konkretnej opcji. Wymaga to interfejsu użytkownika. Użyj narzędzia OpenScannerResponse (otwartego przez narzędzie openScanner()), aby pobrać opcje dołączonego skanera zgodnie z opisem w poprzedniej sekcji.

Niektóre skanery grupują opcje w sposób odpowiedni dla urządzenia. Nie wpływają one na działanie opcji, ale ponieważ te grupy mogą być wspomniane w dokumentacji usługi skanera, powinny być one pokazywane użytkownikowi. Możesz pobrać te grupy, wywołując metodę getOptionGroups(). Zwraca to obietnicę, która zamyka się z obiektem GetOptionGroupsResponse. Właściwość groups zawiera tablicę grup specyficzną dla skanera. Na podstawie informacji z tych grup uporządkuj opcje wyświetlania w obszarze OpenScannerResponse.

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

Jak wspomnieliśmy w konfiguracji Scannera, zmiana jednej opcji może zmienić ograniczenia dotyczące innej. Właśnie dlatego setOptionsResponse (obiekt odpowiedzi dla setOptions()) zawiera inną właściwość options. Służy do aktualizowania interfejsu. Następnie w razie potrzeby powtórz te czynności, aż ustawisz wszystkie opcje.

Ustawianie opcji skanera

Ustaw opcje skanera, przekazując do setOptions() tablicę obiektów OptionSetting. Przykład znajduje się w sekcji Skanowanie strony o rozmiarze 1 literowym.

Przykłady

Pobieranie strony jako obiektu blob

W tym przykładzie pokazujemy, jak pobrać stronę ze skanera w postaci obiektu blob, oraz pokazujemy użycie właściwości startScan() i readScanData() z użyciem wartości OperationResult.

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

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

Skanuj stronę w formacie 1 literowym

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

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

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

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

Pokaż konfigurację

Jak już wspomnieliśmy, wyświetlenie użytkownikowi opcji konfiguracji skanera wymaga wywołania getOptionGroups() oprócz opcji skanera zwracanych w wyniku wywołania openScanner(). Dzięki temu opcje będą widoczne dla użytkowników z grup utworzonych przez producenta. Ten przykład pokazuje, jak to zrobić.

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

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

Typy

CancelScanResponse

Oczekuje

Właściwości

  • zadanie

    string,

    Udostępnia ten sam nick, który został przekazany do cancelScan().

  • Wynik anulowania skanowania backendu. Jeśli wynik to OperationResult.SUCCESS lub OperationResult.CANCELLED, skanowanie zostało anulowane, a skaner jest gotowy do rozpoczęcia nowego skanowania. Jeśli wynikiem jest OperationResult.DEVICE_BUSY , skaner nadal przetwarza żądanie anulowania. Rozmówca powinien poczekać chwilę i spróbować ponownie wysłać żądanie. Inne wartości wyników wskazują trwały błąd, którego nie należy powtarzać.

CloseScannerResponse

Oczekuje

Właściwości

  • Wynik zamknięcia skanera. Nawet jeśli wartością inną niż SUCCESS, nick będzie nieprawidłowy i nie należy go używać w kolejnych operacjach.

  • scannerHandle

    string,

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

Configurability

Oczekuje

sposób zmiany opcji;

Typ wyliczeniowy

"NOT_CONFIGURABLE"
Ta opcja jest tylko do odczytu.

"SOFTWARE_CONFIGURABLE"
Tę opcję można ustawić w oprogramowaniu.

"HARDWARE_CONFIGURABLE"
Tę opcję można ustawić, przełączając lub naciskając przycisk na skanerze.

ConnectionType

Oczekuje

Wskazuje sposób podłączenia skanera do komputera.

Typ wyliczeniowy

ConstraintType

Oczekuje

Typ danych ograniczenia reprezentowanego przez OptionConstraint.

Typ wyliczeniowy

"INT_RANGE"
Ograniczenie dotyczące zakresu OptionType.INT wartości. Właściwości min, max i quant obiektu OptionConstraint będą miały wartość long, a jego właściwość list zostanie nieskonfigurowana.

"FIXED_RANGE"
Ograniczenie zakresu wartości OptionType.FIXED. Właściwości min, max i quant obiektu OptionConstraint będą miały wartość double, a jej właściwość list zostanie nieskonfigurowana.

"INT_LIST"
Ograniczenie na określonej liście wartości OptionType.INT. Właściwość OptionConstraint.list będzie zawierać wartości long, a pozostałe właściwości nie będą skonfigurowane.

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

"STRING_LIST"
Ograniczenie na określonej liście wartości OptionType.STRING. Właściwość OptionConstraint.list będzie zawierać wartości DOMString, a pozostałe właściwości nie będą skonfigurowane.

DeviceFilter

Oczekuje

Właściwości

  • local

    wartość logiczna opcjonalna

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

  • Bezpieczny

    wartość logiczna opcjonalna

    Zwracaj tylko te skanery, które korzystają z bezpiecznego przesyłania, takiego jak USB lub TLS.

GetOptionGroupsResponse

Oczekuje

Właściwości

  • grupy

    OptionGroup[] opcjonalnie

    Jeśli result to SUCCESS, udostępnia listę grup opcji w kolejności podanej przez sterownik skanera.

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

  • scannerHandle

    string,

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

GetScannerListResponse

Oczekuje

Właściwości

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

  • skanery

    Prawdopodobnie pusta lista skanerów pasujących do podanego DeviceFilter.

OpenScannerResponse

Oczekuje

Właściwości

  • Opcje

    obiekt opcjonalnie

    Jeśli result to SUCCESS, udostępnia mapowanie par klucz-wartość, w którym klucz jest opcją zależną od urządzenia, a wartością jest wystąpienie elementu ScannerOption.

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

  • scannerHandle

    ciąg znaków opcjonalny

    Jeśli result to SUCCESS, jest to uchwyt skanera, który może służyć do dalszych operacji.

  • scannerId

    string,

    Identyfikator skanera przekazany do openScanner().

OperationResult

Oczekuje

Wyliczenie, które wskazuje wynik każdej operacji.

Typ wyliczeniowy

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

"SUCCESS"
Operacja powiodła się.

"UNSUPPORTED"
Ta operacja nie jest obsługiwana.

"CANCELLED"
operacja została anulowana.

„DEVICE_BUSY”
Urządzenie jest zajęte.

„NIEPRAWIDŁOWE”
Dane lub argument przekazany do metody są nieprawidłowe.

"WRONG_TYPE"
Podana wartość to nieprawidłowy typ danych dla opcji bazowej.

"EOF"
Nie ma więcej danych.

"ADF_JAMMED"
Podajnik dokumentów się zaciął.

"ADF_EMPTY"
Podajnik dokumentów jest pusty.

"COVER_OPEN"
Pokrywa jest otwarta.

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

"ACCESS_DENIED"
Urządzenie wymaga uwierzytelnienia.

"NO_MEMORY"
Chromebook ma za mało pamięci, aby ukończyć operację.

„UNREACHABLE”
Urządzenie jest nieosiągalne.

„MISSING”
Urządzenie jest odłączone.

„INTERNAL_ERROR”
Wystąpił błąd nie tylko w aplikacji wywołującej.

OptionConstraint

Oczekuje

Właściwości

  • lista

    string[]|number[] optional

  • maksimum

    Liczba opcjonalnie

  • min

    Liczba opcjonalnie

  • kwanty

    Liczba opcjonalnie

  • Niestandardowy typ treści

OptionGroup

Oczekuje

Właściwości

  • członkowie

    string[]

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

  • title

    string,

    Oferuje tytuł do wydrukowania, na przykład „Opcje geometrii”.

OptionSetting

Oczekuje

Właściwości

  • nazwa

    string,

    Wskazuje nazwę opcji do ustawienia.

  • Niestandardowy typ treści

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

  • value

    string|number|boolean|number[] optional

    Wskazuje wartość do ustawienia. Pozostaw nieskonfigurowane, aby żądać automatycznego ustawienia dla opcji z włączoną funkcją autoSettable. Typ danych podany dla funkcji value musi być zgodny z parametrem type.

OptionType

Oczekuje

Typ danych opcji.

Typ wyliczeniowy

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

"BOOL"
value ma wartość truefalse.

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

„NAPRAWO”
Wynik zmiennoprzecinkowy w zakresie -32768-32767.9999 z rozdzielczością 1/65535. W zależności od tego, czy dana opcja przyjmuje więcej niż 1 wartość, właściwość value będzie miała wartość podwójny lub podwójny[]. Wartości podwójne, których nie można dokładnie przedstawić, zostaną zaokrąglone do dostępnego zakresu i dokładności.

"STRING"
Sekwencja bajtów oprócz NUL ('\0'). Właściwość value będzie mieć typ DOMString.

"BUTTON"
Opcja tego typu nie ma wartości. Ustawienie tego typu opcji powoduje wystąpienie specyficznego dla niej efektu ubocznego w sterowniku skanera. Na przykład opcja wpisana za pomocą przycisku może zostać użyta przez sterownik skanera, aby umożliwić wybór wartości domyślnych lub przekazać automatycznemu podajnikowi dokumentów informację o przejściu do następnej kartki.

"GROUP"
Opcja grupowania. Brak wartości. Jest to uwzględniane w celu zapewnienia zgodności, ale zwykle nie będzie zwracane w wartościach ScannerOption. Użyj narzędzia getOptionGroups(), aby pobrać listę grup z ich opcjami członków.

OptionUnit

Oczekuje

Wskazuje typ danych dla ScannerOption.unit.

Typ wyliczeniowy

"BEZ JEDNOSTKI"
Ta wartość jest liczbą bez jednostek. Może to być na przykład próg.

"PIXEL"
Wartość to liczba pikseli, na przykład wymiary skanowania.

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

"MM"
Ta wartość jest mierzona w milimetrach, np. w wymiarach skanowania.

"DPI"
Ta wartość jest mierzona w kropkach na cal (np. w rozdzielczości).

"PERCENT"
Wartość to procent, np. jasność.

"MIKROSEKUNDA"
Ta wartość jest mierzona w mikrosekundach, np. czas ekspozycji.

ReadScanDataResponse

Oczekuje

Właściwości

  • dane

    Tablica SlateBuffer opcjonalna

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

  • estimatedCompletion

    Liczba opcjonalnie

    Jeśli result ma wartość SUCCESS, to szacowana ilość wszystkich danych skanowania dostarczonych do tej pory (z zakresu od 0 do 100).

  • zadanie

    string,

    Podaje nick zadania przekazany do readScanData().

  • Wynik odczytu danych. Jeśli jego wartość to SUCCESS, data zawiera następny (prawdopodobnie o zerowej długości) fragment danych zdjęcia, który jest gotowy do odczytania. Jeśli jego wartością jest EOF, data zawiera ostatni fragment danych obrazu.

ScannerInfo

Oczekuje

Właściwości

  • connectionType

    Wskazuje sposób podłączenia skanera do komputera.

  • deviceUuid

    string,

    Do porównywania z innymi wpisami ScannerInfo, które wskazują na to samo urządzenie fizyczne.

  • imageFormats

    string[]

    Tablica typów MIME, których można żądać w przypadku zwracanych skanowań.

  • producent

    string,

    Producent skanera.

  • model

    string,

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

  • nazwa

    string,

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

  • protocolType

    string,

    Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera (np. Mopria, WSD lub epsonds). Przydaje się to głównie do umożliwienia użytkownikowi wyboru protokołów, jeśli urządzenie obsługuje wiele protokołów.

  • scannerId

    string,

    Identyfikator konkretnego skanera.

  • Bezpieczny

    boolean

    Jeśli ma wartość prawda, pasywny detektor (np. TLS lub USB) nie może przechwycić danych połączenia ze skanerem.

ScannerOption

Oczekuje

Właściwości

  • możliwość konfiguracji

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

  • ograniczenie

    OptionConstraint opcjonalnie

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

  • opis

    string,

    Dłuższy opis opcji.

  • isActive

    boolean

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

  • isAdvanced

    boolean

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

  • isAutoSettable

    boolean

    Może być ustawiane automatycznie przez sterownik skanera.

  • isDetectable

    boolean

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

  • isEmulated

    boolean

    Jeśli ma wartość prawda, emulacja przez sterownik skanera.

  • nazwa

    string,

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

  • title

    string,

    Jednowierszowy tytuł do wydrukowania.

  • Niestandardowy typ treści

    Typ danych zawarty w usłudze value – wymagany do ustawienia tej opcji.

  • Jednostka

    Jednostka miary danej opcji.

  • value

    string|number|boolean|number[] optional

    Bieżąca wartość opcji (jeśli ma znaczenie). Pamiętaj, że typ danych tej usługi musi odpowiadać typowi danych określonemu w polu type.

ScanOptions

Właściwości

  • maxImages

    Liczba opcjonalnie

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

  • mimeTypes

    string[] opcjonalny

    Typy MIME akceptowane przez element wywołujący.

ScanResults

Właściwości

  • dataUrls

    string[]

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

  • mimeType

    string,

    Typ MIME elementu dataUrls.

SetOptionResult

Oczekuje

Właściwości

  • nazwa

    string,

    Wskazuje nazwę ustawionej opcji.

  • Wskazuje wynik ustawienia opcji.

SetOptionsResponse

Oczekuje

Właściwości

  • Opcje

    obiekt opcjonalnie

    Po próbie ustawienia wszystkich podanych opcji zaktualizowane mapowanie par klucz-wartość z nazw opcji na wartości ScannerOption zawierające nową konfigurację. Ma tę samą strukturę co właściwość options w OpenScannerResponse.

    Ta właściwość będzie ustawiona nawet wtedy, gdy niektóre opcje nie zostały skonfigurowane, ale nie będzie ona ustawiona, jeśli nie uda się pobrać zaktualizowanej konfiguracji (np. jeśli skaner jest odłączony w trakcie skanowania).

  • wyniki

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

  • scannerHandle

    string,

    Podaje uchwyt skanera przekazany do setOptions().

StartScanOptions

Oczekuje

Właściwości

  • reklamy

    string,

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

  • maxReadSize

    Liczba opcjonalnie

    Jeśli określona wartość jest inna niż 0, ogranicza maksymalną liczbę przeskanowanych bajtów zwróconych w pojedynczej odpowiedzi readScanData na tę wartość. Najmniejsza dozwolona wartość to 32 768 (32 KB). Jeśli ta właściwość nie jest określona, rozmiar zwróconego fragmentu może być tak duży, jak cały zeskanowany obraz.

StartScanResponse

Oczekuje

Właściwości

  • zadanie

    ciąg znaków opcjonalny

    Jeśli result ma wartość SUCCESS, podaje nick, który może służyć do odczytu danych skanowania lub anulowania zadania.

  • Wynik uruchomienia skanowania. Jeśli wartością jest SUCCESS, wypełniona zostanie właściwość job.

  • scannerHandle

    string,

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

Metody

cancelScan()

Obietnica Oczekująca
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Anuluje rozpoczęte skanowanie i zwraca obietnicę, która kończy się z obiektem CancelScanResponse. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany.

Parametry

  • zadanie

    string,

    Nick aktywnego zadania skanowania, który został wcześniej zwrócony przez wywołanie do startScan.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (response: CancelScanResponse)=>void

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

closeScanner()

Obietnica Oczekująca
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Zamyka skaner z przekazanym uchwytem i zwraca obietnicę, która kończy się obiektem CloseScannerResponse. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany. Nawet jeśli odpowiedź się nie powiedzie, podany nick staje się nieprawidłowy i nie należy go używać w kolejnych operacjach.

Parametry

  • scannerHandle

    string,

    Określa uchwyt otwartego skanera, który został wcześniej zwrócony w wyniku wywołania openScanner.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (response: CloseScannerResponse)=>void

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

getOptionGroups()

Obietnica Oczekująca
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Pobiera nazwy grup i opcje członków ze skanera otwartego wcześniej przez openScanner. Ta metoda zwraca obietnicę, która zwraca wartość z obiektem GetOptionGroupsResponse. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane są do niej zwrócone dane.

Parametry

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

getScannerList()

Obietnica Oczekująca
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

Pobiera listę dostępnych skanerów i zwraca obietnicę, która rozwiązuje się za pomocą obiektu GetScannerListResponse. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane są do niej zwrócone dane.

Parametry

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

openScanner()

Obietnica Oczekująca
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

Otwiera skaner z dostępem na wyłączność i zwraca obietnicę, która kończy się obiektem OpenScannerResponse. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane są do niej zwrócone dane.

Parametry

  • scannerId

    string,

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

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (response: OpenScannerResponse)=>void

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

readScanData()

Obietnica Oczekująca
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Odczytuje następny fragment dostępnych danych obrazu z aktywnego uchwytu zadania i zwraca obietnicę, która kończy się z obiektem ReadScanDataResponse. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany.

**Uwaga:**wynik odpowiedzi może mieć wartość SUCCESS z elementem data o zerowej długości. Oznacza to, że skaner nadal działa, ale nie ma jeszcze gotowych danych. Rozmówca powinien poczekać chwilę i spróbować ponownie.

Po zakończeniu zadania skanowania odpowiedź będzie miała wartość EOF. Ta odpowiedź może zawierać ostateczną wartość użytkownika data inną niż 0.

Parametry

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

scan()

Obietnica
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

Skanuje dokumenty i zwraca obietnicę, która zostaje rozpoznana jako obiekt ScanResults. Jeśli do tej funkcji jest przekazywane wywołanie zwrotne, zwracane dane są do niej przekazywane.

Parametry

  • Opcje

    Obiekt zawierający parametry skanowania.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (result: ScanResults)=>void

Zwroty

  • Promise<ScanResults>

    Chrome 96 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

setOptions()

Obietnica Oczekująca
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Ustawia opcje na wskazanym skanerze i zwraca obietnicę, która zwraca obiekt SetOptionsResponse zawierający wynik próby ustawienia każdej wartości w kolejności przekazanego obiektu OptionSetting. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany.

Parametry

  • scannerHandle

    string,

    Uchwyt skanera, za pomocą którego można ustawić opcje. Powinna to być wartość zwrócona wcześniej z wywołania funkcji openScanner.

  • Opcje

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

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (response: SetOptionsResponse)=>void

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

startScan()

Obietnica Oczekująca
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Rozpoczyna skanowanie na określonym skanerze i zwraca obietnicę, która kończy się błędem StartScanResponse. W przypadku użycia wywołania zwrotnego obiekt jest do niego przekazywany. Jeśli wywołanie się udało, odpowiedź zawiera uchwyt zadania, którego można używać w kolejnych wywołaniach do odczytu danych skanowania lub anulowania skanowania.

Parametry

  • scannerHandle

    string,

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

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

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (response: StartScanResponse)=>void

Zwroty

  • Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.