chrome.documentScan

説明

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

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

権限

documentScan

可用性

Chrome 44 以降 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 プロパティも含まれています。

Scanner の設定

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

    • scannerHandle プロパティ(保存が必要)

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

  2. (省略可)ユーザーがスキャナ オプションの値を指定する必要がある場合は、ユーザー インターフェースを作成します。前の手順で指定したスキャナ オプションと、スキャナから提供されたオプション グループを取得する必要があります。詳しくは、ユーザー インターフェースを作成するをご覧ください。

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

  4. OptionSetting オブジェクトの配列を setOptions() に渡して、スキャナのオプションを設定します。SetOptionsResponse で解決される Promise を返します。このオブジェクトには、スキャナ構成の手順 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 を返します。これらのほとんどには result プロパティが含まれており、その値は OperationResult のメンバーです。レスポンス オブジェクトの一部のプロパティには、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" ]
    }
  ]
}

Scanner の構成で説明したように、1 つのオプションを変更すると、別のオプションの制約が変わる可能性があります。このため、setOptionsResponsesetOptions() のレスポンス オブジェクト)に別の 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 つのページのコンテンツを取得し、Scanner を閉じます。このプロセスでは、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

保留中

プロパティ

  • ジョブ

    string

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

  • 件の結果

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

CloseScannerResponse

保留中

プロパティ

  • 件の結果

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

  • scannerHandle

    string

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

Configurability

保留中

オプションの変更方法

列挙型

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

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

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

ConnectionType

保留中

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

列挙型

ConstraintType

保留中

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

保留中

プロパティ

  • ローカル

    ブール値(省略可)

    コンピュータに直接接続されているスキャナのみを返します。

  • 安全

    ブール値(省略可)

    返却するのは、USB や TLS などのセキュアなトランスポートを使用するスキャナのみにしてください。

GetOptionGroupsResponse

保留中

プロパティ

  • グループ

    OptionGroup[] 省略可

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

  • 件の結果

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

  • scannerHandle

    string

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

GetScannerListResponse

保留中

プロパティ

  • 件の結果

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

  • スキャナ

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

OpenScannerResponse

保留中

プロパティ

  • オプション

    オブジェクト 省略可

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

  • 件の結果

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

  • scannerHandle

    string(省略可)

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

  • scannerId

    string

    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 に十分なメモリがないため、操作を完了できません。

「接続できません」
デバイスにアクセスできません。

「MISSING」
デバイスの接続が解除されています。

"INTERNAL_ERROR"
呼び出し元のアプリケーション以外の場所でエラーが発生しました。

OptionConstraint

保留中

プロパティ

  • list

    string[]|number[] optional

  • max

    number(省略可)

  • number(省略可)

  • クオンツ

    number(省略可)

OptionGroup

保留中

プロパティ

  • メンバー

    string[]

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

  • title

    string

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

OptionSetting

保留中

プロパティ

  • name

    string

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

  • type

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

  • value

    string|number|boolean|number[] optional

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

OptionType

保留中

オプションのデータタイプ。

列挙型

"UNKNOWN"
オプションのデータタイプが不明です。value プロパティは設定解除されます。

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

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

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

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

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

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

OptionUnit

保留中

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

列挙型

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

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

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

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

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

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

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

ReadScanDataResponse

保留中

プロパティ

  • data

    ArrayBuffer 省略可

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

  • estimatedCompletion

    number(省略可)

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

  • ジョブ

    string

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

  • 件の結果

    データの読み取り結果。その値が SUCCESS の場合、data には、読み取りの準備ができている画像データの次のチャンク(長さがゼロである場合もあります)が含まれます。値が EOF の場合、data には画像データの最後のチャンクが含まれます。

ScannerInfo

保留中

プロパティ

  • connectionType

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

  • deviceUuid

    string

    同じ物理デバイスを指す他の ScannerInfo エントリと照合します。

  • imageFormats

    string[]

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

  • メーカー

    string

    スキャナのメーカー。

  • model

    string

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

  • name

    string

    UI に表示するスキャナの、人が読める形式の名前。

  • protocolType

    string

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

  • scannerId

    string

    特定のスキャナの ID。

  • 安全

    boolean

    true の場合、TLS や USB などのパッシブ リスナーでスキャナ接続のトランスポートをインターセプトできません。

ScannerOption

保留中

プロパティ

  • 構成の柔軟性

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

  • 制約

    OptionConstraint 省略可

    現在のスキャナ オプションで OptionConstraint を定義します。

  • description

    string

    オプションの詳細な説明。

  • isActive

    boolean

    オプションが有効で、設定または取得できることを示します。false の場合、value プロパティは設定されません。

  • isAdvanced

    boolean

    デフォルトでは、UI にこのオプションを表示しないことを示します。

  • isAutoSettable

    boolean

    スキャナ ドライバで自動的に設定できます。

  • isDetectable

    boolean

    このオプションがソフトウェアから検出できることを示します。

  • isEmulated

    boolean

    true の場合、スキャナ ドライバによってエミュレートされます。

  • name

    string

    小文字の ASCII 文字、数字、ダッシュを使用したオプション名。付加記号は使用できません。

  • title

    string

    印刷可能な 1 行のタイトル。

  • type

    value プロパティに含まれるデータ型。このオプションの設定に必要です。

  • 単位

    このオプションの測定単位。

  • value

    string|number|boolean|number[] optional

    オプションの現在の値(該当する場合)。このプロパティのデータ型は、type で指定されたデータ型と一致する必要があります。

ScanOptions

プロパティ

  • maxImages

    number(省略可)

    許可されるスキャン画像の数。デフォルトは 1 です。

  • mimeTypes

    string[] 省略可

    呼び出し元が受け入れる MIME タイプ。

ScanResults

プロパティ

  • dataUrls

    string[]

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

  • mimeType

    string

    dataUrls の MIME タイプ。

SetOptionResult

保留中

プロパティ

  • name

    string

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

  • 件の結果

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

SetOptionsResponse

保留中

プロパティ

  • オプション

    オブジェクト 省略可

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

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

  • 結果

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

  • scannerHandle

    string

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

StartScanOptions

保留中

プロパティ

  • 形式

    string

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

  • maxReadSize

    number(省略可)

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

StartScanResponse

保留中

プロパティ

  • ジョブ

    string(省略可)

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

  • 件の結果

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

  • scannerHandle

    string

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

Methods

cancelScan()

Promise 保留中
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

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

パラメータ

  • ジョブ

    string

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

  • callback

    関数(省略可)

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

    (response: CancelScanResponse)=>void

戻り値

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

closeScanner()

Promise 保留中
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

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

パラメータ

  • scannerHandle

    string

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

  • callback

    関数(省略可)

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

    (response: CloseScannerResponse)=>void

戻り値

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

getOptionGroups()

Promise 保留中
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

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

パラメータ

  • scannerHandle

    string

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

  • callback

    関数(省略可)

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

    (response: GetOptionGroupsResponse)=>void

戻り値

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

getScannerList()

Promise 保留中
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

パラメータ

戻り値

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

openScanner()

Promise 保留中
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

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

パラメータ

  • scannerId

    string

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

  • callback

    関数(省略可)

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

    (response: OpenScannerResponse)=>void

戻り値

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

readScanData()

Promise 保留中
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

**注:**長さがゼロの data メンバーを含むレスポンス結果が SUCCESS になることは有効です。つまり、スキャナは動作していますが、追加のデータがまだ準備されていません。発信者はしばらく待ってから再試行する必要があります。

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

パラメータ

  • ジョブ

    string

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

  • callback

    関数(省略可)

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

    (response: ReadScanDataResponse)=>void

戻り値

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

scan()

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

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

パラメータ

  • オプション

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

  • callback

    関数(省略可)

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

    (result: ScanResults)=>void

戻り値

  • Promise<ScanResults>

    Chrome 96 以降

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

setOptions()

Promise 保留中
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

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

パラメータ

  • scannerHandle

    string

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

  • オプション

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

  • callback

    関数(省略可)

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

    (response: SetOptionsResponse)=>void

戻り値

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

startScan()

Promise 保留中
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

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

パラメータ

  • scannerHandle

    string

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

  • オプション

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

  • callback

    関数(省略可)

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

    (response: StartScanResponse)=>void

戻り値

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