chrome.documentScan

Beschreibung

Verwenden Sie die chrome.documentScan API, um Bilder von angehängten Dokumentenscannern zu ermitteln und abzurufen.

Die Document Scan API ermöglicht Apps und Erweiterungen das Anzeigen der Inhalt von Papierdokumenten in einem angeschlossenen Dokumentenscanner.

Berechtigungen

documentScan

Verfügbarkeit

Chrome (ab Version 44) Nur ChromeOS
Die Verfügbarkeit für später hinzugefügte API-Mitglieder wird diesen Mitgliedern angezeigt.

Konzepte und Verwendung

Diese API unterstützt zwei Methoden zum Scannen von Dokumenten. Wenn Ihr Anwendungsfall funktioniert mit jedem Scanner und keine Kontrolle über die Konfiguration benötigen, nutzen Sie scan()-Methode. Komplexere Anwendungsfälle erfordern eine Kombination aus Methoden, die erst ab Chrome 124 unterstützt werden.

Einfaches Scannen

Für einfache Anwendungsfälle, also solche, die mit jedem Scanner funktionieren und nicht Kontrolle über die Konfiguration erfordern, rufen Sie scan() auf. Bei dieser Methode wird ein ScanOptions-Objekt und gibt ein Promise zurück, das mit einem ScanResults aufgelöst wird -Objekt enthält. Die Möglichkeiten dieser Option sind auf die Anzahl der Scans und Die MIME-Typen, die vom Aufrufer akzeptiert werden. Scans werden als URLs zurückgegeben zur Anzeige in einem <img>-Tag für eine Benutzeroberfläche.

Komplexe Scans

Komplexe Scans werden in drei Phasen durchgeführt, wie in diesem Abschnitt beschrieben. Diese Übersicht beschreibt nicht jedes Methodenargument oder jede zurückgegebene Eigenschaft in einer Antwort. Sie soll Ihnen lediglich als allgemeiner Leitfaden für den Schreibscanner dienen. Code.

Discovery

  1. Rufen Sie getScannerList() auf. Verfügbare Scanner sind: wird in einem Promise zurückgegeben, das mit einem GetScannerListResponse

    • Das Antwortobjekt enthält ein Array von ScannerInfo Objekte.
    • Das Array kann mehrere Einträge für einen Scanner enthalten, wenn dieser Scanner mehrere Protokolle oder Verbindungsmethoden unterstützt.
  2. Wählen Sie einen Scanner aus dem zurückgegebenen Array aus und speichern Sie den Wert seines scannerId-Property.

    Die Attribute einzelner ScannerInfo-Objekte verwenden um verschiedene Objekte mit demselben Scanner zu unterscheiden. Objekte aus dem hat denselben Scanner für die Eigenschaft deviceUuid. ScannerInfo enthält auch eine imageFormats-Eigenschaft mit einem Array von unterstützten Image-Typen.

Scannerkonfiguration

  1. Rufen Sie openScanner() auf und übergeben Sie die gespeicherte Scanner-ID. Sie gibt ein Promise zurück, das mit einem OpenScannerResponse aufgelöst wird. Das Antwortobjekt enthält:

    • Eine scannerHandle-Property, die du speichern musst.

    • Eine Optionseigenschaft mit scanner-spezifischen Eigenschaften, die Sie die Sie festlegen müssen. Weitere Informationen finden Sie unter Scanneroptionen abrufen.

  2. (Optional) Wenn der Nutzer Werte für Scanneroptionen angeben soll, eine Benutzeroberfläche zu erstellen. Sie benötigen die Scanneroptionen des und Sie müssen die Optionsgruppen abrufen, die vom Scanner. Weitere Informationen finden Sie unter Benutzeroberfläche erstellen.

  3. Array von OptionSetting-Objekten mithilfe von programmatische oder von Nutzern bereitgestellte Werte. Weitere Informationen findest du unter „Scannenoptionen festlegen“ Informationen.

  4. Array von OptionSetting-Objekten übergeben an setOptions(), um Optionen für den Scanner festzulegen. Es gibt ein Promise zurück, das mit einem SetOptionsResponse Dieses Objekt enthält ein aktualisierte Version der Scanneroptionen, die in Schritt 1 des Scanners abgerufen wurden Konfiguration.

    Seit der Änderung eines Einschränkungen einer anderen Option ändern können, müssen Sie diese Schritte Schritte wiederholt.

Scannen

  1. StartScanOptions-Objekt erstellen und übergeben an startScan(). Es gibt ein Promise zurück, das mit einem StartScanResponse. Die job-Property ist einen Handle, mit dem Sie entweder Scandaten lesen oder den Scan abbrechen.

  2. Übergeben Sie das Job-Handle an readScanData(). Es wird ein Versprechen, das mit einer ReadScanDataResponse-Objekt. Wenn Daten gelesen wurden ist, hat die Eigenschaft result den Wert SUCCESS und die Eigenschaft data enthält ein ArrayBuffer mit einem Teil des Scans. estimatedCompletion enthält eine geschätzte Prozentsatz der bisher gelieferten Gesamtdaten.

  3. Wiederholen Sie den vorherigen Schritt, bis das Attribut result gleich EOF oder ein Fehler ist.

Wenn das Ende des Scans erreicht ist, rufen Sie closeScanner() mit dem Scanner-Ziehpunkt, der im Schritt gespeichert wurde 3. Sie gibt ein Promise zurück, das mit einem CloseScannerResponse Anrufen Mit cancelScan() wird nach dem Erstellen des Jobs Scanvorgang beenden.

Antwortobjekte

Alle Methoden geben ein Promise zurück, das mit einem Antwortobjekt aufgelöst wird. Die meisten davon enthalten eine result-Eigenschaft, deren Wert ein Element von ist OperationResult Einige Attribute von Antwortobjekten enthält keine Werte, es sei denn, der Wert von result hat einen bestimmten Wert. Diese -Beziehungen werden in der Referenz für jedes Antwortobjekt beschrieben.

OpenScannerResponse.scannerHandle hat beispielsweise nur dann einen Wert, wenn OpenScannerResponse.result entspricht SUCCESS.

Scanneroptionen

Die Scanneroptionen unterscheiden sich je nach Gerät erheblich. Daher ist es nicht möglich, die Scanner-Optionen direkt in der documentScan API abbilden. Navigation Dies ist der OpenScannerResponse (abgerufen mit openScanner()) und die SetOptionsResponse (das Antwortobjekt für setOptions()) eine options-Eigenschaft enthalten, die ein Objekt mit scannerspezifischen Optionen. Jede Option ist eine Schlüssel/Wert-Paar-Zuordnung Dabei ist der Schlüssel eine gerätespezifische Option und der Wert eine Instanz von ScannerOption

Die Struktur sieht im Allgemeinen so aus:

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

Stellen Sie sich beispielsweise einen Scanner vor, der Optionen mit dem Namen „Quelle“ zurückgibt. und „Lösung“. Die Struktur des zurückgegebenen options-Objekts sieht in etwa so aus: wie im folgenden Beispiel. Der Einfachheit halber ist nur ein Teil davon ScannerOption. werden die Antworten angezeigt.

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

Benutzeroberfläche erstellen

Obwohl die Verwendung dieser API nicht erforderlich ist, möchten Sie vielleicht, dass ein Nutzer den Wert für für eine bestimmte Option. Hierfür ist eine Benutzeroberfläche erforderlich. Verwenden Sie die Methode OpenScannerResponse (geöffnet von openScanner()), um die Optionen für den angehängten wie im vorherigen Abschnitt beschrieben.

Einige Scanner gruppieren Optionen gerätespezifisch. Sie haben keinen Einfluss auf die Option. aber da diese Gruppen im Produkt des Scanners erwähnt werden, Dokumentation, sollten diese Gruppen dem Nutzer angezeigt werden. Sie können diese durch Aufrufen von getOptionGroups(). Dadurch wird ein Versprechen, das mit einer GetOptionGroupsResponse-Objekt. Es ist groups enthält ein scanner-spezifisches Array von Gruppen. Verwenden Sie die Informationen in um die Optionen in der OpenScannerResponse für die Anzeige.

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

Wie in der Scanner-Konfiguration angegeben, kann das Ändern einer Option die Einschränkungen ändern für eine andere Option. Aus diesem Grund setOptionsResponse (das Antwortobjekt für setOptions()) enthält eine weitere options-Property. Verwenden Sie um die Benutzeroberfläche zu aktualisieren. Wiederholen Sie diesen Schritt nach Bedarf, bis alle Optionen richtig sind. festgelegt.

Scanneroptionen festlegen

Legen Sie die Scanneroptionen fest, indem Sie ein Array von OptionSetting-Objekte in setOptions() Ein Beispiel finden Sie unten im Abschnitt Seite in Schriftgröße scannen.

Beispiele

Seite als Blob abrufen

Dieses Beispiel zeigt eine Möglichkeit, eine Seite aus dem Scanner als Blob abzurufen und zeigt die Verwendung von startScan() und readScanData() unter Verwendung des Werts von 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" });
}

Eine Seite in Schriftgröße scannen

In diesem Beispiel wird gezeigt, wie Sie einen Scanner auswählen, seine Optionen festlegen und ihn öffnen. Es ruft dann den Inhalt einer einzelnen Seite ab und schließt den Scanner. Dieser Prozess veranschaulicht die Verwendung von getScannerList(), openScanner(), setOptions() und closeScanner(). Beachten Sie, dass der Inhalt der Seite durch Aufrufen von pageAsBlob()-Funktion aus dem vorherigen Beispiel.

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);
}

Konfiguration einblenden

Wie bereits erwähnt, müssen Nutzer die Konfigurationsoptionen des Scanners sehen. Aufrufen von getOptionGroups() zusätzlich zu den Scanneroptionen, die von einem an openScanner(). So können Optionen für Nutzende in herstellerdefinierten Gruppen. In diesem Beispiel wird gezeigt, wie das geht.

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");
      }
    }
  }
}

Typen

CancelScanResponse

Chrome 125 oder höher

Attribute

  • Job

    String

    Stellt die gleiche Job-Handle-Nummer bereit, die an cancelScan() übergeben wurde.

  • Ergebnis

    Ergebnis des Abbruchs des Scans des Back-Ends. Wenn das Ergebnis OperationResult.SUCCESS oder OperationResult.CANCELLED lautet, wurde der Scan abgebrochen und der Scanner kann einen neuen Scan starten. Lautet das Ergebnis OperationResult.DEVICE_BUSY , verarbeitet der Scanner die angeforderte Stornierung noch. sollte der Aufrufer kurz warten und die Anfrage wiederholen. Andere Ergebniswerte weisen auf einen dauerhaften Fehler hin, der nicht wiederholt werden sollte.

CloseScannerResponse

Chrome 125 oder höher

Attribute

  • Ergebnis

    Das Ergebnis des Schließens des Scanners. Auch wenn dieser Wert nicht SUCCESS ist, ist der Alias ungültig und sollte nicht für weitere Vorgänge verwendet werden.

  • scannerHandle

    String

    Derselbe Scanner-Handle, der an closeScanner übergeben wurde.

Configurability

Chrome 125 oder höher

Wie eine Option geändert werden kann.

Enum

"NOT_CONFIGURABLE"
Die Option ist schreibgeschützt.

„SOFTWARE_CONFIGURABLE“
Die Option kann in der Software festgelegt werden.

"HARDWARE_CONFIGURABLE"
Die Option kann vom Nutzer festgelegt werden, indem er am Scanner eine Taste ein- oder ausschaltet.

ConnectionType

Chrome 125 oder höher

Gibt an, wie der Scanner mit dem Computer verbunden ist.

Enum

"UNSPECIFIED"

„USB“

„NETZWERK“

ConstraintType

Chrome 125 oder höher

Der Datentyp der Einschränkung, der durch ein OptionConstraint dargestellt wird.

Enum

"INT_RANGE"
Die Einschränkung für einen Bereich von OptionType.INT-Werten. Die Attribute min, max und quant von OptionConstraint sind long und ihre list-Property wird aufgehoben.

"FIXED_RANGE"
Die Einschränkung für einen Bereich von OptionType.FIXED-Werten. Die Attribute min, max und quant von OptionConstraint sind double und das Attribut list wird aufgehoben.

"INT_LIST"
Die Einschränkung für eine bestimmte Liste von OptionType.INT-Werten. Das Attribut OptionConstraint.list enthält long-Werte und die anderen Attribute werden nicht festgelegt.

"FIXED_LIST"
Die Einschränkung für eine bestimmte Liste von OptionType.FIXED-Werten. Das Attribut OptionConstraint.list enthält double-Werte und die anderen Attribute werden nicht festgelegt.

"STRING_LIST"
Die Einschränkung für eine bestimmte Liste von OptionType.STRING-Werten. Das Attribut OptionConstraint.list enthält DOMString-Werte und die anderen Attribute werden nicht festgelegt.

DeviceFilter

Chrome 125 oder höher

Attribute

  • lokal

    Boolescher Wert optional

    Senden Sie nur Scanner zurück, die direkt am Computer befestigt sind.

  • sicher

    Boolescher Wert optional

    Senden Sie nur Scanner zurück, die eine sichere Übertragung wie USB oder TLS verwenden.

GetOptionGroupsResponse

Chrome 125 oder höher

Attribute

  • Gruppen

    OptionGroup[] optional

    Wenn result auf SUCCESS gesetzt ist, erhalten Sie eine Liste der Optionsgruppen in der vom Scannertreiber angegebenen Reihenfolge.

  • Ergebnis

    Das Ergebnis des Abrufens der Optionsgruppen. Wenn der Wert dafür SUCCESS ist, wird das Attribut groups mit Daten gefüllt.

  • scannerHandle

    String

    Derselbe Scanner-Handle, der an getOptionGroups übergeben wurde.

GetScannerListResponse

Chrome 125 oder höher

Attribute

  • Ergebnis

    Das Aufzählungsergebnis. Beachten Sie, dass Teilergebnisse zurückgegeben werden können, auch wenn dies auf einen Fehler hinweist.

  • Scanner

    Eine möglicherweise leere Liste von Scannern, die mit den angegebenen DeviceFilter übereinstimmen.

OpenScannerResponse

Chrome 125 oder höher

Attribute

  • Optionen

    Objekt optional

    Wenn result den Wert SUCCESS hat, wird eine Schlüssel/Wert-Paar-Zuordnung bereitgestellt, wobei der Schlüssel eine gerätespezifische Option und der Wert eine Instanz von ScannerOption ist.

  • Ergebnis

    Das Ergebnis des Öffnens des Scanners. Wenn der Wert SUCCESS lautet, werden die Attribute scannerHandle und options ausgefüllt.

  • scannerHandle

    String optional

    Wenn result SUCCESS ist, ein Handle zum Scanner, der für weitere Vorgänge verwendet werden kann.

  • scannerId

    String

    Die Scanner-ID, die an openScanner() übergeben wurde.

OperationResult

Chrome 125 oder höher

Ein Enum-Wert, der das Ergebnis jedes Vorgangs angibt.

Enum

"UNKNOWN"
Ein unbekannter oder allgemeiner Fehler ist aufgetreten.

"SUCCESS"
Der Vorgang war erfolgreich.

"UNSUPPORTED"
Der Vorgang wird nicht unterstützt.

"CANCELLED"
Der Vorgang wurde abgebrochen.

"DEVICE_BUSY"
Das Gerät ist nicht verfügbar.

"INVALID"
Entweder die an die Methode übergebenen Daten oder ein Argument sind ungültig.

"WRONG_TYPE"
Der angegebene Wert ist der falsche Datentyp für die zugrunde liegende Option.

"EOF"
Es sind keine weiteren Daten verfügbar.

"ADF_JAMMED"
Der Dokumenteneinzug klemmt.

"ADF_EMPTY"
Der Dokumenteneinzug ist leer.

"COVER_OPEN"
Die Abdeckung des Flachbetts ist offen.

"IO_ERROR"
Bei der Kommunikation mit dem Gerät ist ein Fehler aufgetreten.

"ACCESS_DENIED"
Das Gerät erfordert eine Authentifizierung.

"NO_MEMORY"
Auf dem Chromebook ist nicht genügend Speicher verfügbar, um den Vorgang abzuschließen.

"UNREACHABLE"
Das Gerät ist nicht erreichbar.

FEHLT
Das Gerät ist nicht verbunden.

"INTERNAL_ERROR"
Nicht in der aufrufenden Anwendung ist ein Fehler aufgetreten.

OptionConstraint

Chrome 125 oder höher

Attribute

  • list

    string[] | number[] optional

  • max

    Zahl optional

  • Min.

    Zahl optional

  • Quant

    Zahl optional

OptionGroup

Chrome 125 oder höher

Attribute

  • Mitglieder

    String[]

    Ein Array von Optionsnamen in der vom Treiber angegebenen Reihenfolge.

  • Titel

    String

    Liefert einen druckbaren Titel, z. B. „Geometrieoptionen“.

OptionSetting

Chrome 125 oder höher

Attribute

  • Name

    String

    Gibt den Namen der festzulegenden Option an.

  • Gibt den Datentyp der Option an. Der angeforderte Datentyp muss mit dem tatsächlichen Datentyp der zugrunde liegenden Option übereinstimmen.

  • Wert

    string | Zahl | boolean | number[] optional

    Gibt den festzulegenden Wert an. Lassen Sie die Richtlinie nicht konfiguriert, um eine automatische Einstellung für Optionen anzufordern, bei denen autoSettable aktiviert ist. Der für value angegebene Datentyp muss mit type übereinstimmen.

OptionType

Chrome 125 oder höher

Der Datentyp einer Option.

Enum

"UNKNOWN"
Der Datentyp der Option ist unbekannt. Die Festlegung des Attributs „value“ wird aufgehoben.

"BOOL"
Die Eigenschaft value hat den Wert truefalse.

"INT"
Eine 32-Bit-Ganzzahl mit Vorzeichen. Das Attribut value ist „long“ oder „long[]“, je nachdem, ob die Option mehr als einen Wert annimmt.

"FIXED"
Ein Double im Bereich -32768-32767.9999 mit einer Auflösung von 1/65535. Das Attribut value hat je nachdem, ob die Option mehr als einen Wert annimmt, „Double“ oder „Double[]“. Werte vom Typ „Double“, die nicht genau dargestellt werden können, werden auf den verfügbaren Bereich und die verfügbare Genauigkeit gerundet.

"STRING"
Eine Sequenz mit beliebigen Byte außer NUL ("\0"). Das Attribut value ist ein DOMString.

"SCHALTFLÄCHE"
Eine Option dieses Typs hat keinen Wert. Stattdessen führt das Festlegen einer Option dieses Typs zu einem optionspezifischen Nebeneffekt im Scanner-Treiber. Beispielsweise könnte ein Scannertreiber eine schaltflächenbasierte Option verwenden, um Standardwerte auszuwählen oder einen automatischen Dokumenteneinzug zu veranlassen, zum nächsten Blatt Papier zu wechseln.

"GROUP"
Gruppierungsoption. Kein Wert. Dieser Wert ist aus Kompatibilitätsgründen enthalten, wird aber normalerweise nicht in ScannerOption-Werten zurückgegeben. Verwenden Sie getOptionGroups(), um die Liste der Gruppen mit den entsprechenden Mitgliederoptionen abzurufen.

OptionUnit

Chrome 125 oder höher

Gibt den Datentyp für ScannerOption.unit an.

Enum

"UNITLESS"
Der Wert ist eine Zahl ohne Einheit. Es kann beispielsweise ein Grenzwert sein.

"PIXEL"
Der Wert ist eine Anzahl von Pixeln, z. B. Scanabmessungen.

"BIT"
Der Wert ist die Anzahl der Bits, z. B. die Farbtiefe.

"MM"
Der Wert wird in Millimetern gemessen, z. B. Scanabmessungen.

"DPI"
Der Wert wird in Punkten pro Zoll gemessen, z. B. die Auflösung.

"PERCENT"
Der Wert ist ein Prozentwert, z. B. die Helligkeit.

"MICROSECONDS"
Der Wert wird in Mikrosekunden gemessen, z. B. die Belichtungszeit.

ReadScanDataResponse

Chrome 125 oder höher

Attribute

  • Daten

    ArrayBuffer optional

    Wenn result den Wert SUCCESS hat, enthält dieser den nächsten Teil der gescannten Bilddaten. Wenn result den Wert EOF hat, enthält er den letzten Teil der gescannten Bilddaten.

  • estimatedCompletion

    Zahl optional

    Wenn result SUCCESS ist, eine Schätzung, wie viele der gesamten Scandaten bisher übermittelt wurden. Sie liegt im Bereich von 0 bis 100.

  • Job

    String

    Stellt die an readScanData() übergebene Job-Handle bereit.

  • Ergebnis

    Das Ergebnis des Lesens von Daten. Wenn der Wert SUCCESS ist, enthält data den nächsten (möglicherweise null) Teil der Bilddaten, der gelesen werden kann. Wenn der Wert EOF ist, enthält data den letzten Teil der Bilddaten.

ScannerInfo

Chrome 125 oder höher

Attribute

  • connectionType

    Gibt an, wie der Scanner mit dem Computer verbunden ist.

  • deviceUuid

    String

    Zum Abgleich mit anderen ScannerInfo-Einträgen, die auf dasselbe physische Gerät verweisen.

  • imageFormats

    String[]

    Ein Array von MIME-Typen, die für zurückgegebene Scans angefordert werden können.

  • Hersteller

    String

    Der Hersteller des Scanners.

  • Modell

    String

    Das Scannermodell, falls verfügbar, oder eine allgemeine Beschreibung.

  • Name

    String

    Ein visuell lesbarer Name für den Scanner, der auf der Benutzeroberfläche angezeigt werden soll.

  • protocolType

    String

    Eine für Menschen lesbare Beschreibung des Protokolls oder Treibers, mit dem auf den Scanner zugegriffen wird, z. B. Mopria, WSD oder epsonds. Dies ist in erster Linie nützlich, um Nutzern die Auswahl zwischen Protokollen zu ermöglichen, wenn ein Gerät mehrere Protokolle unterstützt.

  • scannerId

    String

    Die ID eines bestimmten Scanners.

  • sicher

    boolean

    Ist dieser Wert auf „true“ gesetzt, kann die Übertragung der Scannerverbindung nicht von einem passiven Listener wie TLS oder USB abgefangen werden.

ScannerOption

Chrome 125 oder höher

Attribute

  • Konfigurierbarkeit

    Gibt an, ob und wie die Option geändert werden kann.

  • Einschränkung

    Definiert OptionConstraint für die aktuelle Scanneroption.

  • Beschreibung

    String

    Eine längere Beschreibung der Option

  • isActive (Aktiv)

    boolean

    Gibt an, dass die Option aktiv ist und festgelegt oder abgerufen werden kann. Bei „false“ wird das Attribut value nicht festgelegt.

  • isAdvanced

    boolean

    Gibt an, dass die Benutzeroberfläche diese Option nicht standardmäßig anzeigen soll.

  • isAutoSettable

    boolean

    Kann automatisch vom Scannertreiber festgelegt werden.

  • isDetectable

    boolean

    Gibt an, dass diese Option von der Software erkannt werden kann.

  • isEmulated

    boolean

    Wird vom Scannertreiber emuliert, wenn dies wahr ist.

  • Name

    String

    Der Name der Option mit ASCII-Kleinbuchstaben, Ziffern und Bindestrichen. Diakritische Zeichen sind nicht zulässig.

  • Titel

    String

    Ein einzeiliger, druckbarer Titel.

  • Der Datentyp im Attribut value, der zum Festlegen dieser Option erforderlich ist.

  • Einheit

    Die Maßeinheit für diese Option.

  • Wert

    string | Zahl | boolean | number[] optional

    Der aktuelle Wert der Option, falls relevant. Der Datentyp dieses Attributs muss mit dem in type angegebenen Datentyp übereinstimmen.

ScanOptions

Attribute

  • maxImages

    Zahl optional

    Die zulässige Anzahl von gescannten Bildern. Der Standardwert ist 1.

  • mimeTypes

    string[] optional

    Die MIME-Typen, die vom Aufrufer akzeptiert werden.

ScanResults

Attribute

  • dataUrls

    String[]

    Ein Array von Datenbild-URLs in einer Form, die als „src“ übergeben werden kann -Wert zu einem Image-Tag hinzu.

  • mimeType

    String

    Der MIME-Typ von dataUrls.

SetOptionResult

Chrome 125 oder höher

Attribute

  • Name

    String

    Gibt den Namen der festgelegten Option an.

  • Ergebnis

    Gibt das Ergebnis der Einstellung der Option an.

SetOptionsResponse

Chrome 125 oder höher

Attribute

  • Optionen

    Objekt optional

    Eine aktualisierte Schlüssel/Wert-Zuordnung von Optionsnamen zu ScannerOption-Werten, die die neue Konfiguration enthalten, nachdem versucht wurde, alle angegebenen Optionen festzulegen. Sie hat dieselbe Struktur wie das Attribut options in OpenScannerResponse.

    Dieses Attribut wird auch dann festgelegt, wenn einige Optionen nicht festgelegt wurden. Es wird jedoch nicht festgelegt, wenn das Abrufen der aktualisierten Konfiguration fehlschlägt, z. B. wenn der Scanner während des Scans getrennt wird.

  • Ergebnisse

    Ein Array von Ergebnissen, jeweils eines für jeden übergebenen OptionSetting.

  • scannerHandle

    String

    Stellt das Scanner-Handle zur Verfügung, das an setOptions() übergeben wurde.

StartScanOptions

Chrome 125 oder höher

Attribute

  • Format

    String

    Gibt den MIME-Typ an, in dem gescannte Daten zurückgegeben werden sollen.

  • maxReadSize

    Zahl optional

    Wenn ein Wert ungleich Null angegeben ist, wird die maximale Anzahl gescannter Byte begrenzt, die in einer einzelnen readScanData-Antwort auf diesen Wert zurückgegeben werden. Der kleinste zulässige Wert ist 32.768 (32 KB). Wenn diese Eigenschaft nicht angegeben ist, kann die Größe eines zurückgegebenen Blocks so groß sein wie das gesamte gescannte Bild.

StartScanResponse

Chrome 125 oder höher

Attribute

  • Job

    String optional

    Wenn result den Wert SUCCESS hat, wird ein Handle zum Lesen von Scandaten oder zum Abbrechen des Jobs bereitgestellt.

  • Ergebnis

    Das Ergebnis des Starts eines Scans. Wenn der Wert dafür SUCCESS ist, wird das Attribut job mit Daten gefüllt.

  • scannerHandle

    String

    Bietet denselben Scanner-Handle, der an startScan() übergeben wurde.

Methoden

cancelScan()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Bricht einen gestarteten Scan ab und gibt ein Promise zurück, das mit einem CancelScanResponse-Objekt aufgelöst wird. Wenn ein Callback verwendet wird, wird stattdessen das Objekt an diesen übergeben.

Parameter

  • Job

    String

    Der Handle eines aktiven Scanjobs, der zuvor von einem Aufruf an startScan zurückgegeben wurde.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (response: CancelScanResponse) => void

Gibt Folgendes zurück:

  • Promise&lt;CancelScanResponse&gt;

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

closeScanner()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Schließt den Scanner mit dem übergebenen Handle und gibt ein Versprechen zurück, das mit einem CloseScannerResponse-Objekt aufgelöst wird. Wenn ein Callback verwendet wird, wird stattdessen das Objekt an diesen übergeben. Selbst wenn die Antwort kein Erfolg ist, wird das angegebene Handle ungültig und sollte nicht für weitere Vorgänge verwendet werden.

Parameter

  • scannerHandle

    String

    Gibt den Handle eines offenen Scanners an, der zuvor von einem Aufruf an openScanner zurückgegeben wurde.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (response: CloseScannerResponse) => void

Gibt Folgendes zurück:

  • Promise&lt;CloseScannerResponse&gt;

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

getOptionGroups()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Ruft die Gruppennamen und Mitgliederoptionen aus einem Scanner ab, der zuvor von openScanner geöffnet wurde. Diese Methode gibt ein Promise zurück, das mit einem GetOptionGroupsResponse-Objekt aufgelöst wird. Wenn ein Callback an diese Funktion übergeben wird, werden stattdessen zurückgegebene Daten an diese Funktion übergeben.

Parameter

  • scannerHandle

    String

    Der Handle eines geöffneten Scanners, der von einem Aufruf an openScanner zurückgegeben wurde.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (response: GetOptionGroupsResponse) => void

Gibt Folgendes zurück:

  • Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

getScannerList()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

Ruft die Liste der verfügbaren Scanner ab und gibt ein Promise zurück, das mit einem GetScannerListResponse-Objekt aufgelöst wird. Wenn ein Callback an diese Funktion übergeben wird, werden stattdessen zurückgegebene Daten an diese Funktion übergeben.

Parameter

Gibt Folgendes zurück:

  • Promise&lt;GetScannerListResponse&gt;

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

openScanner()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

Öffnet einen Scanner für exklusiven Zugriff und gibt ein Versprechen zurück, das mit einem OpenScannerResponse-Objekt aufgelöst wird. Wenn ein Callback an diese Funktion übergeben wird, werden stattdessen zurückgegebene Daten an diese Funktion übergeben.

Parameter

  • scannerId

    String

    Die ID des Scanners, der geöffnet werden soll. Dieser Wert wurde von einem vorherigen Aufruf an getScannerList zurückgegeben.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (response: OpenScannerResponse) => void

Gibt Folgendes zurück:

  • Promise&lt;OpenScannerResponse&gt;

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

readScanData()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Liest den nächsten Block verfügbarer Bilddaten aus einem aktiven Job-Handle und gibt ein Promise zurück, das mit einem ReadScanDataResponse-Objekt aufgelöst wird. Wenn ein Callback verwendet wird, wird stattdessen das Objekt an diesen übergeben.

**Hinweis:**Ein Antwortergebnis muss SUCCESS mit einem data-Mitglied der Länge null sein. Das bedeutet, dass der Scanner noch funktioniert, aber noch keine weiteren Daten zur Verfügung stehen. Der Anrufer sollte eine kurze Zeit warten und es dann noch einmal versuchen.

Wenn der Scanjob abgeschlossen ist, hat die Antwort den Ergebniswert EOF. Diese Antwort kann ein letztes data-Mitglied ungleich null enthalten.

Parameter

  • Job

    String

    Aktive Job-Handles, die zuvor von startScan zurückgegeben wurden.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (response: ReadScanDataResponse) => void

Gibt Folgendes zurück:

  • Promise&lt;ReadScanDataResponse&gt;

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

scan()

<ph type="x-smartling-placeholder"></ph> Versprechen
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

Führt einen Scan des Dokuments durch und gibt ein Promise zurück, das mit einem ScanResults-Objekt aufgelöst wird. Wenn ein Callback an diese Funktion übergeben wird, werden stattdessen die zurückgegebenen Daten an diese Funktion übergeben.

Parameter

  • Optionen

    Ein Objekt mit Scanparametern.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (result: ScanResults) => void

Gibt Folgendes zurück:

  • Promise&lt;ScanResults&gt;

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

setOptions()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Legt Optionen für den angegebenen Scanner fest und gibt ein Promise-Objekt zurück, das mit einem SetOptionsResponse-Objekt aufgelöst wird, das das Ergebnis des Versuchs enthält, jeden Wert in der Reihenfolge des übergebenen OptionSetting-Objekts festzulegen. Wenn ein Callback verwendet wird, wird stattdessen das Objekt an diesen übergeben.

Parameter

  • scannerHandle

    String

    Der Ziehpunkt des Scanners, für den Optionen festgelegt werden sollen. Dies sollte ein Wert sein, der zuvor von einem Aufruf an openScanner zurückgegeben wurde.

  • Optionen

    Eine Liste mit OptionSetting Objekten, die auf den Scanner angewendet werden sollen.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (response: SetOptionsResponse) => void

Gibt Folgendes zurück:

  • Promise&lt;SetOptionsResponse&gt;

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

startScan()

<ph type="x-smartling-placeholder"></ph> Versprechen Chrome 125 oder höher
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Startet einen Scan auf dem angegebenen Scanner und gibt ein Promise zurück, das mit StartScanResponse aufgelöst wird. Wenn ein Callback verwendet wird, wird stattdessen das Objekt an diesen übergeben. Wenn der Aufruf erfolgreich war, enthält die Antwort ein Job-Handle, das in nachfolgenden Aufrufen verwendet werden kann, um Scandaten zu lesen oder einen Scan abzubrechen.

Parameter

  • scannerHandle

    String

    Der Griff eines geöffneten Scanners. Dies sollte ein Wert sein, der zuvor von einem Aufruf an openScanner zurückgegeben wurde.

  • Optionen

    Ein StartScanOptions-Objekt, das die Optionen angibt, die für den Scan verwendet werden sollen. Das Attribut StartScanOptions.format muss mit einem der Einträge übereinstimmen, die im ScannerInfo des Scanners zurückgegeben werden.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (response: StartScanResponse) => void

Gibt Folgendes zurück:

  • Promise&lt;StartScanResponse&gt;

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.