chrome.documentScan

Opis

Aby wykrywać i pobierać obrazy ze skanerów dokumentów, używaj interfejsu API chrome.documentScan.

Interfejs DocumentScan 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 w systemie ChromeOS
Dostępność dla użytkowników dodanych później do interfejsu API jest wyświetlana razem z tymi użytkownikami.

Pojęcia i zastosowanie

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

Prosty skan

W przypadku prostych zastosowań, czyli takich, które mogą działać z dowolnym skanerem i nie wymagają kontroli konfiguracji, wywołaj funkcję scan(). Ta metoda przyjmuje obiekt ScanOptions i zwraca obietnicę, która zwraca obiekt ScanResults. Możliwości tej opcji są ograniczone do liczby skanowań i typów MIME akceptowanych przez wywołującego. Skanowanie zwraca adresy URL do wyświetlenia w tagu <img> w interfejsie użytkownika.

Skanowanie złożone

Złożone skanowania są przeprowadzane w 3 etapach, jak opisano w tej sekcji. Ten zarys nie opisuje wszystkich argumentów metody ani wszystkich właściwości zwracanych w odpowiedzi. Ma on jedynie stanowić ogólny przewodnik po pisaniu kodu skanera.

Odkrywanie treści

  1. Zadzwoń pod numer getScannerList(). Dostępne skanery są zwracane w obietnicy, która jest realizowana z GetScannerListResponse.

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

    Użyj właściwości poszczególnych obiektów ScannerInfo, aby odróżnić liczne obiekty dla tego samego skanera. Obiekty ze współpracującego 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 zwraca wartość 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 sekcji Opcje wyodrębniania skanera.

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

  3. Tworzenie tablicy obiektów OptionSetting za pomocą wartości z automatycznego zakupu reklam lub podanych 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 zwraca SetOptionsResponse. Ten obiekt zawiera zaktualizowaną wersję opcji skanera pobranych w kroku 1 konfiguracji skanera.

    Ponieważ zmiana jednej opcji może zmienić ograniczenia dotyczące innej opcji, może być konieczne powtórzenie tych czynności kilka razy.

Skanowanie

  1. Utwórz obiekt StartScanOptions i przenieś go do startScan(). Zwraca obietnicę, która zwraca StartScanResponse. Jego właściwość job to uchwyt, którego użyjesz do odczytania danych skanowania lub anulowania skanowania.

  2. Przekaż identyfikator zadania do funkcji readScanData(). Zwraca obietnicę, która zwraca obiekt ReadScanDataResponse. Jeśli dane zostały odczytane, właściwość result ma wartość SUCCESS, a właściwość data zawiera wartość ArrayBufferz częścią skanowania. Pamiętaj, że estimatedCompletion zawiera szacowany odsetek łącznej liczby 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 identyfikatorem skanera zapisanym w kroku 3. Zwraca obietnicę, która zwraca wartość CloseScannerResponse. Wywołanie funkcji cancelScan() w dowolnym momencie po utworzeniu zadania kończy skanowanie.

Obiekty odpowiedzi

Wszystkie metody zwracają obietnicę, która zwraca obiekt 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ść atrybutu result będzie określona. Te relacje są opisane w opisie każdego obiektu odpowiedzi.

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

Opcje skanera

Opcje skanera różnią się znacznie w zależności od urządzenia. W związku z tym nie można odzwierciedlać opcji skanera bezpośrednio w interfejsie documentScan API. Aby to obejść, obiekt OpenScannerResponse (pobierany za pomocą obiektu 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 to mapowanie klucz-wartość, gdzie kluczem jest opcja specyficzna dla urządzenia, a wartością jest instancja ScannerOption.

Struktura wygląda mniej więcej tak:

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

Wyobraź sobie na przykład skaner, który zwraca opcje o nazwach „source” i „resolution”. Struktura zwróconego obiektu options będzie wyglądać mniej więcej tak: Dla ułatwienia 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 poprosić użytkownika o wybranie wartości dla danej opcji. Wymaga to interfejsu użytkownika. Użyj okna OpenScannerResponse (otwartego przez kliknięcie openScanner()), aby pobrać opcje podłączonego skanera zgodnie z opisem w poprzedniej sekcji.

Niektóre skanery grupowały opcje w sposób zależny od urządzenia. Nie wpływają one na działanie opcji, ale ponieważ mogą być wymienione w dokumentacji skanera, powinny być widoczne dla użytkownika. Możesz pobrać te grupy, dzwoniąc pod numer getOptionGroups(). Zwraca obietnicę, która zwraca obiekt GetOptionGroupsResponse. Jego właściwość groups zawiera tablicę grup zależną od skanera. Informacje z tych grup służą do organizowania opcji wyświetlanych w OpenScannerResponse.

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

Jak wspomniano w sekcji Konfiguracja skanera, zmiana jednej opcji może zmienić ograniczenia dotyczące innej opcji. Dlatego obiekt setOptionsResponse (obiekt odpowiedzi dla setOptions()) zawiera inną właściwość options. Użyj tego, aby zaktualizować interfejs. Następnie powtarzaj te czynności w razie potrzeby, aż ustawisz wszystkie opcje.

Ustawianie opcji skanera

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

Przykłady

Pobieranie strony jako bloba

Ten przykład pokazuje jeden ze sposobów pobrania strony ze skanera jako bloba oraz demonstruje użycie funkcji 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" });
}

Zeskanuj jedną stronę w formacie letter

Ten przykład pokazuje, jak wybrać skaner, ustawić jego opcje i otworzyć go. Następnie pobiera zawartość pojedynczej strony i zamyka skaner. Ten proces jest demonstrowany przy użyciu atrybutó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);
}

Wyświetlanie konfiguracji

Jak już wspomnieliśmy, wyświetlanie użytkownikowi opcji konfiguracji skanera wymaga wywołania metody getOptionGroups() oprócz opcji skanera zwróconych przez wywołanie metody 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 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 w wersji 125 lub nowszej

Właściwości

  • zadanie

    ciąg znaków

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

  • Anulowanie wyniku skanowania przez backend. Jeśli wynik to OperationResult.SUCCESS lub OperationResult.CANCELLED, skanowanie zostało anulowane i skaner jest gotowy do rozpoczęcia nowego skanowania. Jeśli wynik to OperationResult.DEVICE_BUSY , skaner nadal przetwarza żądane anulowanie. Osoba dzwoniąca powinna chwilę poczekać i ponownie wysłać żądanie. Inne wartości wyników wskazują na trwały błąd, którego nie należy powtarzać.

CloseScannerResponse

Chrome w wersji 125 lub nowszej

Właściwości

  • Wynik zamknięcia skanera. Nawet jeśli ta wartość nie jest SUCCESS, identyfikator będzie nieprawidłowy i nie powinien być używany do żadnych dalszych operacji.

  • scannerHandle

    ciąg znaków

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

Configurability

Chrome w wersji 125 lub nowszej

Jak można zmienić opcję

Typ wyliczeniowy

"NOT_CONFIGURABLE"
Opcja jest tylko do odczytu.

„SOFTWARE_CONFIGURABLE”
Opcję można ustawić w oprogramowaniu.

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

ConnectionType

Chrome w wersji 125 lub nowszej

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

Typ wyliczeniowy

"UNSPECIFIED"

„USB”

"NETWORK"

ConstraintType

Chrome w wersji 125 lub nowszej

Typ danych ograniczenia reprezentowany przez OptionConstraint.

Typ wyliczeniowy

"INT_RANGE"
Ograniczenie dotyczące zakresu wartości OptionType.INT. Właściwości min, maxquant obiektu OptionConstraint będą miały wartość long, a właściwość list nie będzie miała określonej wartości.

"FIXED_RANGE"
Ograniczenie dotyczące zakresu wartości OptionType.FIXED. Właściwości min, max i quant obiektu OptionConstraint będą miały wartość double, a jego 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 inne właściwości nie będą miały ustawionych wartości.

"FIXED_LIST"
Ograniczenie dotyczące określonej listy wartości OptionType.FIXED. Właściwość OptionConstraint.list będzie zawierać wartości double, a inne właściwości nie będą miały ustawionych wartości.

"STRING_LIST"
Ograniczenie dotyczące konkretnej listy wartości OptionType.STRING. Właściwość OptionConstraint.list będzie zawierać wartości DOMString, a inne właściwości nie będą miały ustawionych wartości.

DeviceFilter

Chrome w wersji 125 lub nowszej

Właściwości

  • lokalne

    logiczna opcjonalna

    Tylko skanery zwracane bezpośrednio do komputera.

  • Bezpieczny

    logiczna opcjonalna

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

GetOptionGroupsResponse

Chrome w wersji 125 lub nowszej

Właściwości

  • grupy

    OptionGroup[] opcjonalne

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

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

  • scannerHandle

    ciąg znaków

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

GetScannerListResponse

Chrome w wersji 125 lub nowszej

Właściwości

  • Wynik wyliczenia. Pamiętaj, że nawet w przypadku błędu mogą zostać zwrócone częściowe wyniki.

  • skanery

    Możliwie pusta lista skanerów pasujących do podanego DeviceFilter.

OpenScannerResponse

Chrome w wersji 125 lub nowszej

Właściwości

  • Opcje

    object opcjonalne

    Jeśli result to SUCCESS, zapewnia mapowanie klucz-wartość, w którym kluczem jest opcja specyficzna dla urządzenia, a wartością jest instancja ScannerOption.

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

  • scannerHandle

    ciąg znaków opcjonalny

    Jeśli result to SUCCESS, uchwyt skanera, który można wykorzystać do dalszych operacji.

  • scannerId

    ciąg znaków

    Identyfikator skanera przekazany do openScanner().

OperationResult

Chrome w wersji 125 lub nowszej

Typ enumeracji, który wskazuje wynik każdej operacji.

Typ wyliczeniowy

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

„SUCCESS” (sukces)
Operacja się powiodła.

„UNSUPPORTED”
Ta operacja nie jest obsługiwana.

"CANCELLED"
Operacja została anulowana.

„DEVICE_BUSY”
Urządzenie jest zajęte.

„INVALID”
Dane lub argument przekazany metodzie są nieprawidłowe.

"WRONG_TYPE"
Podana wartość ma niewłaściwy typ danych dla opcji podstawowej.

„EOF”
Brak więcej danych.

"ADF_JAMMED"
Podajnik dokumentów jest zablokowany.

"ADF_EMPTY"
Podajnik dokumentów jest pusty.

"COVER_OPEN"
Pokrywa skanera jest otwarta.

"IO_ERROR"
Wystąpił błąd podczas komunikacji z urządzeniem.

„ACCESS_DENIED”
Urządzenie wymaga uwierzytelnienia.

"NO_MEMORY"
Na Chromebooku nie ma wystarczającej ilości pamięci do wykonania tej operacji.

„UNREACHABLE” (NIEOSIĄGALNE)
Urządzenie jest nieosiągalne.

"MISSING" (brak)
Urządzenie jest odłączone.

"INTERNAL_ERROR"
Wystąpił błąd poza aplikacją wywołującą.

OptionConstraint

Chrome w wersji 125 lub nowszej

Właściwości

  • lista

    string[] | number[] opcjonalny

  • maksimum

    number opcjonalny

  • min

    number opcjonalny

  • quant

    number opcjonalny

OptionGroup

Chrome w wersji 125 lub nowszej

Właściwości

  • członkowie

    string[]

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

  • tytuł

    ciąg znaków

    zawiera tytuł do wydrukowania, np. „Opcje geometrii”;

OptionSetting

Chrome w wersji 125 lub nowszej

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

  • wartość

    string | number | boolean | number[] opcjonalnie

    Wskazuje wartość do ustawienia. Pozostaw niewybraną, aby zażądać automatycznego ustawienia dla opcji z włączoną opcją autoSettable. Typ danych podany w przypadku value musi być zgodny z typem type.

OptionType

Chrome w wersji 125 lub nowszej

Typ danych opcji.

Typ wyliczeniowy

„UNKNOWN”
Typ danych opcji jest nieznany. Właściwość value zostanie zresetowana.

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

„INT”
Znakowana liczba całkowita 32-bitowa. Właściwość value będzie miała typ long lub long[], w zależności od tego, czy opcja przyjmuje więcej niż jedną wartość.

"FIXED"
Liczba podwójna w zakresie -32768-32767.9999 o rozdzielczości 1/65535. Właściwość value będzie miała typ double lub double[], w zależności od tego, czy opcja przyjmuje więcej niż jedną wartość. Wartości podwójne, których nie można przedstawić dokładnie, zostaną zaokrąglone do dostępnego zakresu i dokładności.

"STRING"
Sekwencja dowolnych bajtów oprócz NUL ('\0'). Właściwość value będzie zawierać ciąg DOMString.

„BUTTON”
Opcja tego typu nie ma wartości. Zamiast tego ustawienie opcji tego typu powoduje efekt uboczny w sterowniku skanera. Na przykład sterownik skanera może używać opcji typu przycisk, aby umożliwić wybór wartości domyślnych lub polecenie automatycznego podajnika dokumentów, aby przesunąć następny arkusz papieru.

„GROUP”
Opcja grupowania. Brak wartości. Jest ona uwzględniona ze względu na zgodność, ale zwykle nie jest zwracana w wartościach ScannerOption. Aby pobrać listę grup z opcjami członkostwa, użyj getOptionGroups().

OptionUnit

Chrome w wersji 125 lub nowszej

Wskazuje typ danych ScannerOption.unit.

Typ wyliczeniowy

„BEZPODSTAWOWY”
Wartość jest liczbą bezwymiarową. Może to być na przykład wartość progowa.

„PIXEL”
Wartość to liczba pikseli, np. wymiary skanowania.

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

"MM"
Wartość jest podawana w milimetrach, np. wymiary skanowania.

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

„PERCENT”
Wartość jest wyrażona w procentach, na przykład jasność.

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

ReadScanDataResponse

Chrome w wersji 125 lub nowszej

Właściwości

  • dane

    ArrayBuffer opcjonalny

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

  • estimatedCompletion

    number opcjonalny

    Jeśli result to SUCCESS, szacowana wartość łącznej liczby danych z skanowania, która została do tej pory dostarczona, w zakresie od 0 do 100.

  • zadanie

    ciąg znaków

    Zawiera identyfikator zadania przekazany do readScanData().

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

ScannerInfo

Chrome w wersji 125 lub nowszej

Właściwości

  • connectionType

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

  • deviceUuid

    ciąg znaków

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

  • imageFormats

    string[]

    Tablica typów MIME, które można poprosić o zwrócone skanowania.

  • producent

    ciąg znaków

    Producent skanera.

  • model

    ciąg znaków

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

  • nazwa

    ciąg znaków

    Zrozumiała dla człowieka nazwa skanera wyświetlana w interfejsie.

  • protocolType

    ciąg znaków

    Zrozumiały dla człowieka opis protokołu lub sterownika używanego do uzyskiwania dostępu do skanera, np. Mopria, WSD lub epsonds. Jest to przydatne przede wszystkim wtedy, gdy urządzenie obsługuje kilka protokołów i chcemy umożliwić użytkownikowi wybór między nimi.

  • scannerId

    ciąg znaków

    Identyfikator konkretnego skanera.

  • Bezpieczny

    wartość logiczna

    Jeśli to ustawienie ma wartość Prawda, danych przesyłanych przez połączenie skanera nie może przechwycić pasywny odbiornik, np. TLS lub USB.

ScannerOption

Chrome w wersji 125 lub nowszej

Właściwości

  • konfigurowalność

    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, parametr value nie zostanie skonfigurowany.

  • isAdvanced

    wartość logiczna

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

  • 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

    Emulowany przez sterownik skanera, jeśli ma wartość prawda.

  • nazwa

    ciąg znaków

    nazwę opcji zawierającą małe litery ASCII, cyfry i łączniki; Znaki diakrytyczne są niedozwolone.

  • tytuł

    ciąg znaków

    jednowierszowy tytuł do wydrukowania;

  • Typ danych zawarty 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 (jeśli dotyczy). Pamiętaj, że typ danych tej właściwości musi być zgodny z typem danych określonym w elemencie type.

ScanOptions

Właściwości

  • maxImages

    number opcjonalny

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

  • mimeTypes

    string[] opcjonalnie

    Typy MIME akceptowane przez wywołującego.

ScanResults

Właściwości

  • dataUrls

    string[]

    Tablica adresów URL obrazów danych w formie, która może być przekazywana jako wartość „src” do tagu obrazu.

  • mimeType

    ciąg znaków

    Typ MIME elementu dataUrls.

SetOptionResult

Chrome w wersji 125 lub nowszej

Właściwości

  • nazwa

    ciąg znaków

    Wskazuje nazwę ustawionej opcji.

  • Wskazuje wynik ustawienia opcji.

SetOptionsResponse

Chrome w wersji 125 lub nowszej

Właściwości

  • Opcje

    object opcjonalne

    Zaktualizowane mapowanie klucz-wartość z nazwami opcji na wartości ScannerOption zawierające nową konfigurację po próbie ustawienia wszystkich podanych opcji. Ma ona tę samą strukturę co usługa optionsOpenScannerResponse.

    Ta właściwość zostanie ustawiona, nawet jeśli niektóre opcje nie zostaną prawidłowo skonfigurowane, ale zostanie zresetowana, jeśli pobranie zaktualizowanej konfiguracji zakończy się niepowodzeniem (np. jeśli skaner zostanie odłączony w trakcie skanowania).

  • wyniki

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

  • scannerHandle

    ciąg znaków

    Zawiera identyfikator uchwytu skanera przekazany do setOptions().

StartScanOptions

Chrome w wersji 125 lub nowszej

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 podana jest wartość niezerowa, ogranicza maksymalną liczbę skanowanych bajtów zwracanych w pojedynczej odpowiedzi readScanData do tej wartości. Najmniejsza dozwolona wartość to 32768 (32 KB). Jeśli ta właściwość nie jest określona, zwrócony fragment może mieć rozmiar całego zeskanowanego obrazu.

StartScanResponse

Chrome w wersji 125 lub nowszej

Właściwości

  • zadanie

    ciąg znaków opcjonalny

    Jeśli result ma wartość SUCCESS, zawiera uchwyt, który można wykorzystać do odczytania danych ze skanowania lub anulowania zadania.

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

  • scannerHandle

    ciąg znaków

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

Metody

cancelScan()

Obietnice Chrome 125 +
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

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

Parametry

  • zadanie

    ciąg znaków

    Identyfikator aktywnego zadania skanowania zwróconego wcześniej z wywołania startScan.

  • wywołanie zwrotne

    function opcjonalny

    Parametr callback ma postać:

    (response: CancelScanResponse) => void

Zwroty

  • Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

closeScanner()

Obietnice Chrome 125 +
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Zamyka skaner z przekazanym identyfikatorem i zwraca obietnicę, która zwraca obiekt CloseScannerResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Nawet jeśli odpowiedź nie będzie pozytywna, podany identyfikator 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 z wywołania openScanner.

  • wywołanie zwrotne

    function opcjonalny

    Parametr callback ma postać:

    (response: CloseScannerResponse) => void

Zwroty

  • Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

getOptionGroups()

Obietnice Chrome 125 +
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Pobiera nazwy grup i opcje dotyczące członków ze skanera otwartego wcześniej przez openScanner. Ta metoda zwraca obietnicę, która jest realizowana z obiektem GetOptionGroupsResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane zwrócone dane.

Parametry

Zwroty

  • Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

getScannerList()

Obietnice Chrome 125 +
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

Pobiera listę dostępnych skanerów i zwraca obietnicę, która zwraca obiekt GetScannerListResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane zwrócone dane.

Parametry

Zwroty

  • Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

openScanner()

Obietnice Chrome 125 +
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

Otwiera skaner w celu uzyskania wyłącznego dostępu i zwraca obietnicę, która zwraca obiekt OpenScannerResponse. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane 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.

  • wywołanie zwrotne

    function opcjonalny

    Parametr callback ma postać:

    (response: OpenScannerResponse) => void

Zwroty

  • Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

readScanData()

Obietnice Chrome 125 +
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Odczytuje kolejny fragment dostępnych danych obrazu z identyfikatora aktywnego zadania i zwraca obietnicę, która zwraca obiekt ReadScanDataResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.

**Uwaga:**odpowiedź może być SUCCESS z elementem data o długości 0. Oznacza to, że skaner nadal działa, ale nie ma jeszcze dodatkowych danych. Osoba dzwoniąca powinna odczekać chwilę i spróbować ponownie.

Po zakończeniu zadania skanowania odpowiedź będzie zawierać wartość EOF. Ta odpowiedź może zawierać ostatni element data, którego wartość jest różna od 0.

Parametry

Zwroty

  • Obiet natywny<ReadScanDataResponse>

    Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

scan()

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

Wykonuje skanowanie dokumentu i zwraca obietnicę, która zwraca obiekt ScanResults. Jeśli do tej funkcji zostanie przekazane wywołanie zwrotne, zamiast niego zostaną przekazane zwrócone dane.

Parametry

  • Opcje

    Obiekt zawierający parametry skanowania.

  • wywołanie zwrotne

    function opcjonalny

    Parametr callback ma postać:

    (result: ScanResults) => void

Zwroty

  • Obietnica<ScanResults>

    Chrome 96+

    Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

setOptions()

Obietnice Chrome 125 +
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Ustawia opcje w wybranym 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. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego.

Parametry

  • scannerHandle

    ciąg znaków

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

  • Opcje

    Lista OptionSetting obiektów do zastosowania w skanerze.

  • wywołanie zwrotne

    function opcjonalny

    Parametr callback ma postać:

    (response: SetOptionsResponse) => void

Zwroty

  • Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

startScan()

Obietnice Chrome 125 +
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Rozpoczyna skanowanie za pomocą określonego skanera i zwraca obietnicę, która zwraca StartScanResponse. Jeśli używane jest wywołanie zwrotne, obiekt jest przekazywany do niego. Jeśli wywołanie się powiedzie, odpowiedź będzie zawierać identyfikator zadania, który można wykorzystać w kolejnych wywołaniach do odczytania 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 do użycia podczas skanowania. Właściwość StartScanOptions.format musi być zgodna z jednym z elementów zwróconych w właściwości ScannerInfo skanera.

  • wywołanie zwrotne

    function opcjonalny

    Parametr callback ma postać:

    (response: StartScanResponse) => void

Zwroty

  • Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.