chrome.documentScan

說明

使用 chrome.documentScan API,從附加的文件掃描器中探索及擷取圖片。

Document Scan API 的設計用意在允許應用程式和擴充功能 文件掃描器上的紙本文件內容。

權限

documentScan

可用性

Chrome 44 以上版本 僅適用於 ChromeOS
目前新增的 API 成員將一併顯示這項資訊。

概念和用法

這個 API 支援兩種掃描文件的方式。如果用途符合 且不需設定控制,請使用 scan() 方法。更複雜的用途需要結合多種方法 僅適用於 Chrome 124 以上版本。

簡易掃描

以簡易用途來說,這是指能與任何掃描器搭配使用,且無法 需要控制設定,請呼叫 scan()。這個方法需要 ScanOptions 物件並傳回使用 ScanResults 解析的 Promise 物件。這個選項的功能僅限於掃描次數 呼叫端接受的 MIME 類型。掃描會以網址形式傳回 顯示在使用者介面的 <img> 標記中

複雜掃描

複雜掃描作業會在三個階段完成 (如本節所述)。 這個大綱並未描述每個方法引數或傳回的每個屬性 。只能提供您撰寫掃描器的一般指南。 再也不是件繁重乏味的工作

探索

  1. 呼叫 getScannerList()。可用的掃描器是 會在 Promise 中傳回, GetScannerListResponse

    • 回應物件包含 ScannerInfo 的陣列 如需儲存大量結構化物件 建議使用 Cloud Bigtable
    • 如果掃描器,則陣列可能包含一個掃描器的多個項目 支援多種通訊協定或連線方法
  2. 從傳回的陣列中選取掃描器,然後儲存該掃描器的值 scannerId 屬性。

    使用個別 ScannerInfo 物件的屬性 來區分同一掃描器的多個物件。物件 相同掃描器的 deviceUuid 屬性值也會相同。 ScannerInfo 也包含 imageFormats 屬性,其中包含 支援的圖片類型。

掃描器設定

  1. 呼叫 openScanner(),傳入已儲存的掃描器 ID。 會傳回以 OpenScannerResponse 解析的 Promise。 回應物件包含:

    • 您需要儲存的 scannerHandle 屬性。

    • 選項屬性包含掃描器專屬的屬性, 這些需要設定的位置。詳情請參閱「擷取掃描器選項」。

  2. (選用) 如果您需要使用者提供掃描器選項的值, 建構使用者介面您需要使用 上方,您必須擷取 或是掃描器詳情請參閱「建立使用者介面」。

  3. 使用以下方式建構 OptionSetting 物件的陣列: 程式輔助或使用者提供的價值詳情請參閱「設定掃描器選項」 可能不準確或不適當

  4. OptionSetting 物件陣列傳遞至 setOptions() 用來設定掃描器的選項。這項服務 會傳回以 SetOptionsResponse。這個物件包含 新版掃描器選項在掃描器的步驟 1 中擷取 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定

    從變更一個值區後 選項會變更其他選項的限制,您可能需要重複執行 這些步驟會重複執行

掃描中

  1. 建立並傳遞 StartScanOptions 物件 傳送給 startScan()。會傳回可解析的 Promise 使用 StartScanResponse。它的 job 屬性是 用來讀取掃描資料或取消掃描的控制代碼。

  2. 將工作控制代碼傳遞至 readScanData()。其會傳回 承諾使用 ReadScanDataResponse 物件。如果已讀取資料 成功,其 result 屬性等於 SUCCESS 和其 data 屬性 包含 ArrayBuffer。 含有部分掃描檔請注意,estimatedCompletion 包含預估 佔目前已提交資料總量的百分比

  3. 重複執行上一個步驟,直到 result 屬性等於 EOF 或錯誤為止。

掃描結束時,呼叫 closeScanner() 具有掃描器控點儲存的步驟 3.會傳回以 CloseScannerResponse。撥號中 建立工作後,任何時候的 cancelScan() 都會啟動 。

回應物件

所有方法都會回傳 Promise,該 Promise 會使用某種回應物件來解析。 這些函式大多包含 result 屬性,其值是 OperationResult。回應物件的部分屬性 除非 result 的值具有特定值,否則不會包含值。這些 關係會在每個回應物件的參考資料中說明。

例如,OpenScannerResponse.scannerHandle 只會在下列情況中傳回值: OpenScannerResponse.result 等於 SUCCESS

掃描器選項

掃描工具的選項會因裝置而有極大差異。因此,您無法 直接在 DocumentScan API 內反映掃描器選項。交通資訊 此時,OpenScannerResponse (使用 openScanner()) 和 SetOptionsResponse ( setOptions() 包含的 options 屬性,該屬性是 物件,內含掃描程式專用選項。每個選項都是鍵/值對應 其中鍵是裝置專屬的選項,值則是 ScannerOption

結構通常如下所示:

{
  "key1": { scannerOptionInstance }
  "key2": { scannerOptionInstance }
}

舉例來說,假設掃描程式會傳回名為「source」的選項和 「解析度」。傳回的 options 物件結構將如下所示 如以下範例所示為求簡單起見,僅部分 ScannerOption 就會顯示回應

{
  "source": {
    "name": "source",
    "type": OptionType.STRING,
...
},
  "resolution": {
    "name": "resolution",
    "type": OptionType.INT,
...
  },
...
}

建構使用者介面

雖然這個 API 不一定要使用,但您可能會希望使用者 特定選項這需要使用者介面。使用 OpenScannerResponse (開啟者: openScanner()) 擷取附加元件的選項 如上一節所述。

部分掃描器會以裝置專屬方式分組選項。不會影響選項 但由於掃描器產品可能會提及這些組別 說明文件,請務必向使用者顯示這類群組。您可以透過 呼叫 getOptionGroups()。這會傳回 承諾使用 GetOptionGroupsResponse 物件。目前時間:groups 屬性包含掃描器專屬的群組陣列。使用 整理出 OpenScannerResponse 可供顯示。

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

如掃描器設定底下所述,變更其中一個選項可能會更改限制 改成其他方式因此 setOptionsResponse ( setOptions()) 包含另一個 options 屬性。使用 更新使用者介面然後視需要重複上述步驟,直到所有選項都完成後 設定。

設定掃描器選項

藉由傳遞 OptionSetting 物件, setOptions()。如需範例,請參閱「掃描單一字母大小頁面」一節。

範例

以 blob 形式擷取頁面

本例顯示一種從掃描器以 blob 形式擷取頁面的方法, 示範如何使用 startScan()readScanData()OperationResult

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" });
}

掃描一個字母大小頁面

本例說明如何選取掃描器、設定及開啟掃描器。這項服務 然後擷取單一頁面的內容,並關閉掃描器。這項程序 示範如何使用 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);
}

顯示設定

如上文所述,要向使用者顯示掃描器的設定選項 呼叫 getOptionGroups(),同時呼叫 呼叫 openScanner()。如此一來,位於 製造商定義的群組以下範例說明如何進行相關操作。

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.SUCCESSOperationResult.CANCELLED,表示掃描已取消,掃描器已可開始新的掃描作業。如果結果是 OperationResult.DEVICE_BUSY,表示掃描器仍在處理要求的取消作業。呼叫端應等待一小段時間,然後再次提出要求。其他結果值代表暫時性錯誤,不應重試。

CloseScannerResponse

Chrome 125 以上版本

屬性

  • 關閉掃描器的結果。即使這個值並非 SUCCESS,帳號代碼也會失效,不應用於進一步的作業。

  • scannerHandle

    字串

    傳遞至 closeScanner 的掃描器控點相同。

Configurability

Chrome 125 以上版本

選項的變更方式。

列舉

"NOT_CONFIGURABLE"
這個選項處於唯讀狀態。

"SOFTWARE_CONFIGURABLE"
可在軟體中設定這個選項。

「HARDWARE_CONFIGURABLE」
使用者可在掃描器上切換或按下按鈕來設定選項。

ConnectionType

Chrome 125 以上版本

指出掃描器與電腦連接的方式。

列舉

「未指定」

「USB」

「網路」

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 以上版本

屬性

  • 選項

    物件 optional

    如果 resultSUCCESS,則提供鍵/值對應,其中鍵是裝置專屬的選項,而該值是 ScannerOption 的例項。

  • 開啟掃描器的結果。如果這個值是 SUCCESS,系統會填入 scannerHandleoptions 屬性。

  • scannerHandle

    string optional

    如果 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 的記憶體不足,無法完成執行作業。

「無法配對」
無法連線至裝置。

「MISSING」
裝置已中斷連線。

"INTERNAL_ERROR"
呼叫應用程式以外的地方發生錯誤。

OptionConstraint

Chrome 125 以上版本

屬性

  • list

    string[] |number[] 選填

  • 最高

    編號 選填

  • 分鐘

    編號 選填

  • 量化

    編號 選填

OptionGroup

Chrome 125 以上版本

屬性

  • 成員

    string[]

    由駕駛人提供順序的選項名稱陣列。

  • title

    字串

    提供可列印的標題,例如「幾何圖形選項」。

OptionSetting

Chrome 125 以上版本

屬性

  • 名稱

    字串

    指出要設定的選項名稱。

  • 類型

    指出選項的資料類型。要求的資料類型必須與基礎選項的實際資料類型相符。

  • string |數字 |boolean |number[] 選填

    指出要設定的值。啟用 autoSettable 後,如果這些選項已啟用自動設定,請勿設定。為 value 提供的資料類型必須與 type 相符。

OptionType

Chrome 125 以上版本

選項的資料類型。

列舉

"UNKNOWN"
選項的資料類型不明。系統會取消設定 value 屬性。

"BOOL"
value 屬性會是 truefalse 其中之一。

"INT"
帶正負號 32 位元整數。value 屬性可能會很長或長 [],視選項是否包含多個值而定。

「已修正」
介於 -32768-32767.9999 之間的雙倍,解析度為 1/65535。value 屬性會是雙倍或雙倍 [],取決於這個選項是否包含多個值。無法準確表示的雙精度值會四捨五入為可用範圍和精確度。

"STRING"
NUL ('\0') 以外的任何位元組序列。value 屬性是 DOMString。

「BUTTON」
這種類型的選項沒有值。而設定這個類型的選項,會在掃描器驅動程式中產生特定選項的副作用。舉例來說,掃描器驅動程式可使用按鈕型選項來選取預設值,或是指示自動文件饋送器前往下一張紙。

"GROUP"
分組選項,沒有值。這雖然是為了相容性,但通常不會傳回在 ScannerOption 值中。使用 getOptionGroups() 擷取群組清單和成員選項。

OptionUnit

Chrome 125 以上版本

指出 ScannerOption.unit 的資料類型。

列舉

"UNITLESS"
這個值為無單位數字。例如,可以是門檻。

"PIXEL"
值是像素數,例如掃描尺寸。

"BIT"
這個值是位元數,例如色彩深度。

"MM"
這個值以公釐為單位,例如掃描尺寸。

「DPI」
這個值的測量單位為每英寸像素數,例如解析度。

"PERCENT"
這個值是百分比,例如亮度。

"MICROsecond"
這個值以微秒為單位,例如曝光時間。

ReadScanDataResponse

Chrome 125 以上版本

屬性

  • 資料

    ArrayBuffer 選用

    如果 resultSUCCESS,則包含「下一個」區塊的掃描圖片資料區塊。如果 resultEOF,則包含掃描圖片資料的「最後一個」區塊。

  • estimatedCompletion

    編號 選填

    如果 resultSUCCESS,代表目前為止已提交的總掃描資料量,範圍介於 0 至 100 之間。

  • 工作

    字串

    提供傳遞至 readScanData() 的工作控制代碼。

  • 讀取資料的結果。如果值為 SUCCESS,則 data 會包含「下一個」 (長度為零) 的圖片資料區塊,可供讀取。如果值為 EOF,則 data 包含圖片資料的「最後一個」區塊。

ScannerInfo

Chrome 125 以上版本

屬性

  • connectionType

    指出掃描器與電腦連接的方式。

  • deviceUuid

    字串

    用於比對指向同一實體裝置的其他 ScannerInfo 項目。

  • imageFormats

    string[]

    可對傳回的掃描作業要求的 MIME 類型陣列。

  • 製造商

    字串

    掃描器製造商。

  • 模型

    字串

    掃描器模型 (如有),或是一般說明。

  • 名稱

    字串

    使用者可理解的名稱,供掃描器顯示在使用者介面中。

  • protocolType

    字串

    使用者可理解用來存取掃描器的通訊協定或驅動程式,例如 Mopria、WSD 或 Epsonds。如果裝置支援多種通訊協定,當使用者選擇通訊協定時,這會是很實用的方法。

  • scannerId

    字串

    特定掃描器的 ID。

  • 安全

    布林值

    如果設為 true,就無法讓被動事件監聽器 (例如 TLS 或 USB) 攔截掃描器連線的傳輸行為。

ScannerOption

Chrome 125 以上版本

屬性

  • 設定

    指出是否可變更選項以及變更方式。

  • 限制

    針對目前的掃描器選項定義 OptionConstraint

  • 說明

    字串

    較長的選項說明。

  • isActive

    布林值

    表示選項已啟用,可設定或擷取。如果為 false,則不會設定 value 屬性。

  • isAdvanced

    布林值

    表示 UI 預設不應顯示這個選項。

  • isAutoSettable

    布林值

    由掃描器驅動程式自動設定。

  • isDetectable

    布林值

    表示可以在軟體中偵測到這個選項。

  • isEmulated

    布林值

    如果為 true,則會由掃描器驅動程式模擬。

  • 名稱

    字串

    選項名稱可以使用小寫 ASCII 英文字母、數字和破折號。禁止使用變音符號。

  • title

    字串

    可列印的單行標題。

  • 類型

    value 屬性包含的資料類型,才能設定這個選項。

  • 單位

    此選項的測量單位。

  • string |數字 |boolean |number[] 選填

    目前可用的選項值 (如適用)。請注意,此屬性的資料類型必須與 type 中指定的資料類型相符。

ScanOptions

屬性

  • maxImages

    編號 選填

    允許的掃描圖片數量。預設值為 1。

  • mimeTypes

    string[] 選填

    呼叫端接受的 MIME 類型。

ScanResults

屬性

  • dataUrls

    string[]

    資料圖片網址陣列,可透過「src」傳送值加到圖片廣告代碼中。

  • mimeType

    字串

    dataUrls 的 MIME 類型。

SetOptionResult

Chrome 125 以上版本

屬性

  • 名稱

    字串

    表示已設定的選項名稱。

  • 表示設定選項的結果。

SetOptionsResponse

Chrome 125 以上版本

屬性

  • 選項

    物件 optional

    嘗試設定所有提供的選項後,將鍵/值對應的從選項名稱更新為包含新設定的 ScannerOption 值。其結構與 OpenScannerResponse 中的 options 屬性相同。

    即使部分選項沒有成功設定,系統仍會設定這個屬性;但如果擷取更新的設定失敗,系統就不會設定這個屬性 (例如掃描期間中斷掃描器)。

  • 結果

    結果陣列,每個傳入的 OptionSetting 各有一個結果。

  • scannerHandle

    字串

    提供傳遞至 setOptions() 的掃描器控點。

StartScanOptions

Chrome 125 以上版本

屬性

  • format

    字串

    指定要傳回掃描資料的 MIME 類型。

  • maxReadSize

    編號 選填

    如果指定非零值,則會限制單一 readScanData 回應中傳回的掃描位元組數上限。允許的最小值為 32768 (32 KB)。如果未指定這個屬性,傳回的區塊大小可能會與整個掃描圖片一樣大。

StartScanResponse

Chrome 125 以上版本

屬性

  • 工作

    string optional

    如果 resultSUCCESS,則會提供可用來讀取掃描資料或取消工作的控制代碼。

  • 啟動掃描作業的結果。如果值為 SUCCESS,系統會填入 job 屬性。

  • scannerHandle

    字串

    提供已傳遞至 startScan() 的相同掃描器控制代碼。

方法

cancelScan()

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

取消已開始的掃描作業,並傳回使用 CancelScanResponse 物件解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。

參數

傳回

  • Promise&lt;CancelScanResponse&gt;

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

closeScanner()

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

使用傳入的控點關閉掃描器,並傳回透過 CloseScannerResponse 物件解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。即使回應未成功,提供的帳號代碼也會失效,不應用於進一步的作業。

參數

傳回

  • Promise&lt;CloseScannerResponse&gt;

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

getOptionGroups()

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

openScanner 先前開啟的掃描器取得群組名稱和成員選項。這個方法會傳回使用 GetOptionGroupsResponse 物件解析的 Promise。如果回呼傳遞至此函式,則會改為傳遞傳回的資料。

參數

傳回

  • Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

getScannerList()

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

取得可用掃描器的清單,並傳回使用 GetScannerListResponse 物件解析的 Promise。如果回呼傳遞至此函式,則會改為傳遞傳回的資料。

參數

傳回

  • Promise&lt;GetScannerListResponse&gt;

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

openScanner()

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

開啟掃描器以取得專屬存取權,並傳回使用 OpenScannerResponse 物件解析的 Promise。如果回呼傳遞至此函式,則會改為傳遞傳回的資料。

參數

傳回

  • Promise&lt;OpenScannerResponse&gt;

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

readScanData()

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

這個外掛程式能讀取執行中工作處理常式的下一個可用圖片區塊,並傳回使用 ReadScanDataResponse 物件解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。

**注意:**如果回應結果包含長度為零的 data 成員,SUCCESS 就會視為有效。這代表掃描器仍在執行,但尚未備妥其他資料。呼叫端應等待一小段時間,然後再試一次。

掃描工作完成後,回應的結果值會是 EOF。這個回覆可能包含最終非零的 data 成員。

參數

傳回

  • Promise&lt;ReadScanDataResponse&gt;

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

scan()

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

執行文件掃描並傳回使用 ScanResults 物件解析的 Promise。如果回呼傳遞到此函式,會傳回的資料會改傳遞至這個函式。

參數

傳回

  • Promise&lt;ScanResults&gt;

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

setOptions()

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

設定指定掃描器上的選項並傳回 Promise,該 Promise 使用 SetOptionsResponse 物件解析,該物件包含按照傳入的 OptionSetting 物件順序設定每個值的結果。如果使用回呼,則會將物件傳遞至回呼。

參數

  • scannerHandle

    字串

    掃描器用來設定選項的掃描器。這個值應為先前呼叫 openScanner 時傳回的值。

  • 選項

    要套用至掃描器的 OptionSetting 物件清單。

  • 回呼

    函式 選用

    callback 參數如下所示:

    (response: SetOptionsResponse) => void

傳回

  • Promise&lt;SetOptionsResponse&gt;

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

startScan()

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

在指定的掃描器上啟動掃描作業,並傳回使用 StartScanResponse 解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。如果呼叫成功,回應會包含工作控制代碼,可用於後續呼叫來讀取掃描資料或取消掃描。

參數

  • scannerHandle

    字串

    開啟掃描器的控點。這個值應為先前呼叫 openScanner 時傳回的值。

  • StartScanOptions 物件,指出掃描時要使用的選項。StartScanOptions.format 屬性必須與掃描器 ScannerInfo 傳回的其中一個項目相符。

  • 回呼

    函式 選用

    callback 參數如下所示:

    (response: StartScanResponse) => void

傳回

  • Promise&lt;StartScanResponse&gt;

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。