說明
使用 chrome.documentScan
API 探索及擷取連接的文件掃描器中的圖片。
文件掃描 API 的設計宗旨,是讓應用程式和擴充功能查看連接的文件掃描器上的紙本文件內容。
權限
documentScan
可用性
概念與用途
這個 API 支援兩種掃描文件的方式。如果您的用途適用於任何掃描器,且不需要控管設定,請使用 scan()
方法。較複雜的應用情境需要結合多種方法,
但只有 Chrome 124 以上版本支援。
輕鬆掃描
如果是簡單的用途,也就是可搭配任何掃描器使用,且不需要控管設定,請呼叫 scan()
。這個方法會採用 ScanOptions
物件,並傳回 Promise,該 Promise 會以 ScanResults
物件解析。這項選項的功能僅限於掃描次數,以及呼叫端接受的 MIME 類型。掃描結果會以網址形式傳回,以便在使用者介面的 <img>
標記中顯示。
複雜掃描
如本節所述,複雜掃描作業會分三個階段完成。這個大綱並未說明每個方法引數,或回應中傳回的每個屬性。這份指南僅提供掃描器程式碼的撰寫方式。
探索
呼叫
getScannerList()
。可用的掃描器會以 Promise 形式傳回,並以GetScannerListResponse
解決。- 回應物件包含
ScannerInfo
物件的陣列。 - 如果掃描器支援多種通訊協定或連線方法,陣列可能會包含單一掃描器的多個項目。
- 回應物件包含
從傳回的陣列中選取掃描器,並儲存其
scannerId
屬性的值。使用個別
ScannerInfo
物件的屬性,區分同一掃描器的多個物件。來自相同掃描器的物件,其deviceUuid
屬性值會相同。ScannerInfo
也包含imageFormats
屬性,其中含有支援的圖片類型陣列。
掃描器設定
呼叫
openScanner()
,並傳入已儲存的掃描器 ID。 這會傳回 Promise,並以OpenScannerResponse
解析。回應物件包含:scannerHandle
屬性,您必須儲存。包含掃描器專屬屬性的選項屬性,您需要設定這項屬性。詳情請參閱「Retrieve scanner options」。
(選用) 如果需要使用者提供掃描器選項的值,請建構使用者介面。您需要上一個步驟提供的掃描器選項,並擷取掃描器提供的選項群組。詳情請參閱「建構使用者介面」。
使用程式輔助或使用者提供的值,建構
OptionSetting
物件陣列。詳情請參閱「設定掃描器選項」。將
OptionSetting
物件陣列傳遞至setOptions()
,即可設定掃描器選項。這個方法會傳回 Promise,並以SetOptionsResponse
解析。這個物件包含掃描器選項的更新版本,這些選項是在掃描器設定的步驟 1 中擷取。由於變更一個選項可能會改變另一個選項的限制,您可能需要重複這些步驟多次。
掃描
建構
StartScanOptions
物件,並傳遞至startScan()
。這會傳回 Promise,並以StartScanResponse
解析。其job
屬性是您用來讀取掃描資料或取消掃描的控制代碼。將工作控制代碼傳遞至
readScanData()
。這個方法會傳回 Promise,並以ReadScanDataResponse
物件解析。如果資料讀取成功,其result
屬性會等於SUCCESS
,且data
屬性會包含ArrayBuffer
,其中含有部分掃描內容。請注意,estimatedCompletion
包含目前為止已傳送資料的預估百分比。重複上一個步驟,直到
result
屬性等於EOF
或發生錯誤為止。
掃描結束時,請呼叫 closeScanner()
,並儲存步驟 3 中的掃描器控制代碼。這個方法會傳回 Promise,並以 CloseScannerResponse
解析。工作建立後,隨時呼叫 cancelScan()
都會結束掃描。
回應物件
所有方法都會傳回 Promise,並以某種回應物件解析。其中大多數都包含 result
屬性,其值為 OperationResult
的成員。除非 result
的值為特定值,否則回應物件的部分屬性不會包含值。這些關係會在每個回應物件的參照中說明。
舉例來說,只有在 OpenScannerResponse.result
等於 SUCCESS
時,OpenScannerResponse.scannerHandle
才會有值。
掃描器選項
掃描器選項會因裝置而異。因此,無法直接在 documentScan API 中反映掃描器選項。為解決這個問題,OpenScannerResponse
(使用 openScanner()
擷取) 和 SetOptionsResponse
(setOptions()
的回應物件) 包含 options
屬性,這個屬性是包含掃描器專屬選項的物件。每個選項都是鍵值對應,其中鍵是裝置專屬選項,值則是 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()
擷取這些群組。這會傳回 Promise,並以 GetOptionGroupsResponse
物件解析。其 groups
屬性包含掃描器專屬的群組陣列。使用這些群組中的資訊,整理 OpenScannerResponse
中顯示的選項。
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
如「掃描器設定」一節所述,變更一個選項可能會影響另一個選項的限制。因此,setOptionsResponse
(setOptions()
的回應物件) 包含另一個 options
屬性。使用這個方法更新使用者介面。然後視需要重複執行上述步驟,直到所有選項都設定完成為止。
設定掃描器選項
如要設定掃描器選項,請將 OptionSetting
物件陣列傳遞至 setOptions()
。如需範例,請參閱下方的「掃描一頁 Letter 尺寸的紙張」一節。
範例
以 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" });
}
掃描一頁 Letter 尺寸的頁面
這個範例說明如何選取掃描器、設定掃描器選項,以及開啟掃描器。然後擷取單一頁面的內容,並關閉掃描器。這個程序示範如何使用 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
屬性
-
工作
字串
提供傳遞至
cancelScan()
的相同工作控制代碼。 -
後端的取消掃描結果。如果結果是
OperationResult.SUCCESS
或OperationResult.CANCELLED
,表示掃描作業已取消,掃描器可以開始新的掃描作業。如果結果為OperationResult.DEVICE_BUSY
,表示掃描器仍在處理取消要求,呼叫端應稍候片刻,然後再試一次。其他結果值表示永久錯誤,不應重試。
CloseScannerResponse
屬性
-
關閉掃描器後,即使這個值不是
SUCCESS
,控點也會無效,不應再用於任何作業。 -
scannerHandle
字串
與傳遞至
closeScanner
的掃描器控制代碼相同。
Configurability
如何變更選項。
列舉
「NOT_CONFIGURABLE」
這個選項為唯讀。
「SOFTWARE_CONFIGURABLE」
這個選項可在軟體中設定。
「HARDWARE_CONFIGURABLE」
使用者可以切換或按下掃描器上的按鈕來設定這個選項。
ConnectionType
指出掃描器與電腦的連線方式。
列舉
「UNSPECIFIED」
「USB」
「NETWORK」
列舉
「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
屬性
-
local
布林值 選填
請只退回直接連接電腦的掃描器。
-
安全
布林值 選填
只傳回使用安全傳輸方式的掃描器,例如 USB 或 TLS。
GetOptionGroupsResponse
屬性
-
群組
OptionGroup[] 選用
如果
result
為SUCCESS
,則會依掃描器驅動程式提供的順序,列出選項群組。 -
取得選項群組的結果。如果這個值為
SUCCESS
,系統會填入groups
屬性。 -
scannerHandle
字串
與傳遞至
getOptionGroups
的掃描器控制代碼相同。
GetScannerListResponse
屬性
-
列舉結果。請注意,即使這表示發生錯誤,系統仍可能會傳回部分結果。
-
掃描器
符合所提供
DeviceFilter
的掃描器清單 (可能為空白)。
OpenScannerResponse
屬性
-
選項
object 選填
如果
result
為SUCCESS
,則提供鍵/值對應,其中鍵為裝置專屬選項,值為ScannerOption
的例項。 -
開啟掃描器的結果。如果這個值為
SUCCESS
,系統會填入scannerHandle
和options
屬性。 -
scannerHandle
字串 選填
如果
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 記憶體不足,無法完成作業。
「UNREACHABLE」
無法連上裝置。
「MISSING」
裝置已中斷連線。
「INTERNAL_ERROR」
呼叫應用程式以外的地方發生錯誤。
OptionConstraint
屬性
-
list
string[] | number[] 選用
-
max
號碼 選填
-
分鐘
號碼 選填
-
quant
號碼 選填
OptionGroup
屬性
-
成員
string[]
驅動程式提供的選項名稱陣列。
-
title
字串
提供可列印的標題,例如「幾何選項」。
OptionSetting
屬性
-
名稱
字串
指出要設定的選項名稱。
-
類型
指出選項的資料類型。要求的資料類型必須與基礎選項的實際資料類型相符。
-
值
字串 | 數字 | 布林值 | 數字陣列 選用
指出要設定的值。如要為已啟用
autoSettable
的選項要求自動設定,請將此欄位設為未設定。為value
提供的資料類型必須與type
相符。
OptionType
選項的資料類型。
列舉
「UNKNOWN」
選項的資料類型不明。value
屬性將取消設定。
「BOOL」value
true
屬性將為「false」。
「INT」
帶正負號的 32 位元整數。value
屬性會是 long 或 long[],視選項是否採用多個值而定。
「FIXED」
範圍為 -32768 到 32767.9999 的雙精度浮點數,解析度為 1/65535。視選項是否採用多個值而定,value
屬性會是 double 或 double[]。無法精確表示的 Double 值會四捨五入至可用範圍和精確度。
「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 類型陣列。
-
製造商
字串
掃描器製造商。
-
模型
字串
掃描器型號 (如有) 或一般說明。
-
名稱
字串
掃描器在 UI 中顯示的名稱,方便使用者辨識。
-
protocolType
字串
用於存取掃描器的通訊協定或驅動程式說明,例如 Mopria、WSD 或 epsonds。如果裝置支援多種通訊協定,這項功能主要可讓使用者選擇通訊協定。
-
scannerId
字串
特定掃描器的 ID。
-
安全
布林值
如果為 true,被動監聽器 (例如 TLS 或 USB) 就無法攔截掃描器連線的傳輸內容。
ScannerOption
屬性
-
可設定性
指出是否可以變更選項,以及變更方式。
-
限制
定義目前掃描器選項的
OptionConstraint
。 -
說明
字串
選項的詳細說明。
-
isActive
布林值
表示選項處於有效狀態,可以設定或擷取。如果設為 False,系統就不會設定
value
屬性。 -
isAdvanced
布林值
表示 UI 預設不應顯示這個選項。
-
isAutoSettable
布林值
可由掃描器驅動程式自動設定。
-
isDetectable
布林值
表示可透過軟體偵測這個選項。
-
isEmulated
布林值
如果為 true,則由掃描器驅動程式模擬。
-
名稱
字串
選項名稱使用小寫 ASCII 字母、數字和破折號。不可使用變音符號。
-
title
字串
可列印的單行標題。
-
類型
value
屬性中包含的資料類型,設定這個選項時需要用到。 -
單位
這個選項的測量單位。
-
值
字串 | 數字 | 布林值 | 數字陣列 選用
選項的目前值 (如適用)。請注意,這項屬性的資料類型必須與
type
中指定的資料類型相符。
ScanOptions
屬性
-
maxImages
號碼 選填
允許掃描的圖片數量。預設值為 1。
-
mimeTypes
字串陣列 選用
呼叫端接受的 MIME 類型。
ScanResults
屬性
-
dataUrls
string[]
資料圖片網址陣列,格式可做為圖片標記的「src」值傳遞。
-
mimeType
字串
dataUrls
的 MIME 類型。
SetOptionResult
屬性
-
名稱
字串
指出已設定的選項名稱。
-
指出設定選項的結果。
SetOptionsResponse
屬性
-
選項
object 選填
更新選項名稱與
ScannerOption
值之間的對應關係,其中包含嘗試設定所有提供的選項後的新設定。這與OpenScannerResponse
中的options
屬性結構相同。即使部分選項未成功設定,系統仍會設定這項屬性,但如果擷取更新後的設定失敗 (例如掃描器在掃描期間中斷連線),系統就會取消設定這項屬性。
-
結果
結果陣列,每個傳入的
OptionSetting
各有一個結果。 -
scannerHandle
字串
提供傳遞至
setOptions()
的掃描器控制代碼。
StartScanOptions
屬性
-
format
字串
指定要以哪種 MIME 類型傳回掃描資料。
-
maxReadSize
號碼 選填
如果指定非零值,則單一
readScanData
回應中傳回的掃描位元組數上限會設為該值。允許的最小值為 32768 (32 KB)。如果未指定這項屬性,傳回的區塊大小可能與整個掃描圖片一樣大。
StartScanResponse
屬性
-
工作
字串 選填
如果
result
為SUCCESS
,則提供可用於讀取掃描資料或取消工作的控制代碼。 -
開始掃描的結果。如果這個值為
SUCCESS
,系統會填入job
屬性。 -
scannerHandle
字串
提供傳遞至
startScan()
的掃描器控制代碼。
方法
cancelScan()
chrome.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
取消已啟動的掃描作業,並傳回 Promise,該 Promise 會以 CancelScanResponse
物件解析。如果使用回呼,則會將物件傳遞至回呼。
參數
-
工作
字串
先前從
startScan
呼叫傳回的有效掃描作業控制代碼。
傳回
-
Promise<CancelScanResponse>
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
使用傳入的控制代碼關閉掃描器,並傳回 Promise,該 Promise 會以 CloseScannerResponse
物件解析。如果使用回呼,則會將物件傳遞至回呼。即使回應未成功,提供的控制代碼也會失效,不應再用於後續作業。
參數
-
scannerHandle
字串
指定先前從
openScanner
呼叫傳回的開啟掃描器控制代碼。
傳回
-
Promise<CloseScannerResponse>
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
從先前由 openScanner
開啟的掃描器取得群組名稱和成員選項。這個方法會傳回 Promise,並以 GetOptionGroupsResponse
物件解析。如果回呼傳遞至這個函式,系統會改為將傳回的資料傳遞至回呼。
參數
-
scannerHandle
字串
從呼叫
openScanner
傳回的開啟掃描器控制代碼。
傳回
-
Promise<GetOptionGroupsResponse>
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
取得可用掃描器的清單,並傳回以 GetScannerListResponse
物件解析的 Promise。如果回呼傳遞至這個函式,系統會改為將傳回的資料傳遞至回呼。
參數
-
篩選
DeviceFilter
:指出應傳回哪些類型的掃描器。
傳回
-
Promise<GetScannerListResponse>
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
開啟專屬存取權的掃描器,並傳回以 OpenScannerResponse
物件解析的 Promise。如果回呼傳遞至這個函式,系統會改為將傳回的資料傳遞至回呼。
參數
-
scannerId
字串
要開啟的掃描器 ID。這個值是先前呼叫
getScannerList
時傳回的值。
傳回
-
Promise<OpenScannerResponse>
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
從有效的工作控制代碼讀取下一個可用的圖片資料區塊,並傳回以 ReadScanDataResponse
物件解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。
**注意:**回應結果可以是 SUCCESS
,且 data
成員長度為零。這表示掃描器仍在運作,但尚未準備好額外資料。通話者應稍待片刻,然後再試一次。
掃描工作完成後,回應的結果值會是 EOF
。這項回應可能包含最終的非零 data
成員。
參數
-
工作
字串
先前從
startScan
傳回的有效工作控制代碼。
傳回
-
Promise<ReadScanDataResponse>
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
執行文件掃描,並傳回以 ScanResults
物件解析的 Promise。如果回呼傳遞至這個函式,傳回的資料會改為傳遞至回呼。
參數
-
選項
包含掃描參數的物件。
傳回
-
Promise<ScanResults>
Chrome 96 以上版本
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
在指定的掃描器上設定選項,並傳回 Promise,該 Promise 會使用 SetOptionsResponse
物件解析,其中包含嘗試依傳入的 OptionSetting
物件順序設定每個值的結果。如果使用回呼,則會將物件傳遞至回呼。
參數
-
scannerHandle
字串
掃描器的控制代碼,用於設定選項。這個值應是先前呼叫
openScanner
時傳回的值。 -
選項
要套用至掃描器的
OptionSetting
物件清單。
傳回
-
Promise<SetOptionsResponse>
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
在指定掃描器上啟動掃描作業,並傳回以 StartScanResponse
解析的 Promise。如果使用回呼,則會將物件傳遞至回呼。如果呼叫成功,回應會包含作業控制代碼,可用於後續呼叫,以讀取掃描資料或取消掃描。
參數
-
scannerHandle
字串
開啟掃描器的控點。這個值應是先前呼叫
openScanner
時傳回的值。 -
StartScanOptions
物件,指出掃描要使用的選項。StartScanOptions.format
屬性必須與掃描器ScannerInfo
中傳回的其中一個項目相符。
傳回
-
Promise<StartScanResponse>