Beschreibung
Mit der chrome.documentScan
API können Sie Bilder von angeschlossenen Dokumentenscannern erkennen und abrufen.
Die Document Scan API wurde entwickelt, damit Apps und Erweiterungen den Inhalt von Papierdokumenten auf einem angeschlossenen Dokumentenscanner ansehen können.
Berechtigungen
documentScan
Verfügbarkeit
Konzepte und Verwendung
Diese API unterstützt zwei Methoden zum Scannen von Dokumenten. Wenn Ihr Anwendungsfall mit einem beliebigen Scanner funktioniert und keine Konfigurationssteuerung erforderlich ist, verwenden Sie die scan()
-Methode. Für komplexere Anwendungsfälle ist eine Kombination von Methoden erforderlich, die nur in Chrome 124 und höher unterstützt werden.
Einfaches Scannen
Für einfache Anwendungsfälle, die mit jedem Scanner funktionieren und keine Konfigurationssteuerung erfordern, rufen Sie scan()
auf. Diese Methode verwendet ein ScanOptions
-Objekt und gibt ein Promise 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 Anrufer akzeptiert werden. Scans werden als URLs zurückgegeben, die in einem <img>
-Tag für eine Benutzeroberfläche angezeigt werden können.
Komplexes Scannen
Komplexe Scans werden in drei Phasen durchgeführt, wie in diesem Abschnitt beschrieben. In dieser Übersicht werden nicht alle Methodenargumente oder alle Eigenschaften beschrieben, die in einer Antwort zurückgegeben werden. Es soll Ihnen lediglich eine allgemeine Anleitung zum Schreiben von Scanner-Code geben.
Discovery
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 von
ScannerInfo
-Objekten. - Das Array kann mehrere Einträge für einen einzelnen Scanner enthalten, wenn dieser mehrere Protokolle oder Verbindungsmethoden unterstützt.
- Das Antwortobjekt enthält ein Array von
Wählen Sie einen Scanner aus dem zurückgegebenen Array aus und speichern Sie den Wert des Attributs
scannerId
.Verwenden Sie die Eigenschaften einzelner
ScannerInfo
-Objekte, um mehrere Objekte für denselben Scanner zu unterscheiden. Objekte vom selben Scanner haben denselben Wert für das AttributdeviceUuid
.ScannerInfo
enthält auch die EigenschaftimageFormats
, die ein Array mit unterstützten Bildtypen enthält.
Scannerkonfiguration
Rufen Sie
openScanner()
auf und übergeben Sie die gespeicherte Scanner-ID. Es wird ein Promise zurückgegeben, das mit einemOpenScannerResponse
aufgelöst wird. Das Antwortobjekt enthält:Eine
scannerHandle
-Property, die Sie speichern müssen.Eine Options-Property mit scannerspezifischen Properties, die Sie festlegen müssen. Weitere Informationen finden Sie unter Scanneroptionen abrufen.
(Optional) Wenn der Nutzer Werte für Scanneroptionen angeben muss, erstellen Sie eine Benutzeroberfläche. Sie benötigen die Scanneroptionen aus dem vorherigen Schritt und müssen die vom Scanner bereitgestellten Optionsgruppen abrufen. Weitere Informationen finden Sie unter Benutzeroberfläche erstellen.
Erstellen Sie ein Array von
OptionSetting
-Objekten mit programmatischen oder vom Nutzer bereitgestellten Werten. Weitere Informationen finden Sie unter „Scanneroptionen festlegen“.Übergeben Sie das Array von
OptionSetting
-Objekten ansetOptions()
, um Optionen für den Scanner festzulegen. Es wird ein Promise zurückgegeben, das mit einemSetOptionsResponse
aufgelöst wird. Dieses Objekt enthält eine aktualisierte Version der Scanneroptionen, die in Schritt 1 der Scannerkonfiguration abgerufen wurden.Da sich durch das Ändern einer Option die Einschränkungen für eine andere Option ändern können, müssen Sie diese Schritte möglicherweise mehrmals wiederholen.
Scannen
Erstellen Sie ein
StartScanOptions
-Objekt und übergeben Sie es anstartScan()
. Es wird ein Promise zurückgegeben, das mit einemStartScanResponse
aufgelöst wird. Diejob
-Eigenschaft ist ein Handle, das Sie verwenden, um entweder Scandaten zu lesen oder den Scan abzubrechen.Übergeben Sie den Job-Handle an
readScanData()
. Es wird ein Promise zurückgegeben, das mit einemReadScanDataResponse
-Objekt aufgelöst wird. Wenn Daten erfolgreich gelesen wurden, ist das Attributresult
gleichSUCCESS
und das Attributdata
enthält einArrayBuffer
mit einem Teil des Scans.estimatedCompletion
enthält einen geschätzten Prozentsatz der bisher bereitgestellten Gesamtdaten.Wiederholen Sie den vorherigen Schritt, bis das Attribut
result
gleichEOF
ist oder ein Fehler auftritt.
Wenn das Ende des Scans erreicht ist, rufen Sie closeScanner()
mit dem in Schritt 3 gespeicherten Scanner-Handle auf. Es wird ein Promise zurückgegeben, das mit einem CloseScannerResponse
aufgelöst wird. Wenn Sie cancelScan()
jederzeit nach der Job-Erstellung aufrufen, wird der Scan beendet.
Antwortobjekte
Alle Methoden geben ein Promise zurück, das mit einem Antwortobjekt aufgelöst wird.
Die meisten enthalten eine result
-Eigenschaft, deren Wert ein Element von OperationResult
ist. Einige Eigenschaften von Antwortobjekten enthalten nur dann Werte, wenn der Wert von result
einen bestimmten Wert hat. Diese Beziehungen werden in der Referenz für jedes Antwortobjekt beschrieben.
OpenScannerResponse.scannerHandle
hat beispielsweise nur einen Wert, wenn OpenScannerResponse.result
gleich SUCCESS
ist.
Scanneroptionen
Die Scanneroptionen variieren je nach Gerät erheblich. Daher ist es nicht möglich, Scanneroptionen direkt in der documentScan API zu berücksichtigen. Um dieses Problem zu umgehen, enthalten das OpenScannerResponse
-Objekt (abgerufen mit openScanner()
) und das SetOptionsResponse
-Objekt (das Antwortobjekt für setOptions()
) ein options
-Attribut, das 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 in der Regel so aus:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
Stellen Sie sich beispielsweise einen Scanner vor, der die Optionen „Quelle“ und „Auflösung“ zurückgibt. Die Struktur des zurückgegebenen options
-Objekts sieht in etwa so aus: Der Einfachheit halber werden nur teilweise ScannerOption
-Antworten angezeigt.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
Benutzeroberfläche erstellen
Die Verwendung dieser API ist zwar nicht erforderlich, aber es kann sinnvoll sein, dass ein Nutzer den Wert für eine bestimmte Option auswählt. Dafür ist eine Benutzeroberfläche erforderlich. Verwenden Sie das OpenScannerResponse
(geöffnet über openScanner()
), um die Optionen für den angeschlossenen Scanner wie im vorherigen Abschnitt beschrieben abzurufen.
Bei einigen Scannern werden Optionen gerätespezifisch gruppiert. Sie haben keine Auswirkungen auf das Verhalten von Optionen. Da diese Gruppen jedoch in der Produktdokumentation eines Scanners erwähnt werden können, sollten sie dem Nutzer angezeigt werden. Sie können diese Gruppen durch Aufrufen von getOptionGroups()
abrufen. Dadurch wird ein Promise zurückgegeben, das mit einem GetOptionGroupsResponse
-Objekt aufgelöst wird. Die groups
-Eigenschaft enthält ein scannerspezifisches Array von Gruppen. Mithilfe der Informationen in diesen Gruppen können Sie die Optionen in der OpenScannerResponse
für die Anzeige organisieren.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
Wie unter „Scannerkonfiguration“ beschrieben, kann sich das Ändern einer Option auf die Einschränkungen einer anderen Option auswirken. Aus diesem Grund enthält setOptionsResponse
(das Antwortobjekt für setOptions()
) ein weiteres options
-Attribut. Damit wird die Benutzeroberfläche aktualisiert. Wiederholen Sie den Vorgang nach Bedarf, bis alle Optionen festgelegt sind.
Scanneroptionen festlegen
Legen Sie Scanneroptionen fest, indem Sie ein Array von OptionSetting
-Objekten an setOptions()
übergeben. Ein Beispiel finden Sie im Abschnitt Eine Seite im Letter-Format scannen unten.
Beispiele
Seite als Blob abrufen
In diesem Beispiel wird gezeigt, wie eine Seite vom Scanner als Blob abgerufen wird. Außerdem wird die Verwendung von startScan()
und readScanData()
mit dem Wert von OperationResult
veranschaulicht.
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 im Letter-Format scannen
In diesem Beispiel wird gezeigt, wie Sie einen Scanner auswählen, seine Optionen festlegen und ihn öffnen. Anschließend werden die Inhalte einer einzelnen Seite abgerufen und der Scanner wird geschlossen. In diesem Prozess wird die Verwendung von getScannerList()
, openScanner()
, setOptions()
und closeScanner()
veranschaulicht. Die Inhalte der Seite werden 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 zum Anzeigen der Konfigurationsoptionen eines Scanners für einen Nutzer zusätzlich zu den Scanneroptionen, die von einem Aufruf von openScanner()
zurückgegeben werden, getOptionGroups()
aufgerufen werden. So können Nutzern Optionen in vom Hersteller definierten Gruppen angezeigt werden. 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
Attribute
-
Job
String
Gibt dasselbe Job-Handle zurück, das an
cancelScan()
übergeben wurde. -
Ergebnis
Das Ergebnis des Backend-Vorgangs zum Abbrechen des Scans. Wenn das Ergebnis
OperationResult.SUCCESS
oderOperationResult.CANCELLED
ist, wurde der Scan abgebrochen und der Scanner ist bereit, einen neuen Scan zu starten. Wenn das ErgebnisOperationResult.DEVICE_BUSY
ist , wird die angeforderte Kündigung noch verarbeitet. Der Anrufer sollte kurz warten und die Anfrage dann noch einmal versuchen. Andere Ergebniswerte weisen auf einen dauerhaften Fehler hin, der nicht wiederholt werden sollte.
CloseScannerResponse
Attribute
-
Ergebnis
Das Ergebnis des Schließens des Scanners. Auch wenn dieser Wert nicht
SUCCESS
ist, ist der Handle 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“
Die Option kann in der Software festgelegt werden.
HARDWARE_CONFIGURABLE
Die Option kann vom Nutzer durch Umlegen eines Schalters oder Drücken einer Taste am Scanner festgelegt werden.
ConnectionType
Gibt an, wie der Scanner mit dem Computer verbunden ist.
Enum
"UNSPECIFIED"
„USB“
"NETWORK"
ConstraintType
Der Datentyp der Einschränkung, die 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
werden auf long
gesetzt und das Attribut 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
werden auf double
gesetzt und das Attribut list
wird nicht festgelegt.
INT_LIST
Die Einschränkung für eine bestimmte Liste von OptionType.INT
-Werten. Die Property OptionConstraint.list
enthält long
-Werte und die anderen Properties sind nicht festgelegt.
FIXED_LIST
Die Einschränkung für eine bestimmte Liste von OptionType.FIXED
-Werten. Die Property OptionConstraint.list
enthält double
-Werte und die anderen Properties sind nicht festgelegt.
STRING_LIST
Die Einschränkung für eine bestimmte Liste von OptionType.STRING
-Werten. Die Property OptionConstraint.list
enthält DOMString
-Werte und die anderen Properties sind nicht festgelegt.
DeviceFilter
Attribute
-
lokal
boolean optional
Senden Sie nur Scanner zurück, die direkt an den Computer angeschlossen sind.
-
sicher
boolean optional
Geben Sie nur Scanner zurück, die eine sichere Übertragung wie USB oder TLS verwenden.
GetOptionGroupsResponse
Attribute
-
Gruppen
OptionGroup[] optional
Wenn
result
gleichSUCCESS
ist, wird eine Liste von Optionsgruppen in der Reihenfolge bereitgestellt, die vom Scanner-Treiber angegeben wird. -
Ergebnis
Das Ergebnis des Abrufs der Optionsgruppen. Wenn der Wert
SUCCESS
ist, wird die Propertygroups
ausgefüllt. -
scannerHandle
String
Derselbe Scanner-Handle, der an
getOptionGroups
übergeben wurde.
GetScannerListResponse
Attribute
-
Ergebnis
Das Enumerierungsergebnis. Beachten Sie, dass auch dann Teilergebnisse zurückgegeben werden können, wenn dies auf einen Fehler hinweist.
-
Scanner
Eine möglicherweise leere Liste von Scannern, die mit dem angegebenen
DeviceFilter
übereinstimmen.
OpenScannerResponse
Attribute
-
Optionen
object optional
Wenn
result
gleichSUCCESS
ist, wird eine Schlüssel/Wert-Zuordnung bereitgestellt, bei der der Schlüssel eine gerätespezifische Option und der Wert eine Instanz vonScannerOption
ist. -
Ergebnis
Das Ergebnis des Öffnens des Scanners. Wenn der Wert
SUCCESS
ist, werden die PropertiesscannerHandle
undoptions
ausgefüllt. -
scannerHandle
String optional
Wenn
result
SUCCESS
ist, ein Handle für den Scanner, der für weitere Vorgänge verwendet werden kann. -
scannerId
String
Die Scanner-ID, die an
openScanner()
übergeben wurde.
OperationResult
Ein Enum, das das Ergebnis jedes Vorgangs angibt.
Enum
„UNKNOWN“
Ein unbekannter oder allgemeiner Fehler ist aufgetreten.
„SUCCESS“
Der Vorgang wurde erfolgreich abgeschlossen.
UNSUPPORTED
Der Vorgang wird nicht unterstützt.
„CANCELLED“
Der Vorgang wurde abgebrochen.
„DEVICE_BUSY“
Das Gerät ist beschäftigt.
„INVALID“
Die Daten oder ein an die Methode übergebenes Argument sind 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 klemmt.
"ADF_EMPTY"
Der Dokumenteneinzug ist leer.
"COVER_OPEN"
Die Flachbettabdeckung ist geöffnet.
„IO_ERROR“
Bei der Kommunikation mit dem Gerät ist ein Fehler aufgetreten.
„ACCESS_DENIED“
Für das Gerät ist eine Authentifizierung erforderlich.
„NO_MEMORY“
Auf dem Chromebook ist nicht genügend Arbeitsspeicher verfügbar, um den Vorgang abzuschließen.
„UNREACHABLE“
Das Gerät ist nicht erreichbar.
„MISSING“
Das Gerät ist nicht verbunden.
„INTERNAL_ERROR“
Ein Fehler ist an einer anderen Stelle als in der aufrufenden Anwendung aufgetreten.
OptionConstraint
Attribute
-
list
string[] | number[] optional
-
max
number optional
-
Min.
number optional
-
quant
number optional
-
Typ
OptionGroup
Attribute
-
Mitglieder
String[]
Ein Array von Optionsnamen in der vom Fahrer angegebenen Reihenfolge.
-
Titel
String
Gibt einen druckbaren Titel an, 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.
-
Wert
String | Zahl | boolescher Wert | Zahl[] optional
Gibt den festzulegenden Wert an. Lassen Sie das Feld leer, um die automatische Einstellung für Optionen mit aktivierter
autoSettable
anzufordern. 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 nicht festgelegt.
„BOOL“
Die Property value
ist einer der folgenden Werte: true
false.
„INT“
Eine vorzeichenbehaftete 32-Bit-Ganzzahl. Die Eigenschaft value
ist vom Typ „long“ oder „long[]“, je nachdem, ob die Option mehr als einen Wert annimmt.
FIXED
Eine Double-Zahl im Bereich -32768 bis 32767,9999 mit einer Auflösung von 1/65535. Die Eigenschaft value
ist vom Typ „double“ oder „double[]“, je nachdem, ob für die Option mehr als ein Wert angegeben wird. Gleitkommazahlen mit doppelter Genauigkeit, die nicht exakt dargestellt werden können, werden auf den verfügbaren Bereich und die verfügbare Genauigkeit gerundet.
"STRING"
Eine Folge von beliebigen Bytes außer NUL ('\0'). Das Attribut value
ist ein DOMString.
BUTTON
Eine Option dieses Typs hat keinen Wert. Stattdessen wird durch das Festlegen einer Option dieses Typs eine optionsspezifische Nebenwirkung im Scanner-Treiber ausgelöst. Beispielsweise kann eine Option vom Typ „Schaltfläche“ von einem Scanner-Treiber verwendet werden, um Standardwerte auszuwählen oder einen automatischen Dokumenteneinzug anzuweisen, 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 ihren Mitgliedsoptionen abzurufen.
Enum
UNITLESS
Der Wert ist eine Zahl ohne Einheit. Das kann beispielsweise ein Schwellenwert 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. bei Scanabmessungen.
„DPI“
Der Wert wird in Punkten pro Zoll gemessen, z. B. die Auflösung.
„PERCENT“
Der Wert ist ein Prozentsatz, z. B. die Helligkeit.
„MICROSECOND“
Der Wert wird in Mikrosekunden gemessen, z. B. die Belichtungszeit.
ReadScanDataResponse
Attribute
-
Daten
ArrayBuffer optional
Wenn
result
den WertSUCCESS
hat, enthält die Variable den nächsten Chunk der gescannten Bilddaten. Wennresult
den WertEOF
hat, enthält die Variable den letzten Chunk der gescannten Bilddaten. -
estimatedCompletion
number optional
Wenn
result
gleichSUCCESS
ist, wird eine Schätzung angegeben, wie viel der gesamten Scandaten bisher geliefert wurde. Der Wert liegt zwischen 0 und 100. -
Job
String
Gibt das Job-Handle an, das an
readScanData()
übergeben wurde. -
Ergebnis
Das Ergebnis des Lesens von Daten. Wenn der Wert
SUCCESS
ist, enthältdata
den nächsten (möglicherweise leeren) Chunk mit Bilddaten, der zum Lesen bereit ist. Wenn der WertEOF
ist, enthältdata
den letzten Chunk mit Bilddaten.
ScannerInfo
Attribute
-
connectionType
Gibt an, wie der Scanner mit dem Computer verbunden ist.
-
deviceUuid
String
Für den 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 Scannerhersteller.
-
Modell
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 werden soll.
-
protocolType
String
Eine für Menschen lesbare Beschreibung des Protokolls oder Treibers, der für den Zugriff auf den Scanner verwendet wird, z. B. Mopria, WSD oder epsonds. Dies ist hauptsächlich nützlich, wenn ein Gerät mehrere Protokolle unterstützt und ein Nutzer zwischen den Protokollen wählen soll.
-
scannerId
String
Die ID eines bestimmten Scanners.
-
sicher
boolean
Wenn „true“, kann der Transport der Scannerverbindung nicht von einem passiven Listener abgefangen werden, z. B. TLS oder USB.
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 (Aktiv)
boolean
Gibt an, dass die Option aktiv ist und festgelegt oder abgerufen werden kann. Ist sie auf „false“ gesetzt, wird das Attribut
value
nicht festgelegt. -
isAdvanced
boolean
Gibt an, dass diese Option in der Benutzeroberfläche nicht standardmäßig angezeigt werden soll.
-
isAutoSettable
boolean
Kann automatisch vom Scanner-Treiber festgelegt werden.
-
isDetectable
boolean
Gibt an, dass diese Option von Software erkannt werden kann.
-
isEmulated
boolean
Wird vom Scanner-Treiber emuliert, wenn „true“.
-
name
String
Der Optionsname mit ASCII-Kleinbuchstaben, Ziffern und Bindestrichen. Diakritische Zeichen sind nicht zulässig.
-
Titel
String
Einzeiliger Titel, der gedruckt werden kann.
-
Typ
Der Datentyp, der in der
value
-Eigenschaft enthalten ist und zum Festlegen dieser Option benötigt wird. -
Einheit
Die Maßeinheit für diese Option.
-
Wert
String | Zahl | boolescher Wert | Zahl[] optional
Der aktuelle Wert der Option, falls relevant. Der Datentyp dieser Eigenschaft muss mit dem in
type
angegebenen Datentyp übereinstimmen.
ScanOptions
Attribute
-
maxImages
number optional
Die Anzahl der zulässigen gescannten Bilder. Der Standardwert ist 1.
-
mimeTypes
string[] optional
Die vom Anrufer akzeptierten MIME-Typen.
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 Option an, die festgelegt wurde.
-
Ergebnis
Gibt das Ergebnis der Einstellung der Option an.
SetOptionsResponse
Attribute
-
Optionen
object optional
Eine aktualisierte Schlüssel/Wert-Zuordnung von Optionsnamen zu
ScannerOption
-Werten, die die neue Konfiguration enthält, nachdem versucht wurde, alle angegebenen Optionen festzulegen. Sie hat dieselbe Struktur wie die Eigenschaftoptions
inOpenScannerResponse
.Diese Eigenschaft wird auch dann festgelegt, wenn einige Optionen nicht erfolgreich festgelegt wurden. Sie wird jedoch aufgehoben, wenn das Abrufen der aktualisierten Konfiguration fehlschlägt, z. B. wenn der Scanner während des Scannens getrennt wird.
-
Ergebnisse
Ein Array von Ergebnissen, eines für jeden übergebenen
OptionSetting
. -
scannerHandle
String
Gibt das Scanner-Handle an, das an
setOptions()
übergeben wurde.
StartScanOptions
Attribute
-
Format
String
Gibt den MIME-Typ an, in dem gescannte Daten zurückgegeben werden sollen.
-
maxReadSize
number optional
Wenn ein Wert ungleich null angegeben wird, wird die maximale Anzahl der gescannten Bytes, 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 die Größe eines zurückgegebenen Chunks dem gesamten gescannten Bild entsprechen.
StartScanResponse
Attribute
-
Job
String optional
Wenn
result
gleichSUCCESS
ist, wird ein Handle bereitgestellt, mit dem Scandaten gelesen oder der Job abgebrochen werden kann. -
Ergebnis
Das Ergebnis des Startens eines Scans. Wenn der Wert
SUCCESS
ist, wird die Propertyjob
ausgefüllt. -
scannerHandle
String
Gibt denselben Scanner-Handle zurück, der an
startScan()
übergeben wurde.
Methoden
cancelScan()
chrome.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
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 das Objekt stattdessen an diesen übergeben.
Parameter
-
Job
String
Der Handle eines aktiven Scanvorgangs, der zuvor von einem Aufruf von
startScan
zurückgegeben wurde.
Ausgabe
-
Promise<CancelScanResponse>
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
Schließt den Scanner mit dem übergebenen Handle und gibt ein Promise zurück, das mit einem CloseScannerResponse
-Objekt aufgelöst wird. Wenn ein Callback verwendet wird, wird das Objekt stattdessen an diesen übergeben. Auch wenn die Antwort nicht erfolgreich ist, wird der angegebene Handle ungültig und sollte nicht für weitere Vorgänge verwendet werden.
Parameter
-
scannerHandle
String
Gibt das Handle eines geöffneten Scanners an, das zuvor von einem Aufruf von
openScanner
zurückgegeben wurde.
Ausgabe
-
Promise<CloseScannerResponse>
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
Ruft die Gruppennamen und Mitgliedsoptionen von einem Scanner ab, der zuvor mit openScanner
geöffnet wurde. Diese Methode gibt ein Promise zurück, das mit einem GetOptionGroupsResponse
-Objekt aufgelöst wird. Wenn dieser Funktion ein Callback übergeben wird, werden die zurückgegebenen Daten stattdessen an diesen Callback übergeben.
Parameter
-
scannerHandle
String
Der Handle eines geöffneten Scanners, der von einem Aufruf von
openScanner
zurückgegeben wird.
Ausgabe
-
Promise<GetOptionGroupsResponse>
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
Ruft die Liste der verfügbaren Scanner ab und gibt ein Promise zurück, das mit einem GetScannerListResponse
-Objekt aufgelöst wird. Wenn dieser Funktion ein Callback übergeben wird, werden die zurückgegebenen Daten stattdessen an diesen Callback übergeben.
Parameter
-
filtern
Ein
DeviceFilter
, der angibt, welche Arten von Scannern zurückgegeben werden sollen.
Ausgabe
-
Promise<GetScannerListResponse>
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
Öffnet einen Scanner für exklusiven Zugriff und gibt ein Promise zurück, das mit einem OpenScannerResponse
-Objekt aufgelöst wird. Wenn dieser Funktion ein Callback übergeben wird, werden die zurückgegebenen Daten stattdessen an diesen Callback übergeben.
Parameter
-
scannerId
String
Die ID eines zu öffnenden Scanners. Dieser Wert wurde von einem vorherigen Aufruf von
getScannerList
zurückgegeben.
Ausgabe
-
Promise<OpenScannerResponse>
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
Liest den nächsten Chunk 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 das Objekt stattdessen an diesen übergeben.
**Hinweis**: Es ist zulässig, dass ein Antwortresultat SUCCESS
mit einem data
-Element der Länge 0 ist. 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 Scanvorgang abgeschlossen ist, enthält die Antwort den Ergebniswert EOF
. Diese Antwort kann ein letztes data
-Element ungleich null enthalten.
Parameter
-
Job
String
Aktives Job-Handle, das zuvor von
startScan
zurückgegeben wurde.
Ausgabe
-
Promise<ReadScanDataResponse>
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
Führt einen Dokumentenscan durch und gibt ein Promise zurück, das mit einem ScanResults
-Objekt aufgelöst wird. Wenn dieser Funktion ein Callback übergeben wird, werden die zurückgegebenen Daten stattdessen an diesen Callback übergeben.
Parameter
-
Optionen
Ein Objekt mit Scanparametern.
Ausgabe
-
Promise<ScanResults>
Chrome 96 und höher
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
Legt Optionen für den angegebenen Scanner fest und gibt ein Promise 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 das Objekt stattdessen an diesen übergeben.
Parameter
-
scannerHandle
String
Der Handle 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.
Ausgabe
-
Promise<SetOptionsResponse>
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
Startet einen Scan auf dem angegebenen Scanner und gibt ein Promise zurück, das mit einem StartScanResponse
aufgelöst wird. Wenn ein Callback verwendet wird, wird das Objekt stattdessen 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
Das 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 für den Scan zu verwendenden Optionen angibt. Die PropertyStartScanOptions.format
muss mit einem der Einträge übereinstimmen, die imScannerInfo
des Scanners zurückgegeben werden.
Ausgabe
-
Promise<StartScanResponse>