chrome.documentScan

説明

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

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

権限

documentScan

対象

Chrome 44 以降 ChromeOS のみ
後で追加された API メンバーの可用性は、そのメンバーとともに表示されます。

コンセプトと使用方法

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

シンプルなスキャン

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

複雑なスキャン

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

ファインド

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

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

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

スキャナの構成

  1. 保存したスキャナ ID を渡して openScanner() を呼び出します。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.resultSUCCESS に等しい場合にのみ設定されます。

スキャナのオプション

スキャナのオプションはデバイスによって大きく異なります。そのため、documentScan API 内にスキャナ オプションを直接反映することはできません。この問題を回避するため、OpenScannerResponseopenScanner() を使用して取得)と SetOptionsResponsesetOptions() のレスポンス オブジェクト)には、スキャナ固有のオプションを含むオブジェクトである 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 を使用する必要はありませんが、特定のオプションの値をユーザーに選択してもらう場合があります。これにはユーザー インターフェースが必要です。前のセクションの説明に従って、OpenScannerResponseopenScanner() で開く)を使用して、接続されたスキャナのオプションを取得します。

一部のスキャナでは、デバイス固有の方法でオプションがグループ化されます。これらのグループはオプションの動作には影響しませんが、スキャナのプロダクト ドキュメントに記載されている可能性があるため、ユーザーに表示する必要があります。これらのグループを取得するには、getOptionGroups() を呼び出します。これにより、GetOptionGroupsResponse オブジェクトで解決する Promise が返されます。groups プロパティには、スキャナ固有のグループの配列が含まれています。これらのグループの情報を使用して、OpenScannerResponse のオプションを整理して表示します。

{
  scannerHandle: "123456",
  result: SUCCESS,
  groups: [
    {
      title: "Standard",
      members: [ "resolution", "mode", "source" ]
    }
  ]
}

スキャナの構成で説明したように、1 つのオプションを変更すると、別のオプションの制約が変更される可能性があります。そのため、setOptionsResponsesetOptions() のレスポンス オブジェクト)には別の options プロパティが含まれています。これを使用してユーザー インターフェースを更新します。すべてのオプションが設定されるまで、必要に応じてこの手順を繰り返します。

スキャナ オプションを設定する

OptionSetting オブジェクトの配列を setOptions() に渡して、スキャナ オプションを設定します。例については、次の1 枚の Letter サイズのページをスキャンするをご覧ください。

ページを 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 枚の Letter サイズのページをスキャンする

この例では、スキャナを選択してオプションを設定し、スキャナを開く方法を示します。その後、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

Chrome 125 以降

プロパティ

  • ジョブ

    文字列

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

  • 件の結果

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

CloseScannerResponse

Chrome 125 以降

プロパティ

  • 件の結果

    スキャナを閉じた結果。この値が SUCCESS でない場合でも、ハンドルは無効になるため、以降のオペレーションでは使用しないでください。

  • scannerHandle

    文字列

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

Configurability

Chrome 125 以降

オプションを変更する方法。

列挙型

「NOT_CONFIGURABLE」
このオプションは読み取り専用です。

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

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

ConnectionType

Chrome 125 以降

スキャナがパソコンに接続されている方法を示します。

列挙型

「UNSPECIFIED」

「USB」

「NETWORK」

ConstraintType

Chrome 125 以降

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

列挙型

"INT_RANGE"
OptionType.INT 値の範囲に対する制約。OptionConstraintminmaxquant プロパティは long になり、list プロパティは設定解除されます。

"FIXED_RANGE"
OptionType.FIXED 値の範囲に対する制約。OptionConstraintminmaxquant プロパティは 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 以降

プロパティ

  • ローカル

    ブール値(省略可)

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

  • 安全

    ブール値(省略可)

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

GetOptionGroupsResponse

Chrome 125 以降

プロパティ

  • グループ

    OptionGroup[] 省略可

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

  • 件の結果

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

  • scannerHandle

    文字列

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

GetScannerListResponse

Chrome 125 以降

プロパティ

  • 件の結果

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

  • スキャナ

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

OpenScannerResponse

Chrome 125 以降

プロパティ

  • オプション

    オブジェクト(省略可)

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

  • 件の結果

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

  • scannerHandle

    文字列(省略可)

    resultSUCCESS の場合、次の操作に使用できるスキャナのハンドル。

  • scannerId

    文字列

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

OperationResult

Chrome 125 以降

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

列挙型

「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 以降

プロパティ

  • list

    string[] | number[] 省略可

  • 最大

    number(省略可)

  • number(省略可)

  • quant

    number(省略可)

OptionGroup

Chrome 125 以降

プロパティ

  • メンバー

    string[]

    ドライバが指定した順序のオプション名の配列。

  • title

    文字列

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

OptionSetting

Chrome 125 以降

プロパティ

  • name

    文字列

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

  • type

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

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

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

OptionType

Chrome 125 以降

オプションのデータ型。

列挙型

「UNKNOWN」
オプションのデータ型が不明です。value プロパティは設定されなくなります。

"BOOL"
value プロパティは truefalse のいずれかになります。

「INT」
符号付き 32 ビット整数。value プロパティは、オプションが複数の値を取るかどうかに応じて、long または long[] になります。

「固定」
-32768 ~ 32767.9999 の範囲の浮動小数点数で、解像度は 1/65535 です。value プロパティは、オプションが複数の値を取るかどうかに応じて、double または double[] になります。正確に表現できない double 値は、使用可能な範囲と精度に丸められます。

"STRING"
NUL('\0')以外の任意のバイト シーケンス。value プロパティは DOMString になります。

「BUTTON」
このタイプのオプションには値がありません。代わりに、このタイプのオプションを設定すると、スキャナ ドライバでオプション固有の副作用が発生します。たとえば、ボタン型のオプションは、スキャナ ドライバでデフォルト値を選択したり、自動ドキュメント フィーダに次の紙に進むように指示したりするために使用できます。

「GROUP」
グループ化オプション。値なし。これは互換性のために含まれていますが、通常は ScannerOption 値で返されません。getOptionGroups() を使用して、メンバー オプションを含むグループのリストを取得します。

OptionUnit

Chrome 125 以降

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

列挙型

「UNITLESS」
値は単位のない数値です。たとえば、しきい値に設定できます。

「PIXEL」
値はピクセル数です(スキャン サイズなど)。

「BIT」
値はビット数です(例: 色深度)。

「MM」
値はミリメートル単位で測定されます(スキャンの寸法など)。

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

「PERCENT」
値はパーセンテージです(明るさなど)。

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

ReadScanDataResponse

Chrome 125 以降

プロパティ

  • データ

    ArrayBuffer(省略可)

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

  • estimatedCompletion

    number(省略可)

    resultSUCCESS の場合、これまでに配信されたスキャンデータの合計の割合(0 ~ 100 の範囲)。

  • ジョブ

    文字列

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

  • 件の結果

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

ScannerInfo

Chrome 125 以降

プロパティ

  • connectionType

    スキャナがパソコンに接続されている方法を示します。

  • deviceUuid

    文字列

    同じ物理デバイスを指す他の ScannerInfo エントリとの照合に使用されます。

  • imageFormats

    string[]

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

  • メーカー

    文字列

    スキャナのメーカー。

  • モデル

    文字列

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

  • name

    文字列

    UI に表示されるスキャナの表示名(人が読める形式)。

  • protocolType

    文字列

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

  • scannerId

    文字列

    特定のスキャナの ID。

  • 安全

    ブール値

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

ScannerOption

Chrome 125 以降

プロパティ

  • 構成の柔軟性

    オプションを変更できるかどうか、変更できる場合はどのように変更できるかを示します。

  • 制約

    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[]

    データ画像の URL の配列。イメージタグに「src」値として渡すことができる形式です。

  • mimeType

    文字列

    dataUrls の MIME タイプ。

SetOptionResult

Chrome 125 以降

プロパティ

  • name

    文字列

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

  • 件の結果

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

SetOptionsResponse

Chrome 125 以降

プロパティ

  • オプション

    オブジェクト(省略可)

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

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

  • 結果

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

  • scannerHandle

    文字列

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

StartScanOptions

Chrome 125 以降

プロパティ

  • 形式

    文字列

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

  • maxReadSize

    number(省略可)

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

StartScanResponse

Chrome 125 以降

プロパティ

  • ジョブ

    文字列(省略可)

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

  • 件の結果

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

  • scannerHandle

    文字列

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

メソッド

cancelScan()

Promise Chrome 125 以降
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

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

パラメータ

  • ジョブ

    文字列

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (response: CancelScanResponse) => void

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

closeScanner()

Promise Chrome 125 以降
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

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

パラメータ

  • scannerHandle

    文字列

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (response: CloseScannerResponse) => void

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getOptionGroups()

Promise Chrome 125 以降
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

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

パラメータ

  • scannerHandle

    文字列

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (response: GetOptionGroupsResponse) => void

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getScannerList()

Promise Chrome 125 以降
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

パラメータ

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

openScanner()

Promise Chrome 125 以降
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

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

パラメータ

  • scannerId

    文字列

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (response: OpenScannerResponse) => void

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

readScanData()

Promise Chrome 125 以降
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

**注:**レスポンス結果が SUCCESS で、data メンバーの長さがゼロの場合、これは有効です。スキャナは動作していますが、まだ追加のデータが準備されていません。呼び出し元は、しばらく待ってからもう一度お試しいただく必要があります。

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

パラメータ

  • ジョブ

    文字列

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (response: ReadScanDataResponse) => void

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

scan()

Promise
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

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

パラメータ

  • オプション

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (result: ScanResults) => void

戻り値

  • Promise<ScanResults>

    Chrome 96 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

setOptions()

Promise Chrome 125 以降
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

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

パラメータ

  • scannerHandle

    文字列

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

  • オプション

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (response: SetOptionsResponse) => void

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

startScan()

Promise Chrome 125 以降
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

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

パラメータ

  • scannerHandle

    文字列

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

  • オプション

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

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (response: StartScanResponse) => void

戻り値

  • Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。