browser.documentScan

説明

chrome.documentScan API を使用して、接続されたドキュメント スキャナから画像を検出して取得します。

Document Scan API は、アプリや拡張機能が、接続されたドキュメント スキャナで紙のドキュメントの内容を表示できるように設計されています。

権限

documentScan

対象

Chrome 44 以降 Chrome 148 以降の browser.* ChromeOS のみ
後で追加された API メンバーの空き時間は、それらのメンバーとともに表示されます。

コンセプトと使用方法

この API は、ドキュメントをスキャンする 2 つの方法をサポートしています。ユースケースがどのスキャナでも機能し、構成の制御を必要としない場合は、scan() メソッドを使用します。より複雑なユースケースでは、メソッドの組み合わせが必要になります。これは Chrome 124 以降でのみサポートされています。

シンプルなスキャン

単純なユースケース(どのスキャナでも動作し、構成の制御を必要としないユースケース)の場合は、scan() を呼び出します。このメソッドは ScanOptions オブジェクトを受け取り、ScanResults オブジェクトで解決される Promise を返します。このオプションの機能は、スキャン数と、呼び出し元が受け入れる MIME タイプに制限されます。スキャンは、ユーザー インターフェースの <img> タグに表示される URL として返されます。

複雑なスキャン

複雑なスキャンは、このセクションで説明するように、3 つのフェーズで実行されます。この概要では、すべてのメソッド引数や、レスポンスで返されるすべてのプロパティについて説明しているわけではありません。これは、スキャナコードを作成するための一般的なガイドを提供することを目的としています。

ファインド

  1. getScannerList() を呼び出します。利用可能なスキャナは、GetScannerListResponse で解決される Promise で返されます。

    • レスポンス オブジェクトには、ScannerInfo オブジェクトの配列が含まれています。
    • スキャナが複数のプロトコルまたは接続方法をサポートしている場合、配列には 1 つのスキャナに対して複数のエントリが含まれることがあります。
  2. 返された配列からスキャナを選択し、その scannerId プロパティの値を保存します。

    個々の ScannerInfo オブジェクトのプロパティを使用して、同じスキャナの複数のオブジェクトを区別します。同じスキャナからのオブジェクトは、deviceUuid プロパティの値が同じになります。ScannerInfo には、サポートされている画像タイプの配列を含む imageFormats プロパティも含まれています。

スキャナの構成

  1. openScanner() を呼び出し、保存したスキャナ ID を渡します。OpenScannerResponse で解決される Promise を返します。レスポンス オブジェクトには次のものが含まれます。

    • scannerHandle プロパティ。保存する必要があります。

    • スキャナ固有のプロパティを含むオプション プロパティ。設定する必要があります。詳細については、スキャナ オプションの取得に関する説明をご覧ください。

  2. (省略可)ユーザーがスキャナ オプションの値を指定する必要がある場合は、ユーザー インターフェースを構築します。前のステップで提供されたスキャナ オプションと、スキャナによって提供されるオプション グループを取得する必要があります。詳細については、ユーザー インターフェースを構築するをご覧ください。

  3. プログラムで指定された値またはユーザーが指定した値を使用して、OptionSetting オブジェクトの配列を作成します。詳細については、スキャナ オプションの設定をご覧ください。

  4. OptionSetting オブジェクトの配列を setOptions() に渡して、スキャナのオプションを設定します。SetOptionsResponse で解決される Promise を返します。このオブジェクトには、スキャナ構成のステップ 1 で取得したスキャナ オプションの更新バージョンが含まれています。

    1 つのオプションを変更すると、別のオプションの制約が変更される可能性があるため、これらの手順を数回繰り返すことが必要な場合があります。

スキャン

  1. StartScanOptions オブジェクトを作成し、startScan() に渡します。StartScanResponse で解決される Promise を返します。その job プロパティは、スキャンデータの読み取りまたはスキャンのキャンセルに使用するハンドルです。

  2. ジョブハンドルを readScanData() に渡します。ReadScanDataResponse オブジェクトで解決される Promise が返されます。データが正常に読み取られた場合、result プロパティは SUCCESS と等しくなり、data プロパティにはスキャンの一部を含む ArrayBuffer が含まれます。estimatedCompletion には、これまでに配信されたデータの合計の推定割合が含まれます。

  3. 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

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • ジョブ

    文字列

    cancelScan() に渡されたものと同じジョブハンドルを提供します。

  • 件の結果

    バックエンドのスキャン キャンセルの結果。結果が OperationResult.SUCCESS または OperationResult.CANCELLED の場合、スキャンはキャンセルされ、スキャナは新しいスキャンを開始する準備ができています。結果が OperationResult.DEVICE_BUSY の場合、スキャナはリクエストされたキャンセルをまだ処理しています。呼び出し元はしばらく待ってから、リクエストを再試行する必要があります。その他の結果値は、再試行すべきでない永続的なエラーを示します。

CloseScannerResponse

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • 件の結果

    スキャナを閉じた結果。この値が SUCCESS でない場合でも、ハンドルは無効になり、それ以降のオペレーションには使用できません。

  • scannerHandle

    文字列

    closeScanner に渡されたものと同じスキャナ ハンドル。

Configurability

Chrome 125 以降 Chrome 148 以降の browser.*

オプションの変更方法。

列挙型

"NOT_CONFIGURABLE"
オプションは読み取り専用です。

"SOFTWARE_CONFIGURABLE"
このオプションはソフトウェアで設定できます。

"HARDWARE_CONFIGURABLE"
ユーザーがスキャナのボタンを切り替えたり押したりすることで、オプションを設定できます。

ConnectionType

Chrome 125 以降 Chrome 148 以降の browser.*

スキャナがパソコンにどのように接続されているかを示します。

列挙型

"UNSPECIFIED"

「USB」

"NETWORK"

ConstraintType

Chrome 125 以降 Chrome 148 以降の browser.*

OptionConstraint で表される制約のデータ型。

列挙型

"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

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • ローカル

    boolean 省略可

    パソコンに直接接続されているスキャナのみを返します。

  • 安全

    boolean 省略可

    USB や TLS などの安全な転送を使用するスキャナのみを返します。

GetOptionGroupsResponse

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • グループ

    OptionGroup[] 省略可

    result が SUCCESS の場合、スキャナ ドライバから提供された順序でオプション グループのリストを提供します。

  • 件の結果

    オプション グループの取得結果。この値が SUCCESS の場合、groups プロパティが入力されます。

  • scannerHandle

    文字列

    getOptionGroups に渡されたものと同じスキャナ ハンドル。

GetScannerListResponse

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • 件の結果

    列挙結果。エラーが示されている場合でも、部分的な結果が返されることがあります。

  • スキャナ

    指定された DeviceFilter と一致するスキャナのリスト(空の場合もあります)。

OpenScannerResponse

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • オプション

    オブジェクト(省略可)

    result が SUCCESS の場合、キーがデバイス固有のオプションで、値が ScannerOption のインスタンスである Key-Value マッピングを提供します。

  • 件の結果

    スキャナを開いた結果。この値が SUCCESS の場合、scannerHandle プロパティと options プロパティが入力されます。

  • scannerHandle

    文字列 省略可

    result が SUCCESS の場合、以降のオペレーションに使用できるスキャナのハンドル。

  • scannerId

    文字列

    openScanner() に渡されるスキャナ ID。

OperationResult

Chrome 125 以降 Chrome 148 以降の browser.*

各オペレーションの結果を示す列挙型。

列挙型

"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

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • list

    string[] | number[] 省略可

  • 最大

    number 省略可

  • 分

    number 省略可

  • quant

    number 省略可

OptionGroup

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • メンバー

    string[]

    ドライバが提供する順序のオプション名の配列。

  • title

    文字列

    印刷可能なタイトル(「ジオメトリ オプション」など)を指定します。

OptionSetting

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • name

    文字列

    設定するオプションの名前を示します。

  • type

    オプションのデータ型を示します。リクエストされたデータ型は、基になるオプションの実際のデータ型と一致する必要があります。

  • 値

    string | number | boolean | number[] 省略可

    設定する値を示します。autoSettable が有効になっているオプションの自動設定をリクエストするには、未設定のままにします。value に指定されたデータ型は type と一致する必要があります。

OptionType

Chrome 125 以降 Chrome 148 以降の browser.*

オプションのデータ型。

列挙型

"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() を使用して、メンバー オプションを含むグループのリストを取得します。

OptionUnit

Chrome 125 以降 Chrome 148 以降の browser.*

ScannerOption.unit のデータ型を示します。

列挙型

"UNITLESS"
値は単位のない数値です。たとえば、しきい値などです。

"PIXEL"
値はピクセル数です(スキャン寸法など)。

"BIT"
値はビット数(色深度など)です。

"MM"
値はミリメートル単位で測定されます(例: スキャン寸法)。

"DPI"
値は 1 インチあたりのドット数(解像度など)で測定されます。

"PERCENT"
値はパーセントです(例: 明るさ)。

"MICROSECOND"
値はマイクロ秒単位で測定されます(例: 露光時間)。

ReadScanDataResponse

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • データ

    ArrayBuffer 省略可

    result が SUCCESS の場合、スキャンされた画像データの次のチャンクが含まれます。result が EOF の場合、スキャンされた画像データの最後のチャンクが含まれます。

  • estimatedCompletion

    number 省略可

    result が SUCCESS の場合、これまでに配信されたスキャンデータの合計量の推定値(0 ~ 100 の範囲)。

  • ジョブ

    文字列

    readScanData() に渡されたジョブハンドルを提供します。

  • 件の結果

    データの読み取り結果。値が SUCCESS の場合、data には、読み取り可能な画像データの次のチャンク(長さがゼロの場合もあります)が含まれます。値が EOF の場合、data には画像データの最後のチャンクが含まれます。

ScannerInfo

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • connectionType

    スキャナがパソコンにどのように接続されているかを示します。

  • deviceUuid

    文字列

    同じ実機を指す他の ScannerInfo エントリとの照合に使用されます。

  • imageFormats

    string[]

    返されたスキャンに対してリクエストできる MIME タイプの配列。

  • メーカー

    文字列

    スキャナのメーカー。

  • モデル

    文字列

    スキャナのモデル(利用可能な場合)または一般的な説明。

  • name

    文字列

    UI に表示されるスキャナの人が読める名前。

  • protocolType

    文字列

    スキャナへのアクセスに使用されるプロトコルまたはドライバ(Mopria、WSD、epsonds など)の人が読める形式の説明。これは主に、デバイスが複数のプロトコルをサポートしている場合に、ユーザーがプロトコルを選択できるようにするために役立ちます。

  • scannerId

    文字列

    特定のスキャナの ID。

  • 安全

    ブール値

    true の場合、スキャナ接続のトランスポートは、TLS や USB などのパッシブ リスナーによって傍受されません。

ScannerOption

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • 構成の柔軟性

    オプションを変更できるかどうか、および変更方法を示します。

  • 制約

    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

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • name

    文字列

    設定されたオプションの名前を示します。

  • 件の結果

    オプションの設定結果を示します。

SetOptionsResponse

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • オプション

    オブジェクト(省略可)

    指定されたすべてのオプションを設定しようとした後の新しい構成を含む、オプション名から ScannerOption 値への更新された Key-Value マッピング。これは、OpenScannerResponse の options プロパティと同じ構造です。

    このプロパティは、一部のオプションが正常に設定されなかった場合でも設定されますが、更新された構成の取得に失敗した場合(スキャンの途中でスキャナが切断された場合など)は設定されません。

  • 結果

    結果の配列。渡された OptionSetting ごとに 1 つずつ。

  • scannerHandle

    文字列

    setOptions() に渡されたスキャナ ハンドルを提供します。

StartScanOptions

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • 形式

    文字列

    スキャンされたデータを返す MIME タイプを指定します。

  • maxReadSize

    number 省略可

    ゼロ以外の値を指定すると、1 つの readScanData レスポンスで返されるスキャンされた最大バイト数がその値に制限されます。最小値は 32768(32 KB)です。このプロパティが指定されていない場合、返されるチャンクのサイズは、スキャンされた画像全体と同じ大きさになることがあります。

StartScanResponse

Chrome 125 以降 Chrome 148 以降の browser.*

プロパティ

  • ジョブ

    文字列 省略可

    result が SUCCESS の場合、スキャンデータの読み取りやジョブのキャンセルに使用できるハンドルを提供します。

  • 件の結果

    スキャンの開始結果。この値が SUCCESS の場合、job プロパティが入力されます。

  • scannerHandle

    文字列

    startScan() に渡されたものと同じスキャナ ハンドルを提供します。

メソッド

cancelScan()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.cancelScan(
  job: string,
)
: Promise<CancelScanResponse>

開始されたスキャンをキャンセルし、CancelScanResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。

パラメータ

  • ジョブ

    文字列

    以前に startScan の呼び出しから返されたアクティブなスキャンジョブのハンドル。

戻り値

closeScanner()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.closeScanner(
  scannerHandle: string,
)
: Promise<CloseScannerResponse>

渡されたハンドルでスキャナを閉じ、CloseScannerResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。レスポンスが成功でない場合でも、指定されたハンドルは無効になり、それ以降のオペレーションには使用できません。

パラメータ

  • scannerHandle

    文字列

    以前に openScanner の呼び出しから返された、開いているスキャナのハンドルを指定します。

戻り値

getOptionGroups()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.getOptionGroups(
  scannerHandle: string,
)
: Promise<GetOptionGroupsResponse>

openScanner によって以前に開かれたスキャナから、グループ名とメンバー オプションを取得します。このメソッドは、GetOptionGroupsResponse オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりにコールバックに渡されます。

パラメータ

  • scannerHandle

    文字列

    openScanner の呼び出しから返された、開いているスキャナのハンドル。

戻り値

getScannerList()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.getScannerList(
  filter: DeviceFilter,
)
: Promise<GetScannerListResponse>

利用可能なスキャナのリストを取得し、GetScannerListResponse オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりにコールバックに渡されます。

パラメータ

戻り値

  • 結果とスキャナのリストで解決される Promise を返します。

openScanner()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.openScanner(
  scannerId: string,
)
: Promise<OpenScannerResponse>

排他的アクセス用にスキャナを開き、OpenScannerResponse オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりにコールバックに渡されます。

パラメータ

  • scannerId

    文字列

    開くスキャナの ID。この値は、前回の getScannerList の呼び出しから返された値です。

戻り値

readScanData()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.readScanData(
  job: string,
)
: Promise<ReadScanDataResponse>

アクティブなジョブハンドルから、利用可能な画像データの次のチャンクを読み取り、ReadScanDataResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。

**注:**レスポンス結果が SUCCESS で、長さがゼロの data メンバーが含まれている場合は有効です。これは、スキャナはまだ動作しているものの、追加のデータがまだ準備されていないことを意味します。呼び出し元はしばらく待ってから再試行する必要があります。

スキャンジョブが完了すると、レスポンスに EOF の結果値が返されます。このレスポンスには、ゼロ以外の最終的な data メンバーが含まれている場合があります。

パラメータ

  • ジョブ

    文字列

    以前に startScan から返されたアクティブなジョブハンドル。

戻り値

scan()

browser.documentScan.scan(
  options: ScanOptions,
)
: Promise<ScanResults>

ドキュメント スキャンを実行し、ScanResults オブジェクトで解決される Promise を返します。この関数にコールバックが渡されると、返されたデータが代わりに渡されます。

パラメータ

  • オプション

    スキャン パラメータを含むオブジェクト。

戻り値

  • Promise<ScanResults>

    Chrome 96 以降 Chrome 148 以降の browser.*

    スキャン結果で解決される Promise を返します。

setOptions()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
)
: Promise<SetOptionsResponse>

指定されたスキャナにオプションを設定し、渡された OptionSetting オブジェクトの順序ですべての値を設定しようとした結果を含む SetOptionsResponse オブジェクトで解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。

パラメータ

  • scannerHandle

    文字列

    オプションを設定するスキャナのハンドル。これは、以前に openScanner の呼び出しから返された値である必要があります。

  • オプション

    スキャナに適用する OptionSetting オブジェクトのリスト。

戻り値

startScan()

Chrome 125 以降 Chrome 148 以降の browser.*
browser.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
)
: Promise<StartScanResponse>

指定されたスキャナでスキャンを開始し、StartScanResponse で解決される Promise を返します。コールバックが使用されている場合は、代わりにオブジェクトが渡されます。呼び出しが成功すると、レスポンスには、スキャンデータの読み取りやスキャンのキャンセルを行う後続の呼び出しで使用できるジョブハンドルが含まれます。

パラメータ

  • scannerHandle

    文字列

    開いているスキャナのハンドル。これは、以前に openScanner の呼び出しから返された値である必要があります。

  • オプション

    スキャンに使用するオプションを示す StartScanOptions オブジェクト。StartScanOptions.format プロパティは、スキャナの ScannerInfo で返されるエントリのいずれかと一致する必要があります。

戻り値