説明
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 として取得する方法の 1 つを示し、OperationResult
の値を使用して startScan()
と readScanData()
を使用する方法を示しています。
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" }); }
レターサイズのページを 1 枚スキャンする
この例では、スキャナを選択し、オプションを設定して、開く方法を示します。次に、1 ページのコンテンツを取得して、スキャナを閉じます。このプロセスでは、getScannerList()
、openScanner()
、setOptions()
、closeScanner()
の使用方法を示します。ページのコンテンツは、前の例の pageAsBlob()
関数を呼び出すことで取得されます。
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); }
構成を表示する
別の場所で説明したように、スキャナの構成オプションをユーザーに表示するには、openScanner()
の呼び出しから返されたスキャナ オプションに加えて、getOptionGroups()
を呼び出す必要があります。これは、メーカー定義のグループでユーザーにオプションを表示できるようにするためです。この例では、その方法を示します。
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"); } } } }
型
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
プロパティ
- ローカル
ブール値(省略可)
パソコンに直接接続されているスキャナのみを返します。
- 安全
ブール値(省略可)
USB や TLS などの安全なトランスポートを使用するスキャナのみを返します。
GetOptionGroupsResponse
プロパティ
- グループ
OptionGroup[] 省略可
result
がSUCCESS
の場合、スキャナ ドライバが提供する順序でオプション グループのリストを提供します。 - 件の結果
オプション グループの取得結果。この値が
SUCCESS
の場合、groups
プロパティが入力されます。 - scannerHandle
文字列
getOptionGroups
に渡されたものと同じスキャナ ハンドル。
GetScannerListResponse
プロパティ
- 件の結果
列挙結果。エラーが示されている場合でも、部分的な結果が返されることがあります。
- スキャナ
指定された
DeviceFilter
に一致するスキャナのリスト(空の場合もあります)。
OpenScannerResponse
プロパティ
- オプション
オブジェクト 省略可
result
がSUCCESS
の場合、キーがデバイス固有のオプションで、値がScannerOption
のインスタンスであるキーと値のマッピングを提供します。 - 件の結果
スキャナを開いた結果。この値が
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
文字列
印刷可能なタイトル(「Geometry options」など)を指定します。
OptionSetting
プロパティ
- name
文字列
設定するオプションの名前を示します。
- type
オプションのデータ型を示します。リクエストされたデータ型は、基盤となるオプションの実際のデータ型と一致している必要があります。
- 値
string | number | boolean | number[] 省略可
設定する値を示します。
autoSettable
が有効になっているオプションの自動設定をリクエストするには、設定しないままにします。value
に指定されたデータ型はtype
と一致する必要があります。
OptionType
オプションのデータ型。
列挙型
「UNKNOWN」
オプションのデータ型が不明です。value
プロパティは設定解除されます。
"BOOL"
value
プロパティは true
false のいずれかになります。
"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 省略可
ゼロ以外の値が指定されている場合、単一の
readScanData
レスポンスで返される最大スキャン バイト数をその値に制限します。最小許容値は 32768(32 KB)です。このプロパティが指定されていない場合、返されるチャンクのサイズはスキャンされた画像全体と同じくらい大きくなることがあります。
StartScanResponse
プロパティ
- ジョブ
文字列 省略可
result
がSUCCESS
の場合、スキャンデータの読み取りやジョブのキャンセルに使用できるハンドルを提供します。 - 件の結果
スキャンを開始した結果。この値が
SUCCESS
の場合、job
プロパティが入力されます。 - scannerHandle
文字列
startScan()
に渡されたものと同じスキャナ ハンドルを提供します。
メソッド
cancelScan()
chrome.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
開始されたスキャンをキャンセルし、CancelScanResponse
オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。
パラメータ
- ジョブ
文字列
startScan
の呼び出しから以前に返されたアクティブ スキャンジョブのハンドル。
戻り値
-
Promise<CancelScanResponse>
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
渡されたハンドルでスキャナを閉じ、CloseScannerResponse
オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。レスポンスが成功しなかった場合でも、指定されたハンドルは無効になり、以降のオペレーションで使用できなくなります。
パラメータ
- scannerHandle
文字列
以前に
openScanner
の呼び出しから返された、開いているスキャナのハンドルを指定します。
戻り値
-
Promise<CloseScannerResponse>
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
以前に openScanner
で開かれたスキャナからグループ名とメンバー オプションを取得します。このメソッドは、GetOptionGroupsResponse
オブジェクトで解決される Promise を返します。コールバックがこの関数に渡されると、代わりに返されたデータがコールバックに渡されます。
パラメータ
- scannerHandle
文字列
openScanner
の呼び出しから返された、開いているスキャナのハンドル。
戻り値
-
Promise<GetOptionGroupsResponse>
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
使用可能なスキャナのリストを取得し、GetScannerListResponse
オブジェクトで解決される Promise を返します。コールバックがこの関数に渡されると、代わりに返されたデータがコールバックに渡されます。
パラメータ
- フィルタ
返すスキャナのタイプを示す
DeviceFilter
。
戻り値
-
Promise<GetScannerListResponse>
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
排他アクセス用のスキャナを開き、OpenScannerResponse
オブジェクトで解決される Promise を返します。コールバックがこの関数に渡されると、代わりに返されたデータがコールバックに渡されます。
パラメータ
- scannerId
文字列
開くスキャナの ID。この値は、前回の
getScannerList
の呼び出しから返された値です。
戻り値
-
Promise<OpenScannerResponse>
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
アクティブなジョブハンドルから使用可能な画像データの次のチャンクを読み取り、ReadScanDataResponse
オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。
**注:**レスポンス結果が SUCCESS
で、長さがゼロの data
メンバーを持つことは有効です。これは、スキャナはまだ動作しているが、追加のデータがまだ準備できていないことを意味します。発信者はしばらく待ってからもう一度お試しください。
スキャンジョブが完了すると、レスポンスに EOF
の結果値が含まれます。このレスポンスには、最終的なゼロ以外の data
メンバーが含まれている場合があります。
パラメータ
- ジョブ
文字列
以前に
startScan
から返されたアクティブなジョブハンドル。
戻り値
-
Promise<ReadScanDataResponse>
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
ドキュメント スキャンを実行し、ScanResults
オブジェクトで解決される Promise を返します。コールバックがこの関数に渡されると、返されたデータが代わりに渡されます。
パラメータ
- オプション
スキャン パラメータを含むオブジェクト。
戻り値
-
Promise<ScanResults>
Chrome 96 以降
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
指定されたスキャナのオプションを設定し、渡された OptionSetting
オブジェクトの順に各値を設定しようとした結果を含む SetOptionsResponse
オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。
パラメータ
- scannerHandle
文字列
オプションを設定するスキャナのハンドル。これは、以前に
openScanner
の呼び出しから返された値である必要があります。 - オプション
スキャナに適用する
OptionSetting
オブジェクトのリスト。
戻り値
-
Promise<SetOptionsResponse>
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
指定されたスキャナでスキャンを開始し、StartScanResponse
で解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。呼び出しが成功した場合、レスポンスには、後続の呼び出しでスキャンデータの読み取りやスキャンのキャンセルに使用できるジョブハンドルが含まれます。
パラメータ
- scannerHandle
文字列
開いたスキャナのハンドル。これは、以前に
openScanner
の呼び出しから返された値である必要があります。 - オプション
スキャンに使用するオプションを示す
StartScanOptions
オブジェクト。StartScanOptions.format
プロパティは、スキャナのScannerInfo
で返されたエントリのいずれかと一致する必要があります。
戻り値
-
Promise<StartScanResponse>