説明
chrome.documentScan API を使用して、接続されたドキュメント スキャナから画像を検出して取得します。
Document Scan API は、アプリや拡張機能が、接続されたドキュメント スキャナで紙のドキュメントの内容を表示できるように設計されています。
権限
documentScan対象
コンセプトと使用方法
この API は、ドキュメントをスキャンする 2 つの方法をサポートしています。ユースケースがどのスキャナでも機能し、構成の制御を必要としない場合は、scan() メソッドを使用します。より複雑なユースケースでは、メソッドの組み合わせが必要になります。これは Chrome 124 以降でのみサポートされています。
シンプルなスキャン
単純なユースケース(どのスキャナでも動作し、構成の制御を必要としないユースケース)の場合は、scan() を呼び出します。このメソッドは ScanOptions オブジェクトを受け取り、ScanResults オブジェクトで解決される Promise を返します。このオプションの機能は、スキャン数と、呼び出し元が受け入れる MIME タイプに制限されます。スキャンは、ユーザー インターフェースの <img> タグに表示される URL として返されます。
複雑なスキャン
複雑なスキャンは、このセクションで説明するように、3 つのフェーズで実行されます。この概要では、すべてのメソッド引数や、レスポンスで返されるすべてのプロパティについて説明しているわけではありません。これは、スキャナコードを作成するための一般的なガイドを提供することを目的としています。
ファインド
getScannerList()を呼び出します。利用可能なスキャナは、GetScannerListResponseで解決される Promise で返されます。- レスポンス オブジェクトには、
ScannerInfoオブジェクトの配列が含まれています。 - スキャナが複数のプロトコルまたは接続方法をサポートしている場合、配列には 1 つのスキャナに対して複数のエントリが含まれることがあります。
- レスポンス オブジェクトには、
返された配列からスキャナを選択し、その
scannerIdプロパティの値を保存します。個々の
ScannerInfoオブジェクトのプロパティを使用して、同じスキャナの複数のオブジェクトを区別します。同じスキャナからのオブジェクトは、deviceUuidプロパティの値が同じになります。ScannerInfoには、サポートされている画像タイプの配列を含むimageFormatsプロパティも含まれています。
スキャナの構成
openScanner()を呼び出し、保存したスキャナ ID を渡します。OpenScannerResponseで解決される Promise を返します。レスポンス オブジェクトには次のものが含まれます。scannerHandleプロパティ。保存する必要があります。スキャナ固有のプロパティを含むオプション プロパティ。設定する必要があります。詳細については、スキャナ オプションの取得に関する説明をご覧ください。
(省略可)ユーザーがスキャナ オプションの値を指定する必要がある場合は、ユーザー インターフェースを構築します。前のステップで提供されたスキャナ オプションと、スキャナによって提供されるオプション グループを取得する必要があります。詳細については、ユーザー インターフェースを構築するをご覧ください。
プログラムで指定された値またはユーザーが指定した値を使用して、
OptionSettingオブジェクトの配列を作成します。詳細については、スキャナ オプションの設定をご覧ください。OptionSettingオブジェクトの配列をsetOptions()に渡して、スキャナのオプションを設定します。SetOptionsResponseで解決される Promise を返します。このオブジェクトには、スキャナ構成のステップ 1 で取得したスキャナ オプションの更新バージョンが含まれています。1 つのオプションを変更すると、別のオプションの制約が変更される可能性があるため、これらの手順を数回繰り返すことが必要な場合があります。
スキャン
StartScanOptionsオブジェクトを作成し、startScan()に渡します。StartScanResponseで解決される Promise を返します。そのjobプロパティは、スキャンデータの読み取りまたはスキャンのキャンセルに使用するハンドルです。ジョブハンドルを
readScanData()に渡します。ReadScanDataResponseオブジェクトで解決される Promise が返されます。データが正常に読み取られた場合、resultプロパティはSUCCESSと等しくなり、dataプロパティにはスキャンの一部を含むArrayBufferが含まれます。estimatedCompletionには、これまでに配信されたデータの合計の推定割合が含まれます。resultプロパティがEOFまたはエラーになるまで、前の手順を繰り返します。
スキャンの終了に達したら、ステップ 3 で保存したスキャナ ハンドルを使用して closeScanner() を呼び出します。CloseScannerResponse で解決される Promise を返します。ジョブの作成後に cancelScan() を呼び出すと、スキャンが終了します。
レスポンス オブジェクト
すべてのメソッドは、なんらかのレスポンス オブジェクトで解決される Promise を返します。これらのほとんどには、値が OperationResult のメンバーである result プロパティが含まれています。レスポンス オブジェクトの一部のプロパティには、result の値が特定の値でない限り、値が含まれません。これらの関係については、各レスポンス オブジェクトのリファレンスで説明されています。
たとえば、OpenScannerResponse.scannerHandle は、OpenScannerResponse.result が SUCCESS と等しい場合にのみ値が設定されます。
スキャナ オプション
スキャナのオプションはデバイスによって大きく異なります。そのため、スキャナ オプションを documentScan API 内に直接反映することはできません。これを回避するため、OpenScannerResponse(openScanner() を使用して取得)と SetOptionsResponse(setOptions() のレスポンス オブジェクト)には、スキャナ固有のオプションを含むオブジェクトである options プロパティが含まれています。各オプションは Key-Value マッピングです。ここで、キーはデバイス固有のオプション、値は ScannerOption のインスタンスです。
構造は通常、次のようになります。
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
たとえば、「source」と「resolution」という名前のオプションを返すスキャナがあるとします。返される options オブジェクトの構造は、次の例のようになります。わかりやすくするために、ScannerOption レスポンスの一部のみを示しています。
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
ユーザー インターフェースを構築する
この API を使用するうえで必須ではありませんが、ユーザーが特定のオプションの値を選択できるようにすることもできます。これにはユーザー インターフェースが必要です。前のセクションで説明したように、OpenScannerResponse(openScanner() によって開かれる)を使用して、接続されたスキャナのオプションを取得します。
一部のスキャナでは、デバイス固有の方法でオプションがグループ化されます。オプションの動作には影響しませんが、これらのグループはスキャナの製品ドキュメントに記載されている可能性があるため、ユーザーに表示する必要があります。これらのグループを取得するには、getOptionGroups() を呼び出します。これにより、GetOptionGroupsResponse オブジェクトで解決される Promise が返されます。その groups プロパティには、スキャナ固有のグループの配列が含まれています。これらのグループの情報を使用して、OpenScannerResponse のオプションを整理して表示します。
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
スキャナの構成で説明したように、1 つのオプションを変更すると、別のオプションの制約が変更されることがあります。そのため、setOptionsResponse(setOptions() のレスポンス オブジェクト)には別の options プロパティが含まれています。これを使用してユーザー インターフェースを更新します。すべてのオプションが設定されるまで、必要に応じて繰り返します。
スキャナ オプションを設定する
OptionSetting オブジェクトの配列を setOptions() に渡して、スキャナ オプションを設定します。例については、次のレターサイズのページを 1 ページスキャンするセクションをご覧ください。
例
ページを blob として取得する
この例では、スキャナからページを blob として取得する方法を示し、OperationResult の値を使用して startScan() と readScanData() の使用方法を示します。
async function pageAsBlob(handle) {
let response = await browser.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != browser.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await browser.documentScan.readScanData(job);
while (response.result == browser.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 browser.documentScan.readScanData(job);
}
if (response.result != browser.documentScan.OperationResult.EOF) {
return null;
}
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
}
return new Blob(imgParts, { type: "image/jpeg" });
}
レターサイズのページを 1 枚スキャンする
この例では、スキャナを選択し、オプションを設定して開く方法を示します。次に、1 ページのコンテンツを取得してスキャナを閉じます。このプロセスでは、getScannerList()、openScanner()、setOptions()、closeScanner() の使用方法について説明します。ページのコンテンツは、前の例の pageAsBlob() 関数を呼び出すことで取得されます。
async function scan() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.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: browser.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: browser.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: browser.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await browser.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await browser.documentScan.closeScanner(handle);
}
構成を表示する
前述のとおり、スキャナの構成オプションをユーザーに表示するには、openScanner() の呼び出しから返されるスキャナ オプションに加えて、getOptionGroups() を呼び出す必要があります。これにより、メーカー定義のグループでオプションをユーザーに表示できます。この例では、その方法を示します。
async function showConfig() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await browser.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");
}
}
}
}
型
CancelScanResponse
プロパティ
-
ジョブ
文字列
cancelScan()に渡されたものと同じジョブハンドルを提供します。 -
件の結果
バックエンドのスキャン キャンセルの結果。結果が
OperationResult.SUCCESSまたはOperationResult.CANCELLEDの場合、スキャンはキャンセルされ、スキャナは新しいスキャンを開始する準備ができています。結果がOperationResult.DEVICE_BUSYの場合、スキャナはリクエストされたキャンセルをまだ処理しています。呼び出し元はしばらく待ってから、リクエストを再試行する必要があります。その他の結果値は、再試行すべきでない永続的なエラーを示します。
CloseScannerResponse
プロパティ
-
件の結果
スキャナを閉じた結果。この値が
SUCCESSでない場合でも、ハンドルは無効になり、それ以降のオペレーションには使用できません。 -
scannerHandle
文字列
closeScannerに渡されたものと同じスキャナ ハンドル。
Configurability
オプションの変更方法。
列挙型
"NOT_CONFIGURABLE"
オプションは読み取り専用です。
"SOFTWARE_CONFIGURABLE"
このオプションはソフトウェアで設定できます。
"HARDWARE_CONFIGURABLE"
ユーザーがスキャナのボタンを切り替えたり押したりすることで、オプションを設定できます。
ConnectionType
スキャナがパソコンにどのように接続されているかを示します。
列挙型
"UNSPECIFIED"
「USB」
"NETWORK"
列挙型
"INT_RANGE"
OptionType.INT 値の範囲に関する制約。OptionConstraint の min、max、quant プロパティは long になり、list プロパティは設定解除されます。
"FIXED_RANGE"
OptionType.FIXED 値の範囲に関する制約。OptionConstraint の min、max、quant プロパティは double になり、list プロパティは未設定になります。
"INT_LIST"
OptionType.INT 値の特定のリストに対する制約。OptionConstraint.list プロパティには long 値が含まれ、他のプロパティは設定されません。
"FIXED_LIST"
OptionType.FIXED 値の特定のリストに対する制約。OptionConstraint.list プロパティには double 値が含まれ、他のプロパティは設定されません。
"STRING_LIST"
OptionType.STRING 値の特定のリストに対する制約。OptionConstraint.list プロパティには DOMString 値が含まれ、他のプロパティは設定されません。
DeviceFilter
プロパティ
-
ローカル
boolean 省略可
パソコンに直接接続されているスキャナのみを返します。
-
安全
boolean 省略可
USB や TLS などの安全な転送を使用するスキャナのみを返します。
GetOptionGroupsResponse
プロパティ
-
グループ
OptionGroup[] 省略可
resultがSUCCESSの場合、スキャナ ドライバから提供された順序でオプション グループのリストを提供します。 -
件の結果
オプション グループの取得結果。この値が
SUCCESSの場合、groupsプロパティが入力されます。 -
scannerHandle
文字列
getOptionGroupsに渡されたものと同じスキャナ ハンドル。
GetScannerListResponse
プロパティ
-
件の結果
列挙結果。エラーが示されている場合でも、部分的な結果が返されることがあります。
-
スキャナ
指定された
DeviceFilterと一致するスキャナのリスト(空の場合もあります)。
OpenScannerResponse
プロパティ
-
オプション
オブジェクト(省略可)
resultがSUCCESSの場合、キーがデバイス固有のオプションで、値がScannerOptionのインスタンスである Key-Value マッピングを提供します。 -
件の結果
スキャナを開いた結果。この値が
SUCCESSの場合、scannerHandleプロパティとoptionsプロパティが入力されます。 -
scannerHandle
文字列 省略可
resultがSUCCESSの場合、以降のオペレーションに使用できるスキャナのハンドル。 -
scannerId
文字列
openScanner()に渡されるスキャナ ID。
OperationResult
各オペレーションの結果を示す列挙型。
列挙型
"UNKNOWN"
不明なエラーまたは一般的なエラーが発生しました。
"SUCCESS"
オペレーションが成功しました。
"UNSUPPORTED"
オペレーションがサポートされていません。
"CANCELLED"
オペレーションがキャンセルされました。
"DEVICE_BUSY"
デバイスが使用中です。
"INVALID"
メソッドに渡されたデータまたは引数が無効です。
"WRONG_TYPE"
指定された値は、基になるオプションのデータ型として正しくありません。
"EOF"
これ以上データはありません。
「ADF_JAMMED」
ドキュメント フィーダーが詰まっています。
"ADF_EMPTY"
ドキュメント フィーダーが空です。
"COVER_OPEN"
フラットベッド カバーが開いています。
"IO_ERROR"
デバイスとの通信中にエラーが発生しました。
"ACCESS_DENIED"
デバイスで認証が必要です。
"NO_MEMORY"
操作を完了するのに十分なメモリが Chromebook にありません。
「UNREACHABLE」
デバイスに接続できません。
「MISSING」
デバイスが接続されていません。
"INTERNAL_ERROR"
呼び出し元のアプリケーション以外の場所でエラーが発生しました。
OptionConstraint
プロパティ
-
list
string[] | number[] 省略可
-
最大
number 省略可
-
分
number 省略可
-
quant
number 省略可
-
type
OptionGroup
プロパティ
-
メンバー
string[]
ドライバが提供する順序のオプション名の配列。
-
title
文字列
印刷可能なタイトル(「ジオメトリ オプション」など)を指定します。
OptionSetting
プロパティ
-
name
文字列
設定するオプションの名前を示します。
-
type
オプションのデータ型を示します。リクエストされたデータ型は、基になるオプションの実際のデータ型と一致する必要があります。
-
値
string | number | boolean | number[] 省略可
設定する値を示します。
autoSettableが有効になっているオプションの自動設定をリクエストするには、未設定のままにします。valueに指定されたデータ型はtypeと一致する必要があります。
OptionType
オプションのデータ型。
列挙型
"UNKNOWN"
オプションのデータ型が不明です。value プロパティの設定が解除されます。
"BOOL"
value プロパティは truefalse のいずれかになります。
"INT"
符号付き 32 ビット整数。value プロパティは、オプションが複数の値を取るかどうかに応じて、long または long[] になります。
"FIXED"
-32768 ~ 32767.9999 の範囲の double。解像度は 1/65535。value プロパティは、オプションが複数の値を取るかどうかに応じて、double または double[] になります。正確に表現できない double 値は、使用可能な範囲と精度に丸められます。
"STRING"
NUL('\0')を除く任意のバイトのシーケンス。value プロパティは DOMString になります。
"BUTTON"
このタイプのオプションには値がありません。代わりに、このタイプのオプションを設定すると、スキャナ ドライバでオプション固有の副作用が発生します。たとえば、ボタンタイプのオプションは、スキャナ ドライバがデフォルト値を選択する手段を提供したり、自動ドキュメント フィーダーに次の用紙に進むよう指示したりするために使用できます。
"GROUP"
グループ化オプション。値なし。これは互換性のために含まれていますが、通常は ScannerOption 値で返されません。getOptionGroups() を使用して、メンバー オプションを含むグループのリストを取得します。
列挙型
"UNITLESS"
値は単位のない数値です。たとえば、しきい値などです。
"PIXEL"
値はピクセル数です(スキャン寸法など)。
"BIT"
値はビット数(色深度など)です。
"MM"
値はミリメートル単位で測定されます(例: スキャン寸法)。
"DPI"
値は 1 インチあたりのドット数(解像度など)で測定されます。
"PERCENT"
値はパーセントです(例: 明るさ)。
"MICROSECOND"
値はマイクロ秒単位で測定されます(例: 露光時間)。
ReadScanDataResponse
プロパティ
-
データ
ArrayBuffer 省略可
resultがSUCCESSの場合、スキャンされた画像データの次のチャンクが含まれます。resultがEOFの場合、スキャンされた画像データの最後のチャンクが含まれます。 -
estimatedCompletion
number 省略可
resultがSUCCESSの場合、これまでに配信されたスキャンデータの合計量の推定値(0 ~ 100 の範囲)。 -
ジョブ
文字列
readScanData()に渡されたジョブハンドルを提供します。 -
件の結果
データの読み取り結果。値が
SUCCESSの場合、dataには、読み取り可能な画像データの次のチャンク(長さがゼロの場合もあります)が含まれます。値がEOFの場合、dataには画像データの最後のチャンクが含まれます。
ScannerInfo
プロパティ
-
connectionType
スキャナがパソコンにどのように接続されているかを示します。
-
deviceUuid
文字列
同じ実機を指す他の
ScannerInfoエントリとの照合に使用されます。 -
imageFormats
string[]
返されたスキャンに対してリクエストできる MIME タイプの配列。
-
メーカー
文字列
スキャナのメーカー。
-
モデル
文字列
スキャナのモデル(利用可能な場合)または一般的な説明。
-
name
文字列
UI に表示されるスキャナの人が読める名前。
-
protocolType
文字列
スキャナへのアクセスに使用されるプロトコルまたはドライバ(Mopria、WSD、epsonds など)の人が読める形式の説明。これは主に、デバイスが複数のプロトコルをサポートしている場合に、ユーザーがプロトコルを選択できるようにするために役立ちます。
-
scannerId
文字列
特定のスキャナの ID。
-
安全
ブール値
true の場合、スキャナ接続のトランスポートは、TLS や USB などのパッシブ リスナーによって傍受されません。
ScannerOption
プロパティ
-
構成の柔軟性
オプションを変更できるかどうか、および変更方法を示します。
-
制約
OptionConstraint 省略可
現在のスキャナ オプションで
OptionConstraintを定義します。 -
説明
文字列
オプションの詳しい説明。
-
isActive
ブール値
オプションが有効で、設定または取得できることを示します。false の場合、
valueプロパティは設定されません。 -
isAdvanced
ブール値
UI でこのオプションをデフォルトで表示しないことを示します。
-
isAutoSettable
ブール値
スキャナ ドライバによって自動的に設定できます。
-
isDetectable
ブール値
このオプションをソフトウェアから検出できることを示します。
-
isEmulated
ブール値
true の場合、スキャナ ドライバによってエミュレートされます。
-
name
文字列
オプション名。小文字の ASCII 文字、数字、ダッシュを使用します。発音区別符号は使用できません。
-
title
文字列
印刷可能な 1 行のタイトル。
-
type
valueプロパティに含まれるデータ型。このオプションを設定するために必要です。 -
単位
このオプションの測定単位。
-
値
string | number | boolean | number[] 省略可
オプションの現在の値(該当する場合)。このプロパティのデータ型は、
typeで指定されたデータ型と一致する必要があります。
ScanOptions
プロパティ
-
maxImages
number 省略可
スキャンできる画像の数。デフォルトは 1 です。
-
mimeTypes
string[] 省略可
呼び出し元が受け入れる MIME タイプ。
ScanResults
プロパティ
-
dataUrls
string[]
画像タグに「src」値として渡すことができる形式のデータ画像 URL の配列。
-
mimeType
文字列
dataUrlsの MIME タイプ。
SetOptionResult
プロパティ
-
name
文字列
設定されたオプションの名前を示します。
-
件の結果
オプションの設定結果を示します。
SetOptionsResponse
プロパティ
-
オプション
オブジェクト(省略可)
指定されたすべてのオプションを設定しようとした後の新しい構成を含む、オプション名から
ScannerOption値への更新された Key-Value マッピング。これは、OpenScannerResponseのoptionsプロパティと同じ構造です。このプロパティは、一部のオプションが正常に設定されなかった場合でも設定されますが、更新された構成の取得に失敗した場合(スキャンの途中でスキャナが切断された場合など)は設定されません。
-
結果
結果の配列。渡された
OptionSettingごとに 1 つずつ。 -
scannerHandle
文字列
setOptions()に渡されたスキャナ ハンドルを提供します。
StartScanOptions
プロパティ
-
形式
文字列
スキャンされたデータを返す MIME タイプを指定します。
-
maxReadSize
number 省略可
ゼロ以外の値を指定すると、1 つの
readScanDataレスポンスで返されるスキャンされた最大バイト数がその値に制限されます。最小値は 32768(32 KB)です。このプロパティが指定されていない場合、返されるチャンクのサイズは、スキャンされた画像全体と同じ大きさになることがあります。
StartScanResponse
プロパティ
-
ジョブ
文字列 省略可
resultがSUCCESSの場合、スキャンデータの読み取りやジョブのキャンセルに使用できるハンドルを提供します。 -
件の結果
スキャンの開始結果。この値が
SUCCESSの場合、jobプロパティが入力されます。 -
scannerHandle
文字列
startScan()に渡されたものと同じスキャナ ハンドルを提供します。
メソッド
cancelScan()
browser.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
開始されたスキャンをキャンセルし、CancelScanResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。
パラメータ
-
ジョブ
文字列
以前に
startScanの呼び出しから返されたアクティブなスキャンジョブのハンドル。
戻り値
-
Promise<CancelScanResponse>
結果で解決される Promise を返します。
closeScanner()
browser.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
渡されたハンドルでスキャナを閉じ、CloseScannerResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。レスポンスが成功でない場合でも、指定されたハンドルは無効になり、それ以降のオペレーションには使用できません。
パラメータ
-
scannerHandle
文字列
以前に
openScannerの呼び出しから返された、開いているスキャナのハンドルを指定します。
戻り値
-
Promise<CloseScannerResponse>
結果で解決される Promise を返します。
getOptionGroups()
browser.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
openScanner によって以前に開かれたスキャナから、グループ名とメンバー オプションを取得します。このメソッドは、GetOptionGroupsResponse オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりにコールバックに渡されます。
パラメータ
-
scannerHandle
文字列
openScannerの呼び出しから返された、開いているスキャナのハンドル。
戻り値
-
Promise<GetOptionGroupsResponse>
結果で解決される Promise を返します。
getScannerList()
browser.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
利用可能なスキャナのリストを取得し、GetScannerListResponse オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりにコールバックに渡されます。
パラメータ
-
filter
返されるスキャナの種類を示す
DeviceFilter。
戻り値
-
Promise<GetScannerListResponse>
結果とスキャナのリストで解決される Promise を返します。
openScanner()
browser.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
排他的アクセス用にスキャナを開き、OpenScannerResponse オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりにコールバックに渡されます。
パラメータ
-
scannerId
文字列
開くスキャナの ID。この値は、前回の
getScannerListの呼び出しから返された値です。
戻り値
-
Promise<OpenScannerResponse>
結果で解決される Promise を返します。
readScanData()
browser.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
アクティブなジョブハンドルから、利用可能な画像データの次のチャンクを読み取り、ReadScanDataResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。
**注:**レスポンス結果が SUCCESS で、長さがゼロの data メンバーが含まれている場合は有効です。これは、スキャナはまだ動作しているものの、追加のデータがまだ準備されていないことを意味します。呼び出し元はしばらく待ってから再試行する必要があります。
スキャンジョブが完了すると、レスポンスに EOF の結果値が返されます。このレスポンスには、ゼロ以外の最終的な data メンバーが含まれている場合があります。
パラメータ
-
ジョブ
文字列
以前に
startScanから返されたアクティブなジョブハンドル。
戻り値
-
Promise<ReadScanDataResponse>
結果で解決される Promise を返します。
scan()
browser.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
ドキュメント スキャンを実行し、ScanResults オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりに渡されます。
パラメータ
-
オプション
スキャン パラメータを含むオブジェクト。
戻り値
-
Promise<ScanResults>
Chrome 96 以降 Chrome 148 以降の browser.*スキャン結果で解決される Promise を返します。
setOptions()
browser.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
指定されたスキャナにオプションを設定し、渡された OptionSetting オブジェクトの順序ですべての値を設定しようとした結果を含む SetOptionsResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。
パラメータ
-
scannerHandle
文字列
オプションを設定するスキャナのハンドル。これは、以前に
openScannerの呼び出しから返された値である必要があります。 -
オプション
スキャナに適用する
OptionSettingオブジェクトのリスト。
戻り値
-
Promise<SetOptionsResponse>
結果で解決される Promise を返します。
startScan()
browser.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
指定されたスキャナでスキャンを開始し、StartScanResponse で解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。呼び出しが成功すると、レスポンスには、スキャンデータの読み取りやスキャンのキャンセルを行う後続の呼び出しで使用できるジョブハンドルが含まれます。
パラメータ
-
scannerHandle
文字列
開いているスキャナのハンドル。これは、以前に
openScannerの呼び出しから返された値である必要があります。 -
オプション
スキャンに使用するオプションを示す
StartScanOptionsオブジェクト。StartScanOptions.formatプロパティは、スキャナのScannerInfoで返されるエントリのいずれかと一致する必要があります。
戻り値
-
Promise<StartScanResponse>
結果で解決される Promise を返します。