說明
使用 chrome.documentScan
API,從附加的文件掃描器中探索及擷取圖片。
Document Scan API 的設計用意在允許應用程式和擴充功能 文件掃描器上的紙本文件內容。
權限
documentScan
可用性
概念和用法
這個 API 支援兩種掃描文件的方式。如果用途符合
且不需設定控制,請使用
scan()
方法。更複雜的用途需要結合多種方法
僅適用於 Chrome 124 以上版本。
簡易掃描
以簡易用途來說,這是指能與任何掃描器搭配使用,且無法
需要控制設定,請呼叫 scan()
。這個方法需要
ScanOptions
物件並傳回使用 ScanResults
解析的 Promise
物件。這個選項的功能僅限於掃描次數
呼叫端接受的 MIME 類型。掃描會以網址形式傳回
顯示在使用者介面的 <img>
標記中
複雜掃描
複雜掃描作業會在三個階段完成 (如本節所述)。 這個大綱並未描述每個方法引數或傳回的每個屬性 。只能提供您撰寫掃描器的一般指南。 再也不是件繁重乏味的工作
探索
呼叫
getScannerList()
。可用的掃描器是 會在 Promise 中傳回,GetScannerListResponse
。- 回應物件包含
ScannerInfo
的陣列 如需儲存大量結構化物件 建議使用 Cloud Bigtable - 如果掃描器,則陣列可能包含一個掃描器的多個項目 支援多種通訊協定或連線方法
- 回應物件包含
從傳回的陣列中選取掃描器,然後儲存該掃描器的值
scannerId
屬性。使用個別
ScannerInfo
物件的屬性 來區分同一掃描器的多個物件。物件 相同掃描器的deviceUuid
屬性值也會相同。ScannerInfo
也包含imageFormats
屬性,其中包含 支援的圖片類型。
掃描器設定
呼叫
openScanner()
,傳入已儲存的掃描器 ID。 會傳回以OpenScannerResponse
解析的 Promise。 回應物件包含:您需要儲存的
scannerHandle
屬性。選項屬性包含掃描器專屬的屬性, 這些需要設定的位置。詳情請參閱「擷取掃描器選項」。
(選用) 如果您需要使用者提供掃描器選項的值, 建構使用者介面您需要使用 上方,您必須擷取 或是掃描器詳情請參閱「建立使用者介面」。
使用以下方式建構
OptionSetting
物件的陣列: 程式輔助或使用者提供的價值詳情請參閱「設定掃描器選項」 可能不準確或不適當將
OptionSetting
物件陣列傳遞至setOptions()
用來設定掃描器的選項。這項服務 會傳回以SetOptionsResponse
。這個物件包含 新版掃描器選項在掃描器的步驟 1 中擷取 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定從變更一個值區後 選項會變更其他選項的限制,您可能需要重複執行 這些步驟會重複執行
掃描中
建立並傳遞
StartScanOptions
物件 傳送給startScan()
。會傳回可解析的 Promise 使用StartScanResponse
。它的job
屬性是 用來讀取掃描資料或取消掃描的控制代碼。將工作控制代碼傳遞至
readScanData()
。其會傳回 承諾使用ReadScanDataResponse
物件。如果已讀取資料 成功,其result
屬性等於SUCCESS
和其data
屬性 包含ArrayBuffer
。 含有部分掃描檔請注意,estimatedCompletion
包含預估 佔目前已提交資料總量的百分比重複執行上一個步驟,直到
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
屬性
-
工作
字串
提供傳遞至
cancelScan()
的相同工作控制代碼。 -
後端的取消掃描結果。如果結果是
OperationResult.SUCCESS
或OperationResult.CANCELLED
,表示掃描已取消,掃描器已可開始新的掃描作業。如果結果是OperationResult.DEVICE_BUSY
,表示掃描器仍在處理要求的取消作業。呼叫端應等待一小段時間,然後再次提出要求。其他結果值代表暫時性錯誤,不應重試。
CloseScannerResponse
屬性
-
關閉掃描器的結果。即使這個值並非
SUCCESS
,帳號代碼也會失效,不應用於進一步的作業。 -
scannerHandle
字串
傳遞至
closeScanner
的掃描器控點相同。
Configurability
選項的變更方式。
列舉
"NOT_CONFIGURABLE"
這個選項處於唯讀狀態。
"SOFTWARE_CONFIGURABLE"
可在軟體中設定這個選項。
「HARDWARE_CONFIGURABLE」
使用者可在掃描器上切換或按下按鈕來設定選項。
ConnectionType
指出掃描器與電腦連接的方式。
列舉
「未指定」
「USB」
「網路」
列舉
"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
屬性
-
選項
物件 optional
如果
result
為SUCCESS
,則提供鍵/值對應,其中鍵是裝置專屬的選項,而該值是ScannerOption
的例項。 -
開啟掃描器的結果。如果這個值是
SUCCESS
,系統會填入scannerHandle
和options
屬性。 -
scannerHandle
string optional
如果
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 的記憶體不足,無法完成執行作業。
「無法配對」
無法連線至裝置。
「MISSING」
裝置已中斷連線。
"INTERNAL_ERROR"
呼叫應用程式以外的地方發生錯誤。
OptionConstraint
屬性
-
list
string[] |number[] 選填
-
最高
編號 選填
-
分鐘
編號 選填
-
量化
編號 選填
OptionGroup
屬性
-
成員
string[]
由駕駛人提供順序的選項名稱陣列。
-
title
字串
提供可列印的標題,例如「幾何圖形選項」。
OptionSetting
屬性
-
名稱
字串
指出要設定的選項名稱。
-
類型
指出選項的資料類型。要求的資料類型必須與基礎選項的實際資料類型相符。
-
值
string |數字 |boolean |number[] 選填
指出要設定的值。啟用
autoSettable
後,如果這些選項已啟用自動設定,請勿設定。為value
提供的資料類型必須與type
相符。
OptionType
選項的資料類型。
列舉
"UNKNOWN"
選項的資料類型不明。系統會取消設定 value
屬性。
"BOOL"
value
屬性會是 true
false 其中之一。
"INT"
帶正負號 32 位元整數。value
屬性可能會很長或長 [],視選項是否包含多個值而定。
「已修正」
介於 -32768-32767.9999 之間的雙倍,解析度為 1/65535。value
屬性會是雙倍或雙倍 [],取決於這個選項是否包含多個值。無法準確表示的雙精度值會四捨五入為可用範圍和精確度。
"STRING"
NUL ('\0') 以外的任何位元組序列。value
屬性是 DOMString。
「BUTTON」
這種類型的選項沒有值。而設定這個類型的選項,會在掃描器驅動程式中產生特定選項的副作用。舉例來說,掃描器驅動程式可使用按鈕型選項來選取預設值,或是指示自動文件饋送器前往下一張紙。
"GROUP"
分組選項,沒有值。這雖然是為了相容性,但通常不會傳回在 ScannerOption
值中。使用 getOptionGroups()
擷取群組清單和成員選項。
列舉
"UNITLESS"
這個值為無單位數字。例如,可以是門檻。
"PIXEL"
值是像素數,例如掃描尺寸。
"BIT"
這個值是位元數,例如色彩深度。
"MM"
這個值以公釐為單位,例如掃描尺寸。
「DPI」
這個值的測量單位為每英寸像素數,例如解析度。
"PERCENT"
這個值是百分比,例如亮度。
"MICROsecond"
這個值以微秒為單位,例如曝光時間。
ReadScanDataResponse
屬性
-
資料
ArrayBuffer 選用
如果
result
為SUCCESS
,則包含「下一個」區塊的掃描圖片資料區塊。如果result
為EOF
,則包含掃描圖片資料的「最後一個」區塊。 -
estimatedCompletion
編號 選填
如果
result
為SUCCESS
,代表目前為止已提交的總掃描資料量,範圍介於 0 至 100 之間。 -
工作
字串
提供傳遞至
readScanData()
的工作控制代碼。 -
讀取資料的結果。如果值為
SUCCESS
,則data
會包含「下一個」 (長度為零) 的圖片資料區塊,可供讀取。如果值為EOF
,則data
包含圖片資料的「最後一個」區塊。
ScannerInfo
屬性
-
connectionType
指出掃描器與電腦連接的方式。
-
deviceUuid
字串
用於比對指向同一實體裝置的其他
ScannerInfo
項目。 -
imageFormats
string[]
可對傳回的掃描作業要求的 MIME 類型陣列。
-
製造商
字串
掃描器製造商。
-
模型
字串
掃描器模型 (如有),或是一般說明。
-
名稱
字串
使用者可理解的名稱,供掃描器顯示在使用者介面中。
-
protocolType
字串
使用者可理解用來存取掃描器的通訊協定或驅動程式,例如 Mopria、WSD 或 Epsonds。如果裝置支援多種通訊協定,當使用者選擇通訊協定時,這會是很實用的方法。
-
scannerId
字串
特定掃描器的 ID。
-
安全
布林值
如果設為 true,就無法讓被動事件監聽器 (例如 TLS 或 USB) 攔截掃描器連線的傳輸行為。
ScannerOption
屬性
-
設定
指出是否可變更選項以及變更方式。
-
限制
針對目前的掃描器選項定義
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
屬性
-
名稱
字串
表示已設定的選項名稱。
-
表示設定選項的結果。
SetOptionsResponse
屬性
-
選項
物件 optional
嘗試設定所有提供的選項後,將鍵/值對應的從選項名稱更新為包含新設定的
ScannerOption
值。其結構與OpenScannerResponse
中的options
屬性相同。即使部分選項沒有成功設定,系統仍會設定這個屬性;但如果擷取更新的設定失敗,系統就不會設定這個屬性 (例如掃描期間中斷掃描器)。
-
結果
結果陣列,每個傳入的
OptionSetting
各有一個結果。 -
scannerHandle
字串
提供傳遞至
setOptions()
的掃描器控點。
StartScanOptions
屬性
-
format
字串
指定要傳回掃描資料的 MIME 類型。
-
maxReadSize
編號 選填
如果指定非零值,則會限制單一
readScanData
回應中傳回的掃描位元組數上限。允許的最小值為 32768 (32 KB)。如果未指定這個屬性,傳回的區塊大小可能會與整個掃描圖片一樣大。
StartScanResponse
屬性
-
工作
string optional
如果
result
為SUCCESS
,則會提供可用來讀取掃描資料或取消工作的控制代碼。 -
啟動掃描作業的結果。如果值為
SUCCESS
,系統會填入job
屬性。 -
scannerHandle
字串
提供已傳遞至
startScan()
的相同掃描器控制代碼。
方法
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
取消已開始的掃描作業,並傳回使用 CancelScanResponse
物件解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。
參數
-
工作
字串
先前呼叫
startScan
後傳回的執行中掃描工作處理常式。 -
回呼
函式 選用
callback
參數如下所示:(response: CancelScanResponse) => void
傳回
-
Promise<CancelScanResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
使用傳入的控點關閉掃描器,並傳回透過 CloseScannerResponse
物件解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。即使回應未成功,提供的帳號代碼也會失效,不應用於進一步的作業。
參數
-
scannerHandle
字串
指定先前透過呼叫
openScanner
傳回的開放式掃描器的控制代碼。 -
回呼
函式 選用
callback
參數如下所示:(response: CloseScannerResponse) => void
傳回
-
Promise<CloseScannerResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
從 openScanner
先前開啟的掃描器取得群組名稱和成員選項。這個方法會傳回使用 GetOptionGroupsResponse
物件解析的 Promise。如果回呼傳遞至此函式,則會改為傳遞傳回的資料。
參數
-
scannerHandle
字串
呼叫
openScanner
後傳回的開放式掃描器控點。 -
回呼
函式 選用
callback
參數如下所示:(response: GetOptionGroupsResponse) => void
傳回
-
Promise<GetOptionGroupsResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
取得可用掃描器的清單,並傳回使用 GetScannerListResponse
物件解析的 Promise。如果回呼傳遞至此函式,則會改為傳遞傳回的資料。
參數
-
篩選器
DeviceFilter
用於指出應傳回哪些類型的掃描器。 -
回呼
函式 選用
callback
參數如下所示:(response: GetScannerListResponse) => void
傳回
-
Promise<GetScannerListResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
開啟掃描器以取得專屬存取權,並傳回使用 OpenScannerResponse
物件解析的 Promise。如果回呼傳遞至此函式,則會改為傳遞傳回的資料。
參數
-
scannerId
字串
要開啟的掃描器 ID。這個值是從先前的呼叫
getScannerList
傳回而傳回的值。 -
回呼
函式 選用
callback
參數如下所示:(response: OpenScannerResponse) => void
傳回
-
Promise<OpenScannerResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
這個外掛程式能讀取執行中工作處理常式的下一個可用圖片區塊,並傳回使用 ReadScanDataResponse
物件解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。
**注意:**如果回應結果包含長度為零的 data
成員,SUCCESS
就會視為有效。這代表掃描器仍在執行,但尚未備妥其他資料。呼叫端應等待一小段時間,然後再試一次。
掃描工作完成後,回應的結果值會是 EOF
。這個回覆可能包含最終非零的 data
成員。
參數
-
工作
字串
先前從
startScan
傳回的有效工作處理常式。 -
回呼
函式 選用
callback
參數如下所示:(response: ReadScanDataResponse) => void
傳回
-
Promise<ReadScanDataResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
執行文件掃描並傳回使用 ScanResults
物件解析的 Promise。如果回呼傳遞到此函式,會傳回的資料會改傳遞至這個函式。
參數
-
選項
包含掃描參數的物件。
-
回呼
函式 選用
callback
參數如下所示:(result: ScanResults) => void
-
結果
-
傳回
-
Promise<ScanResults>
Chrome 96 以上版本Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
設定指定掃描器上的選項並傳回 Promise,該 Promise 使用 SetOptionsResponse
物件解析,該物件包含按照傳入的 OptionSetting
物件順序設定每個值的結果。如果使用回呼,則會將物件傳遞至回呼。
參數
-
scannerHandle
字串
掃描器用來設定選項的掃描器。這個值應為先前呼叫
openScanner
時傳回的值。 -
選項
要套用至掃描器的
OptionSetting
物件清單。 -
回呼
函式 選用
callback
參數如下所示:(response: SetOptionsResponse) => void
傳回
-
Promise<SetOptionsResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
在指定的掃描器上啟動掃描作業,並傳回使用 StartScanResponse
解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。如果呼叫成功,回應會包含工作控制代碼,可用於後續呼叫來讀取掃描資料或取消掃描。
參數
-
scannerHandle
字串
開啟掃描器的控點。這個值應為先前呼叫
openScanner
時傳回的值。 -
StartScanOptions
物件,指出掃描時要使用的選項。StartScanOptions.format
屬性必須與掃描器ScannerInfo
傳回的其中一個項目相符。 -
回呼
函式 選用
callback
參數如下所示:(response: StartScanResponse) => void
傳回
-
Promise<StartScanResponse>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。