Beschreibung
Verwenden Sie die chrome.documentScan
API, um Bilder in angehängten Dokumentenscannern zu finden und abzurufen.
Die Document Scan API ermöglicht Apps und Erweiterungen, den Inhalt von Papierdokumenten in einem angehängten Dokumentenscanner anzusehen.
Berechtigungen
documentScan
Verfügbarkeit
Konzepte und Nutzung
Diese API unterstützt das Scannen von Dokumenten auf zwei Arten. Wenn Ihr Anwendungsfall mit jedem Scanner funktionieren kann und keine Konfigurationskontrolle erforderlich ist, verwenden Sie die Methode scan()
. Für komplexere Anwendungsfälle ist eine Kombination von Methoden erforderlich, die erst ab Chrome 124 unterstützt werden.
Einfaches Scannen
Für einfache Anwendungsfälle, die mit jedem Scanner funktionieren können und keine Konfigurationskontrolle erforderlich sind, sollte scan()
aufgerufen werden. Diese Methode verwendet ein ScanOptions
-Objekt und gibt ein Promise-Objekt zurück, das mit einem ScanResults
-Objekt aufgelöst wird. Die Funktionen dieser Option sind auf die Anzahl der Scans und die MIME-Typen beschränkt, die vom Aufrufer akzeptiert werden. Scans werden als URLs zurückgegeben und in einem <img>
-Tag für eine Benutzeroberfläche angezeigt.
Komplexe Scans
Komplexe Scans werden in drei Phasen durchgeführt, wie in diesem Abschnitt beschrieben. Diese Übersicht beschreibt nicht jedes Methodenargument oder jede Eigenschaft, die in einer Antwort zurückgegeben wird. Er soll dir nur einen allgemeinen Leitfaden zum Schreiben von Scanner-Code geben.
Discovery-Kampagnen
Rufen Sie
getScannerList()
auf. Verfügbare Scanner werden in einem Promise zurückgegeben, das mit einemGetScannerListResponse
aufgelöst wird.- Das Antwortobjekt enthält ein Array mit
ScannerInfo
-Objekten. - Das Array kann mehrere Einträge für einen einzelnen Scanner enthalten, wenn dieser Scanner mehrere Protokolle oder Verbindungsmethoden unterstützt.
- Das Antwortobjekt enthält ein Array mit
Wählen Sie einen Scanner aus dem zurückgegebenen Array aus und speichern Sie den Wert seiner Eigenschaft
scannerId
.Verwenden Sie die Eigenschaften einzelner
ScannerInfo
-Objekte, um zwischen mehreren Objekten für denselben Scanner zu unterscheiden. Objekte aus demselben Scanner haben denselben Wert für das AttributdeviceUuid
.ScannerInfo
enthält auch einimageFormats
-Attribut mit einem Array unterstützter Bildtypen.
Scannerkonfiguration
Rufen Sie
openScanner()
auf und übergeben Sie die gespeicherte Scanner-ID. Sie gibt ein Promise zurück, das mit einemOpenScannerResponse
aufgelöst wird. Das Antwortobjekt enthält:Eine
scannerHandle
-Property, die du speichern musst.Optionseigenschaft mit scannerspezifischen Eigenschaften, die Sie festlegen müssen. Weitere Informationen finden Sie unter „Scanneroptionen abrufen“.
(Optional) Wenn der Nutzer Werte für Scanneroptionen angeben soll, erstellen Sie eine Benutzeroberfläche. Sie benötigen die Scanneroptionen aus dem vorherigen Schritt und die vom Scanner bereitgestellten Optionsgruppen. Weitere Informationen finden Sie unter Benutzeroberfläche erstellen.
Erstellen Sie ein Array von
OptionSetting
-Objekten mithilfe von programmatischen oder von Nutzern bereitgestellten Werten. Weitere Informationen finden Sie unter „Scanneroptionen festlegen“.Übergeben Sie das Array von
OptionSetting
-Objekten ansetOptions()
, um Optionen für den Scanner festzulegen. Sie gibt ein Versprechen zurück, das mit einemSetOptionsResponse
aufgelöst wird. Dieses Objekt enthält eine aktualisierte Version der Scanneroptionen, die in Schritt 1 der Scannerkonfiguration abgerufen wurden.Da durch das Ändern einer Option die Einschränkungen für eine andere Option geändert werden können, müssen Sie diese Schritte möglicherweise mehrmals wiederholen.
Wird gescannt
Erstellen Sie ein
StartScanOptions
-Objekt und übergeben Sie es anstartScan()
. Sie gibt ein Promise zurück, das mit einemStartScanResponse
aufgelöst wird. Das Attributjob
ist ein Handle, mit dem Sie entweder Scandaten lesen oder den Scan abbrechen können.Übergeben Sie das Job-Handle an
readScanData()
. Sie gibt ein Promise-Objekt zurück, das mit einemReadScanDataResponse
-Objekt aufgelöst wird. Wenn Daten erfolgreich gelesen wurden, ist das Attributresult
gleichSUCCESS
und das Attributdata
enthält einArrayBuffer
-Objekt mit einem Teil des Scans. Beachten Sie, dassestimatedCompletion
einen geschätzten Prozentsatz der bisher gelieferten Gesamtdaten enthält.Wiederholen Sie den vorherigen Schritt, bis das Attribut
result
den WertEOF
hat oder ein Fehler angezeigt wird.
Wenn das Ende des Scans erreicht ist, rufen Sie closeScanner()
mit dem in Schritt 3 gespeicherten Scanner-Handle auf. Sie gibt ein Promise zurück, das mit CloseScannerResponse
aufgelöst wird. Wenn Sie cancelScan()
nach dem Erstellen des Jobs aufrufen, wird das Scannen beendet.
Antwortobjekte
Alle Methoden geben ein Promise zurück, das mit einem Antwortobjekt irgendeiner Art aufgelöst wird.
Die meisten von ihnen enthalten eine result
-Eigenschaft, deren Wert ein Element von OperationResult
ist. Einige Attribute von Antwortobjekten enthalten keine Werte, es sei denn, der Wert von result
hat einen bestimmten Wert. Diese Beziehungen werden in der Referenz für die einzelnen Antwortobjekte beschrieben.
Beispielsweise hat OpenScannerResponse.scannerHandle
nur dann einen Wert, wenn OpenScannerResponse.result
gleich SUCCESS
ist.
Scanneroptionen
Die Optionen des Scanners variieren stark von Gerät zu Gerät. Daher ist es nicht möglich, Scanneroptionen direkt in der documentScan API widerzuspiegeln. Um dies zu umgehen, enthalten OpenScannerResponse
(abgerufen mit openScanner()
) und SetOptionsResponse
(das Antwortobjekt für setOptions()
) eine options
-Eigenschaft, die ein Objekt mit scannerspezifischen Optionen ist. Jede Option ist eine Schlüssel/Wert-Zuordnung, wobei der Schlüssel eine gerätespezifische Option und der Wert eine Instanz von ScannerOption
ist.
Die Struktur sieht im Allgemeinen so aus:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Stellen Sie sich beispielsweise einen Scanner vor, der Optionen mit den Namen „Quelle“ und „Auflösung“ zurückgibt. Die Struktur des zurückgegebenen options
-Objekts sieht ungefähr so aus: Der Einfachheit halber werden nur Teilantworten von ScannerOption
angezeigt.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Benutzeroberfläche erstellen
Obwohl dies nicht erforderlich ist, um diese API zu verwenden, möchten Sie vielleicht, dass ein Nutzer den Wert für eine bestimmte Option auswählt. Dafür ist eine Benutzeroberfläche erforderlich. Verwenden Sie den OpenScannerResponse
(geöffnet von openScanner()
), um die Optionen für den angeschlossenen Scanner wie im vorherigen Abschnitt beschrieben abzurufen.
Bei einigen Scannern werden Optionen nach gerätespezifischen Methoden gruppiert. Sie beeinflussen nicht das Verhalten von Optionen, aber da diese Gruppen in der Produktdokumentation eines Scanners erwähnt werden können, sollten sie dem Nutzer angezeigt werden. Sie können diese Gruppen abrufen, indem Sie getOptionGroups()
aufrufen. Dadurch wird ein Promise-Objekt zurückgegeben, das mit einem GetOptionGroupsResponse
-Objekt aufgelöst wird. Das Attribut groups
enthält ein scanner-spezifisches Array von Gruppen. Verwenden Sie die Informationen in diesen Gruppen, um die Anzeigeoptionen in OpenScannerResponse
zu organisieren.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Wie unter „Scanner-Konfiguration“ angegeben, können sich durch das Ändern einer Option die Einschränkungen für eine andere Option ändern. Deshalb enthält setOptionsResponse
(das Antwortobjekt für setOptions()
) ein weiteres options
-Attribut. Aktualisieren Sie damit die Benutzeroberfläche. Wiederholen Sie diese Schritte dann nach Bedarf, bis alle Optionen festgelegt sind.
Scanneroptionen festlegen
Legen Sie die Scanneroptionen fest, indem Sie ein Array von OptionSetting
-Objekten an setOptions()
übergeben. Ein Beispiel finden Sie im folgenden Abschnitt Seite in einer Buchstabengröß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()
mit dem Wert 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" });
}
Seite in Schriftgröße scannen
In diesem Beispiel wird gezeigt, wie Sie einen Scanner auswählen, seine Optionen festlegen und ihn öffnen. Er ruft dann den Inhalt einer einzelnen Seite ab und schließt den Scanner. In diesem Vorgang wird die Verwendung von getScannerList()
, openScanner()
, setOptions()
und closeScanner()
veranschaulicht. Der Inhalt der Seite wird durch Aufrufen der Funktion pageAsBlob()
aus dem vorherigen Beispiel abgerufen.
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 anzeigen
Wie bereits erwähnt, muss für die Anzeige der Konfigurationsoptionen eines Scanners neben den Scanneroptionen, die von einem Aufruf an openScanner()
zurückgegeben werden, auch getOptionGroups()
aufgerufen werden. So können Nutzern in herstellerdefinierten Gruppen Optionen angezeigt werden. Dieses Beispiel zeigt, wie das funktioniert.
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
Attribute
-
Job
String
Stellt die gleiche Job-Handle bereit, die an
cancelScan()
übergeben wurde. -
Ergebnis
Ergebnis des Back-End-Scanabbruchs. Wenn das Ergebnis
OperationResult.SUCCESS
oderOperationResult.CANCELLED
ist, wurde der Scan abgebrochen und der Scanner kann einen neuen Scan starten. Wenn das ErgebnisOperationResult.DEVICE_BUSY
ist , verarbeitet der Scanner die angeforderte Stornierung noch. Der Aufrufer sollte kurz warten und die Anfrage wiederholen. Andere Ergebniswerte geben einen dauerhaften Fehler an, der nicht wiederholt werden sollte.
CloseScannerResponse
Attribute
-
Ergebnis
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
Wie eine Option geändert werden kann
Enum
"NOT_CONFIGURABLE"
Die Option ist schreibgeschützt.
"SOFTWARE_CONFIGURABLE"
Diese Option kann in der Software festgelegt werden.
"HARDWARE_CONFIGURABLE"
Diese Option kann vom Nutzer festgelegt werden, indem er den Scanner umschaltet oder auf eine Taste drückt.
ConnectionType
Gibt an, wie der Scanner mit dem Computer verbunden ist.
Enum
ConstraintType
Der Datentyp der Einschränkung, dargestellt durch OptionConstraint
.
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 die Eigenschaft list
wird nicht festgelegt.
"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 nicht festgelegt.
"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
Attribute
-
local
Boolescher Wert optional
Senden Sie nur Scanner zurück, die direkt am Computer angeschlossen sind.
-
sicher
Boolescher Wert optional
Senden Sie nur Scanner zurück, die eine sichere Übertragung wie USB oder TLS verwenden.
GetOptionGroupsResponse
Attribute
-
Gruppen
OptionGroup[] optional
Wenn
result
den WertSUCCESS
hat, wird eine Liste der Optionsgruppen in der vom Scannertreiber vorgegebenen Reihenfolge angezeigt. -
Ergebnis
Das Ergebnis des Abrufens der Optionsgruppen. Wenn der Wert
SUCCESS
ist, wird die Eigenschaftgroups
ausgefüllt. -
scannerHandle
String
Derselbe Scanner-Handle, der an
getOptionGroups
übergeben wurde,
GetScannerListResponse
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 dem angegebenen
DeviceFilter
entsprechen.
OpenScannerResponse
Attribute
-
Optionen
Objekt optional
Wenn
result
den WertSUCCESS
hat, wird eine Schlüssel/Wert-Zuordnung bereitgestellt, wobei der Schlüssel eine gerätespezifische Option und der Wert eine Instanz vonScannerOption
ist. -
Ergebnis
Ergebnis des Öffnens des Scanners Wenn der Wert
SUCCESS
ist, werden die AttributescannerHandle
undoptions
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 an
openScanner()
übergebene Scanner-ID.
OperationResult
Ein enum, das das Ergebnis jedes Vorgangs angibt.
Enum
"UNKNOWN"
Ein unbekannter oder allgemeiner Fehler ist aufgetreten.
"SUCCESS"
Vorgang erfolgreich.
"NICHT UNTERSTÜTZT"
Der Vorgang wird nicht unterstützt.
"ABGEBROCHEN"
Der Vorgang wurde abgebrochen.
"DEVICE_BUSY"
Das Gerät ist nicht verfügbar.
"UNGÜLTIG"
Entweder sind die an die Methode übergebenen Daten oder ein Argument ungültig.
"WRONG_TYPE"
Der angegebene Wert hat den falschen Datentyp für die zugrunde liegende Option.
"EOF"
Es sind keine weiteren Daten verfügbar.
"ADF_JAMMED"
Der Dokumenteneinzug ist klemmt.
"ADF_EMPTY"
Der Dokumenteneinzug ist leer.
"COVER_OPEN"
Die Abdeckung des Plattes 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 Arbeitsspeicher verfügbar, um den Vorgang abzuschließen.
„UNREACHABLE“
Das Gerät ist nicht erreichbar.
FEHLT
Das Gerät ist nicht verbunden.
"INTERNAL_ERROR"
Es ist nicht in der aufrufenden Anwendung ein Fehler aufgetreten.
OptionConstraint
Attribute
-
list
string[] | Zahl[] optional
-
Max.
Nummer optional
-
Min.
Nummer optional
-
Quant
Nummer optional
-
Typ
OptionGroup
Attribute
-
Mitglieder
String[]
Ein Array von Optionsnamen in der vom Fahrer bereitgestellten Reihenfolge.
-
Titel
String
Liefert einen druckbaren Titel, z. B. „Geometrieoptionen“.
OptionSetting
Attribute
-
name
String
Gibt den Namen der festzulegenden Option an.
-
Typ
Gibt den Datentyp der Option an. Der angeforderte Datentyp muss mit dem tatsächlichen Datentyp der zugrunde liegenden Option übereinstimmen.
-
value
String | Zahl | Boolescher Wert | Zahl[] optional
Gibt den festzulegenden Wert an. Lassen Sie die Richtlinie nicht konfiguriert, um die automatische Einstellung für Optionen anzufordern, für die
autoSettable
aktiviert ist. Der fürvalue
angegebene Datentyp muss mittype
übereinstimmen.
OptionType
Der Datentyp einer Option.
Enum
"UNKNOWN"
Der Datentyp der Option ist unbekannt. Das Attribut value
wird aufgehoben.
"BOOL"
Die Property value
hat den Wert true
false.
"INT"
Eine signierte 32-Bit-Ganzzahl. Das Attribut value
ist long oder long[], je nachdem, ob für die Option mehr als ein Wert erforderlich ist.
"FIXED"
Ein Double-Wert im Bereich -32768-32767.9999 mit einer Auflösung von 1/65535. Das Attribut value
ist „double“ oder „double[]“, je nachdem, ob die Option mehr als einen Wert anfordert. Doppelte Werte, die nicht genau dargestellt werden können, werden auf den verfügbaren Bereich und die Genauigkeit gerundet.
"STRING"
Eine Sequenz beliebiger Bytes 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 Options-spezifischen Nebeneffekt im Scannertreiber. Zum Beispiel könnte eine Option über Schaltflächen von einem Scannertreiber verwendet werden, um Standardwerte auszuwählen oder einen automatischen Dokumenteneinzug anzuweisen, zum nächsten Blatt Papier zu wechseln.
"GROUP"
Gruppierungsoption. Kein Wert. Dies ist aus Kompatibilitätsgründen enthalten, wird aber normalerweise nicht in ScannerOption
-Werten zurückgegeben. Verwenden Sie getOptionGroups()
, um die Liste der Gruppen mit ihren Mitgliederoptionen abzurufen.
Enum
"UNITLESS"
Der Wert ist eine Zahl ohne Einheit. Sie kann beispielsweise ein Schwellenwert sein.
"PIXEL"
Der Wert ist eine Anzahl von Pixeln, z. B. die Scanabmessungen.
"BIT"
Der Wert ist die Anzahl der Bits, z. B. die Farbtiefe.
"MM"
Der Wert wird in Millimeter gemessen, z. B. Scandimensionen.
"DPI"
Der Wert wird in Punkten pro Zoll gemessen, z. B. in der Auflösung.
"PERCENT"
Der Wert ist ein Prozentwert, z. B. die Helligkeit.
"MICROSECOND"
Der Wert wird in Mikrosekunden gemessen, z. B. die Belichtungszeit.
ReadScanDataResponse
Attribute
-
daten
ArrayBuffer optional
Enthält den nächsten Block mit gescannten Bilddaten, wenn
result
SUCCESS
ist. Enthält den letzten Block der gescannten Bilddaten, wennresult
den WertEOF
hat. -
estimatedCompletion
Nummer optional
Wenn
result
SUCCESS
ist, eine Schätzung, wie viele der bisher insgesamt gelieferten Scandaten im Bereich von 0 bis 100 sind. -
Job
String
Gibt das an
readScanData()
übergebene Job-Handle an. -
Ergebnis
Das Ergebnis des Lesens von Daten. Wenn der Wert
SUCCESS
ist, enthältdata
den nächsten (möglicherweise Längenwert von 0) an Bilddaten, der gelesen werden kann. Wenn der WertEOF
ist, enthält diedata
den letzten Block mit Bilddaten.
ScannerInfo
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.
-
model
String
Das Scannermodell, falls verfügbar, oder eine allgemeine Beschreibung
-
name
String
Ein für Menschen lesbarer Name für den Scanner, der auf der Benutzeroberfläche angezeigt wird.
-
protocolType
String
Eine menschenlesbare Beschreibung des Protokolls oder Treibers, das für den Zugriff auf den Scanner verwendet wurde, z. B. Mopria, WSD oder epsonds. Dies ist vor allem 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
Wenn „true“ festgelegt ist, kann die Übertragung der Scannerverbindung nicht von einem passiven Listener wie TLS oder USB abgefangen werden.
ScannerOption
Attribute
-
Konfigurierbarkeit
Gibt an, ob und wie die Option geändert werden kann.
-
Einschränkung
OptionConstraint optional
Definiert
OptionConstraint
für die aktuelle Scanneroption. -
Beschreibung
String
Eine längere Beschreibung der Option.
-
isActive
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 diese Option nicht standardmäßig auf der Benutzeroberfläche angezeigt werden soll.
-
isAutoSettable
boolean
Kann vom Scannertreiber automatisch festgelegt werden.
-
isDetectable
boolean
Gibt an, dass diese Option von Software erkannt werden kann.
-
isEmulated
boolean
Wird vom Scannertreiber emuliert, wenn „true“ festgelegt ist.
-
name
String
Der Name der Option mit ASCII-Kleinbuchstaben, Ziffern und Bindestrichen. Diakritische Zeichen sind nicht zulässig.
-
Titel
String
Ein einzeiliger Titel zum Ausdrucken.
-
Typ
Der Datentyp im Attribut
value
, der zum Festlegen dieser Option erforderlich ist. -
Einheit
Die Maßeinheit für diese Option.
-
value
String | Zahl | Boolescher Wert | Zahl[] optional
Der aktuelle Wert der Option, falls relevant. Der Datentyp dieser Eigenschaft muss dem in
type
angegebenen Datentyp entsprechen.
ScanOptions
Attribute
-
maxImages
Nummer 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 einem Format, das als „src“-Wert an ein Bild-Tag übergeben werden kann.
-
mimeType
String
Der MIME-Typ von
dataUrls
.
SetOptionResult
Attribute
-
name
String
Gibt den Namen der festgelegten Option an.
-
Ergebnis
Gibt das Ergebnis der Einstellung der Option an.
SetOptionsResponse
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 dieoptions
-Property inOpenScannerResponse
.Diese Eigenschaft wird auch dann festgelegt, wenn einige Optionen nicht festgelegt wurden. Sie wird jedoch nicht festgelegt, wenn das Abrufen der aktualisierten Konfiguration fehlschlägt (z. B. wenn der Scanner mitten im Scan getrennt wird).
-
Ergebnisse
Ein Array von Ergebnissen, eines für jedes übergebene
OptionSetting
-Objekt. -
scannerHandle
String
Stellt den an
setOptions()
übergebenen Scanner-Handle bereit.
StartScanOptions
Attribute
-
formatieren
String
Gibt den MIME-Typ an, in dem gescannte Daten zurückgegeben werden sollen.
-
maxReadSize
Nummer optional
Wenn ein Wert ungleich null angegeben ist, wird die maximale Anzahl gescannter Byte, die in einer einzelnen
readScanData
-Antwort zurückgegeben werden, auf diesen Wert begrenzt. Der kleinste zulässige Wert ist 32768 (32 KB). Wenn diese Eigenschaft nicht angegeben ist, kann ein zurückgegebener Chunk so groß wie das gesamte gescannte Bild sein.
StartScanResponse
Attribute
-
Job
String optional
Wenn
result
den WertSUCCESS
hat, wird ein Handle zum Lesen von Scandaten oder zum Abbrechen des Jobs bereitgestellt. -
Ergebnis
Das Ergebnis des Startens eines Scans. Wenn der Wert
SUCCESS
ist, wird die Eigenschaftjob
ausgefüllt. -
scannerHandle
String
Bietet denselben Scanner-Handle, der an
startScan()
übergeben wurde.
Methoden
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
Bricht einen gestarteten Scan ab und gibt ein Promise-Objekt zurück, das mit einem CancelScanResponse
-Objekt aufgelöst wird. Bei Verwendung eines Callbacks wird stattdessen das Objekt an diese ü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:(response: CancelScanResponse) => void
-
Antwort
-
Rückgabe
-
Promise<CancelScanResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
Schließt den Scanner mit dem übergebenen Handle und gibt ein Promise zurück, das mit einem CloseScannerResponse
-Objekt aufgelöst wird. Bei Verwendung eines Callbacks wird stattdessen das Objekt an diese übergeben. Auch wenn die Antwort nicht erfolgreich ist, wird das angegebene Handle ungültig und sollte nicht für weitere Vorgänge verwendet werden.
Parameter
-
scannerHandle
String
Gibt den Handle eines geöffneten Scanners an, der zuvor von einem Aufruf an
openScanner
zurückgegeben wurde. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(response: CloseScannerResponse) => void
-
Antwort
-
Rückgabe
-
Promise<CloseScannerResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
Ruft die Gruppennamen und Mitgliederoptionen aus einem Scanner ab, der zuvor mit openScanner
geöffnet wurde. Diese Methode gibt ein Promise-Objekt zurück, das mit einem GetOptionGroupsResponse
-Objekt aufgelöst wird. Wenn ein Callback an diese Funktion übergeben wird, werden stattdessen die zurückgegebenen Daten ü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:(response: GetOptionGroupsResponse) => void
-
Antwort
-
Rückgabe
-
Promise<GetOptionGroupsResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
getScannerList()
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 die zurückgegebenen Daten übergeben.
Parameter
-
Filter
Ein
DeviceFilter
, das angibt, welche Scannertypen zurückgegeben werden sollen. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(response: GetScannerListResponse) => void
-
Antwort
-
Rückgabe
-
Promise<GetScannerListResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
Öffnet einen Scanner für exklusiven Zugriff und gibt ein Promise-Objekt zurück, das mit einem OpenScannerResponse
-Objekt aufgelöst wird. Wenn ein Callback an diese Funktion übergeben wird, werden stattdessen die zurückgegebenen Daten übergeben.
Parameter
-
scannerId
String
Die ID eines zu öffnenden Scanners. Dieser Wert wurde von einem vorherigen Aufruf von
getScannerList
zurückgegeben. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(response: OpenScannerResponse) => void
-
Antwort
-
Rückgabe
-
Promise<OpenScannerResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
readScanData()
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. Bei Verwendung eines Callbacks wird stattdessen das Objekt an diese übergeben.
**Hinweis:**Ein Antwortergebnis muss SUCCESS
sein und ein data
-Mitglied der Länge null sein. Das bedeutet, dass der Scanner noch funktioniert, aber noch keine zusätzlichen Daten verfügbar sind. Der Anrufer sollte kurz warten und es dann noch einmal versuchen.
Wenn der Scanjob abgeschlossen ist, hat die Antwort den Ergebniswert EOF
. Diese Antwort kann ein abschließendes data
-Mitglied enthalten, das nicht null ist.
Parameter
-
Job
String
Aktiver Job-Handle, der zuvor von
startScan
zurückgegeben wurde. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(response: ReadScanDataResponse) => void
-
Antwort
-
Rückgabe
-
Promise<ReadScanDataResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
Führt einen Dokumentscan durch und gibt ein Promise-Objekt 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 sie übergeben.
Parameter
-
Optionen
Ein Objekt, das Scanparameter enthält.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(result: ScanResults) => void
-
Ergebnis
-
Rückgabe
-
Promise<ScanResults>
Chrome 96 und höherPromise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
Legt Optionen für den angegebenen Scanner fest und gibt ein Promise zurück, das mit einem SetOptionsResponse
-Objekt aufgelöst wird. Dieses Objekt enthält das Ergebnis des Versuchs, jeden Wert in der Reihenfolge des übergebenen OptionSetting
-Objekts festzulegen. Bei Verwendung eines Callbacks wird stattdessen das Objekt an diese ü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 von
openScanner
zurückgegeben wurde. -
Optionen
Eine Liste von
OptionSetting
Objekten, die auf den Scanner angewendet werden sollen. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(response: SetOptionsResponse) => void
-
Antwort
-
Rückgabe
-
Promise<SetOptionsResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
Startet einen Scan für den angegebenen Scanner und gibt ein Promise-Objekt zurück, das mit einem StartScanResponse
aufgelöst wird. Bei Verwendung eines Callbacks wird stattdessen das Objekt an diese übergeben. Wenn der Aufruf erfolgreich war, enthält die Antwort ein Job-Handle, mit dem in nachfolgenden Aufrufen Scandaten gelesen oder ein Scan abgebrochen werden kann.
Parameter
-
scannerHandle
String
Der Handle eines geöffneten Scanners. Dies sollte ein Wert sein, der zuvor von einem Aufruf von
openScanner
zurückgegeben wurde. -
Optionen
Ein
StartScanOptions
-Objekt, das die Optionen angibt, die für den Scan verwendet werden sollen. Die EigenschaftStartScanOptions.format
muss mit einem der Einträge übereinstimmen, die imScannerInfo
des Scanners zurückgegeben werden. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(response: StartScanResponse) => void
-
Antwort
-
Rückgabe
-
Promise<StartScanResponse>
Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.