תיאור
אפשר להשתמש ב-API chrome.documentScan
כדי לאתר ולאחזר תמונות מסורקי מסמכים מצורפים.
ה-Document Scan API נועד לאפשר לאפליקציות ולתוספים להציג את התוכן של מסמכים מודפסים בסורק מסמכים מצורף.
הרשאות
documentScan
זמינות
מושגים ושימוש
ממשק ה-API הזה תומך בשני אמצעים לסריקת מסמכים. אם התרחיש לדוגמה שלכם יכול לפעול עם כל סורק ולא נדרשת שליטה בהגדרה, אתם יכולים להשתמש בשיטה scan()
. בתרחישים מורכבים יותר, נדרש שילוב של שיטות, שנתמכות רק ב-Chrome מגרסה 124 ואילך.
סריקה פשוטה
לתרחישים פשוטים לדוגמה, כלומר לתרחישים שיכולים לעבוד עם כל סורק ולא מצריכים שליטה בהגדרות, התקשרו אל scan()
. השיטה הזו לוקחת אובייקט ScanOptions
ומחזירה Promise שמסתיימת באובייקט ScanResults
. היכולות של האפשרות הזו מוגבלות למספר הסריקות ולסוגי ה-MIME שיקבלו מבצע הקריאה. הסריקות מוחזרות ככתובות URL להצגה בתג <img>
בממשק המשתמש.
סריקה מורכבת
סריקות מורכבות מתבצעות בשלושה שלבים, כפי שמתואר בקטע הזה. המתאר הזה לא מתאר כל ארגומנט שיטה או כל מאפיין שמוחזר בתגובה. הוא מיועד רק לתת מדריך כללי לכתיבת קוד סורק.
קמפיינים מסוג Discovery
קוראים לפונקציה
getScannerList()
. הסורקים הזמינים מוחזרים בהבטחה (Promise) שנראית עםGetScannerListResponse
.- אובייקט התגובה מכיל מערך של אובייקטים
ScannerInfo
. - המערך יכול להכיל מספר רשומות לסורק יחיד אם הסורק תומך במספר פרוטוקולים או שיטות חיבור.
- אובייקט התגובה מכיל מערך של אובייקטים
בוחרים סורק מהמערך שהוחזר ושומרים את הערך של המאפיין
scannerId
.כדאי להשתמש במאפיינים של אובייקטים נפרדים ב-
ScannerInfo
כדי להבחין בין כמה אובייקטים לאותו סורק. לאובייקטים מאותו סורק יהיה ערך זהה במאפייןdeviceUuid
.ScannerInfo
מכיל גם את המאפייןimageFormats
שמכיל מגוון של סוגי תמונות נתמכים.
הגדרת הסורק
קוראים אל
openScanner()
ומעבירים את מזהה הסורק השמור. הפונקציה מחזירה Promise שמסתיימת ב-OpenScannerResponse
. אובייקט התגובה מכיל:נכס
scannerHandle
, שצריך לשמור.מאפיין אפשרויות שמכיל מאפיינים ספציפיים לסורק, שצריך להגדיר. מידע נוסף זמין בקטע 'אחזור האפשרויות של הסורק'.
(אופציונלי) אם אתם צריכים שהמשתמש יספק ערכים לאפשרויות הסורק, עליכם ליצור ממשק משתמש. תצטרכו את אפשרויות הסורק שקיבלתם בשלב הקודם, ותצטרכו לאחזר קבוצות של אפשרויות שסופקו על ידי הסורק. מידע נוסף זמין במאמר בניית ממשק משתמש.
יוצרים מערך של אובייקטים
OptionSetting
באמצעות ערכים פרוגרמטיים או ערכים שסופקו על ידי המשתמשים. למידע נוסף, ראו 'הגדרת אפשרויות סורק'.כדי להגדיר אפשרויות לסורק, מעבירים את מערך האובייקטים
OptionSetting
אלsetOptions()
. היא מחזירה הבטחה שנפתרת באמצעותSetOptionsResponse
. האובייקט הזה מכיל גרסה מעודכנת של אפשרויות הסורק שאוחזרו בשלב 1 של הגדרת הסורק.מכיוון ששינוי אפשרות אחת עלול לשנות את האילוצים של אפשרות אחרת, יכול להיות שתצטרכו לחזור על השלבים האלה כמה פעמים.
מתבצעת סריקה
בונים אובייקט
StartScanOptions
ומעבירים אותו אלstartScan()
. הפונקציה מחזירה Promise שמתחילה עםStartScanResponse
. המאפייןjob
הוא כינוי שבעזרתו אפשר לקרוא את נתוני הסריקה או לבטל את הסריקה.מעבירים את נקודת האחיזה של המשימה אל
readScanData()
. הפונקציה מחזירה Promise שמסתיימת באובייקטReadScanDataResponse
. אם הנתונים נקראו בהצלחה, המאפייןresult
שווה ל-SUCCESS
והמאפייןdata
שלו מכילArrayBuffer
עם חלק מהסריקה. שימו לב ש-estimatedCompletion
מכיל אחוז משוער מתוך סך כל הנתונים שנמסרו עד עכשיו.חוזרים על השלב הקודם עד שהמאפיין
result
שווה ל-EOF
או מופיעה שגיאה.
כשמגיעים לסוף הסריקה, קוראים ל-closeScanner()
, ושומרים את נקודת האחיזה של הסורק בשלב 3. הפונקציה מחזירה Promise שמסתיימת ב-CloseScannerResponse
. קריאה ל-cancelScan()
בכל שלב אחרי יצירת המשימה תוביל לסיום הסריקה.
אובייקטים של תגובה
כל השיטות מחזירות הבטחה שנפתרת עם אובייקט תגובה מסוג כלשהו.
רוב הנכסים מכילים נכס result
שהערך שלו הוא חבר בקבוצה OperationResult
. מאפיינים מסוימים של אובייקטים בתגובה לא יכילו ערכים, אלא אם לערך של result
יש ערך ספציפי. יחסי הגומלין האלה מתוארים בהפניה של כל אובייקט תגובה.
לדוגמה, ל-OpenScannerResponse.scannerHandle
יהיה ערך רק כאשר OpenScannerResponse.result
שווה ל-SUCCESS
.
אפשרויות סורק
אפשרויות הסורק משתנות משמעותית בהתאם למכשיר. כתוצאה מכך, אי אפשר לשקף אפשרויות של הסורק ישירות בתוך ה-DocumentScan API. על מנת לעקוף את הבעיה, האובייקט OpenScannerResponse
(שאוחזר באמצעות openScanner()
) וה-SetOptionsResponse
(אובייקט התגובה של setOptions()
) מכילים את המאפיין options
, שהוא אובייקט שמכיל אפשרויות ספציפיות לסורק. כל אפשרות היא מיפוי של מפתח-ערך, שבו המפתח הוא אפשרות ספציפית למכשיר והערך הוא מופע של ScannerOption
.
בדרך כלל המבנה נראה כך:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
לדוגמה, נניח סורק שמחזיר אפשרויות בשם 'מקור' ו'רזולוציה'. המבנה של האובייקט 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" ]
}
]
}
כפי שצוין בהגדרות של Scanner, שינוי אפשרות אחת עלול לשנות את האילוצים של אפשרות אחרת. זו הסיבה לכך ש-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
תכונות
-
משימה
string
מספקת את אותה כינוי למשימה שהועברה אל
cancelScan()
. -
תוצאה אחת
תוצאת הסריקה של ביטול הקצה העורפי. אם התוצאה היא
OperationResult.SUCCESS
אוOperationResult.CANCELLED
, הסריקה בוטלה והסורק מוכן להתחיל סריקה חדשה. אם התוצאה היאOperationResult.DEVICE_BUSY
, הסורק עדיין מעבד את הביטול המבוקש. המתקשר צריך להמתין זמן קצר ולנסות את הבקשה שוב. ערכי תוצאות אחרים מציינים שגיאה קבועה שאין לנסות שוב.
CloseScannerResponse
תכונות
-
תוצאה אחת
התוצאה של סגירת הסורק. גם אם הערך הזה אינו
SUCCESS
, הכינוי לא יהיה חוקי ואין להשתמש בו לפעולות נוספות. -
scannerHandle
string
אותה נקודת אחיזה לסורק שהועברה אל
closeScanner
.
Configurability
איך ניתן לשנות אפשרות.
טיפוסים בני מנייה (enum)
"NOT_CONFIGURABLE"
האפשרות היא לקריאה בלבד.
"SOFTWARE_CONFIGURABLE"
ניתן להגדיר את האפשרות בתוכנה.
"HARDWARE_CONFIGURABLE"
המשתמשים יכולים להגדיר את האפשרות הזו אם הם מחליפים או לוחצים על לחצן בסורק.
ConnectionType
מציין איך הסורק מחובר למחשב.
טיפוסים בני מנייה (enum)
"USB"
"NETWORK"
טיפוסים בני מנייה (enum)
"INT_RANGE"
האילוץ על טווח של OptionType.INT
ערכים. המאפיינים min
, max
ו-quant
של OptionConstraint
יהיו long
, והנכס list
שלו יבוטל.
"FIXED_RANGE"
האילוץ על טווח של OptionType.FIXED
ערכים. המאפיינים min
, max
ו-quant
של OptionConstraint
יהיו 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
string
אותה נקודת אחיזה לסורק שהועברה אל
getOptionGroups
.
GetScannerListResponse
תכונות
-
תוצאה אחת
תוצאת המספור. לידיעתכם, אנחנו יכולים להחזיר תוצאות חלקיות גם אם זה מצביע על שגיאה.
-
סורקים
רשימה של סורקים אפשריים שתואמים ל-
DeviceFilter
שצוינה.
OpenScannerResponse
תכונות
-
אפשרויות
אובייקט אופציונלי
אם המשתנה
result
הואSUCCESS
, הפונקציה מספקת מיפוי של ערך המפתח שבו המפתח הוא אפשרות ספציפית למכשיר והערך הוא מופע שלScannerOption
. -
תוצאה אחת
התוצאה של פתיחת הסורק. אם הערך הזה הוא
SUCCESS
, המאפייניםscannerHandle
ו-options
יאוכלסו. -
scannerHandle
מחרוזת אופציונלי
אם הערך של
result
הואSUCCESS
, נקודת אחיזה לסורק שאפשר להשתמש בה לפעולות נוספות. -
scannerId
string
מזהה הסורק הועבר אל
openScanner()
.
OperationResult
טיפוסים בני מנייה (enum) שמציין את התוצאה של כל פעולה.
טיפוסים בני מנייה (enum)
"UNKNOWN"
אירעה כשל לא ידוע או כללי.
'הצלחה'
הפעולה הצליחה.
"UNSUPPORTED"
הפעולה לא נתמכת.
"ביטול"
הפעולה בוטלה.
"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[] אופציונלי
-
מקסימלי
מספר אופציונלי
-
דקה
מספר אופציונלי
-
כמות
מספר אופציונלי
-
סוג
OptionGroup
תכונות
-
חברים
מחרוזת[]
מערך של שמות של אפשרויות לפי הסדר שסופק על ידי הנהג.
-
title
string
מספקת כותרת להדפסה, לדוגמה "אפשרויות גיאומטריות".
OptionSetting
תכונות
-
name
string
מציין את שם האפשרות להגדרה.
-
סוג
מציין את סוג הנתונים של האפשרות. סוג הנתונים המבוקש חייב להתאים לסוג הנתונים האמיתי של אפשרות הבסיס.
-
value
מחרוזת | מספר | בוליאני | מספר[] אופציונלי
מציין את הערך שיש להגדיר. אם לא קובעים במדיניות הזו שום ערך, ניתן לבקש הגדרה אוטומטית עבור אפשרויות שבהן
autoSettable
מופעל. סוג הנתונים שסופקו עבורvalue
חייב להתאים ל-type
.
OptionType
סוג הנתונים של אפשרות.
טיפוסים בני מנייה (enum)
"UNKNOWN"
סוג הנתונים של האפשרות לא ידוע. ההגדרה של המאפיין value
תבוטל.
"BOOL"
הנכס value
יהיה אחד מהערכים true
false.
"INT"
מספר שלם חתום של 32 ביט. המאפיין value
יהיה ארוך או ארוך[], בהתאם לבחירה של האפשרות לקבל יותר מערך אחד.
"תוקנה"
כפולה בטווח -32768-32767.9999 עם רזולוציה של 1/65535. המאפיין value
יהיה כפול או כפול[], בהתאם לבחירה של האפשרות לקבל יותר מערך אחד. ערכים כפולים שלא ניתן לייצג בדיוק יעוגלו לטווח ולדיוק הזמינים.
"STRING"
רצף של בייטים כלשהם מלבד NUL ('\0'). הנכס value
יהיה DOMString.
"לחצן"
לאפשרות מהסוג הזה אין ערך. במקום זאת, הגדרת אפשרות מהסוג הזה גורמת לתופעת לוואי ספציפית לאפשרות במנהל ההתקן של הסורק. לדוגמה, אפשרות מסוג לחצנים יכולה לשמש מנהל התקן של הסורק כדי לספק אמצעי לבחירת ערכי ברירת מחדל או כדי להורות למזין מסמכים אוטומטי להתקדם לגיליון הנייר הבא.
"GROUP"
אפשרות קיבוץ. אין ערך. המדיניות הזו כלולה לצורך תאימות, אבל בדרך כלל היא לא מוחזרת בערך ScannerOption
. אפשר להשתמש ב-getOptionGroups()
כדי לאחזר את רשימת הקבוצות עם האפשרויות לחברות בהן.
טיפוסים בני מנייה (enum)
"UNITLless"
הערך הוא מספר ללא יחידה. לדוגמה, הוא יכול להיות ערך סף.
"PIXEL"
הערך הוא מספר פיקסלים, למשל מידות הסריקה.
"BIT"
הערך הוא מספר הביטים, לדוגמה: עומק הצבע.
"MM"
הערך נמדד במילימטרים, למשל מידות הסריקה.
"DPI"
הערך נמדד בנקודות לאינץ', למשל רזולוציה.
"PERCENT"
הערך הוא אחוז, לדוגמה: בהירות.
"MICROSECOND"
הערך נמדד במיליוניות השנייה, למשל, זמן החשיפה.
ReadScanDataResponse
תכונות
-
נתונים
ArrayBuffer אופציונלי
אם הערך של
result
הואSUCCESS
, מכיל את הקטע הבא של נתוני התמונות שנסרקו. אם הערך שלresult
הואEOF
, הוא מכיל את הקטע האחרון של נתוני התמונות שנסרקו. -
estimatedCompletion
מספר אופציונלי
אם הערך של
result
הואSUCCESS
, זהו אומדן של הכמות הכוללת של נתוני הסריקה שנמסרו עד עכשיו, בטווח של 0 עד 100. -
משימה
string
מזהה המשימה שהועברה אל
readScanData()
. -
תוצאה אחת
התוצאה של קריאת הנתונים. אם הערך שלו הוא
SUCCESS
, אזdata
מכיל את מקטע הבא (שיכול להיות באורך אפס) של נתוני תמונה שמוכנים לקריאה. אם הערך שלו הואEOF
,data
מכיל את הקטע האחרון של נתוני התמונה.
ScannerInfo
תכונות
-
connectionType
מציין איך הסורק מחובר למחשב.
-
deviceUuid
string
להתאמה מול רשומות
ScannerInfo
אחרות שמפנות לאותו מכשיר פיזי. -
imageFormats
מחרוזת[]
מערך של סוגי MIME שניתן לבקש עבור סריקות שהוחזרו.
-
יצרן
string
יצרן הסורק.
-
model
string
דגם הסורק, אם הוא זמין, או תיאור גנרי.
-
name
string
שם קריא (לסורק) שיוצג בממשק המשתמש.
-
protocolType
string
תיאור קריא (לבני אדם) של הפרוטוקול או הנהג/ת ששימשו לגישה לסורק, כמו Mopria , WSD או epsonds. זו אפשרות שימושית בעיקר כדי לאפשר למשתמש לבחור בין פרוטוקולים, אם מכשיר תומך במספר פרוטוקולים.
-
scannerId
string
המזהה של סורק ספציפי.
-
מאובטח
boolean
אם הערך הוא true, מאזינים פסיביים כמו TLS (אבטחת שכבת התעבורה) או USB לא יכולים ליירט את ההעברה של החיבור לסורק.
ScannerOption
תכונות
-
יכולת הגדרה
מציינת אם ניתן לשנות את האפשרות ובאיזה אופן.
-
מגבלה
OptionConstraint אופציונלי
מגדיר את
OptionConstraint
באפשרות הסורק הנוכחית. -
תיאור
string
תיאור ארוך יותר של האפשרות.
-
isActive
boolean
מציין שהאפשרות פעילה וניתן להגדיר או לאחזר אותה. אם הערך הוא False, המאפיין
value
לא יוגדר. -
isAdvanced
boolean
מציינת שהאפשרות הזו לא אמורה להופיע בממשק המשתמש כברירת מחדל.
-
isAutoSettable
boolean
ניתן להגדרה אוטומטית על ידי מנהל ההתקן של הסורק.
-
isDetectable
boolean
האפשרות הזאת מציינת שאפשר לזהות את האפשרות הזו באמצעות תוכנה.
-
isEmulated
boolean
אמולציה על ידי מנהל ההתקן של הסורק, אם הערך הוא true.
-
name
string
שם האפשרות בפורמט של אותיות ASCII קטנות, מספרים ומקפים. אסור להשתמש בסימני ניקוד.
-
title
string
כותרת בת שורה אחת להדפסה.
-
סוג
סוג הנתונים שכלול בנכס
value
, שנדרש כדי להגדיר את האפשרות הזו. -
יחידה
יחידת המידה של האפשרות הזו.
-
value
מחרוזת | מספר | בוליאני | מספר[] אופציונלי
הערך הנוכחי של האפשרות, אם רלוונטי. חשוב לשים לב שסוג הנתונים של המאפיין הזה חייב להתאים לסוג הנתונים שצוין ב-
type
.
ScanOptions
תכונות
-
maxImages
מספר אופציונלי
מספר התמונות הסרוקות המותר. ערך ברירת המחדל הוא 1.
-
mimeTypes
string[] אופציונלי
סוגי ה-MIME שמתקבלים על ידי מבצע הקריאה החוזרת.
ScanResults
תכונות
-
dataUrls
מחרוזת[]
מערך של כתובות URL של תמונות נתונים בטופס, שניתן להעביר כערך "src" לתג תמונה.
-
mimeType
string
סוג MIME של
dataUrls
.
SetOptionResult
תכונות
-
name
string
מציין את שם האפשרות שהוגדרה.
-
תוצאה אחת
מציין את התוצאה של הגדרת האפשרות.
SetOptionsResponse
תכונות
-
אפשרויות
אובייקט אופציונלי
בוצע עדכון של מיפוי מפתח/ערך משמות של אפשרויות לערכי
ScannerOption
שמכילים את ההגדרות החדשות אחרי ניסיון להגדיר את כל האפשרויות שסופקו. הנכס הזה הוא באותו מבנה כמו הנכסoptions
ב-OpenScannerResponse
.המאפיין הזה יוגדר גם אם חלק מהאפשרויות לא הוגדרו בהצלחה, אבל הוא לא יוגדר אם אחזור של ההגדרה המעודכנת ייכשל (לדוגמה, אם הסורק מנותק באמצע הסריקה).
-
תוצאות
מערך של תוצאות, אחת לכל
OptionSetting
שמועברת. -
scannerHandle
string
כאן מזינים את נקודת האחיזה של הסורק שהועברה אל
setOptions()
.
StartScanOptions
תכונות
-
פורמט
string
המדיניות קובעת את סוג ה-MIME שאליו יש להחזיר נתונים סרוקים.
-
maxReadSize
מספר אופציונלי
אם צוין ערך שאינו אפס, היא מגבילה את המספר המקסימלי של בייטים שנסרקו שמוחזרים בתגובת
readScanData
אחת לאותו ערך. הערך הקטן ביותר המותר הוא 32,768 (32 KB). אם המאפיין הזה לא מצוין, הגודל של המקטע שמוחזר עשוי להיות גדול כמו כל התמונה הסרוקה.
StartScanResponse
תכונות
-
משימה
מחרוזת אופציונלי
אם
result
הואSUCCESS
, מספקת כינוי שאפשר להשתמש בו כדי לקרוא נתוני סריקה או לבטל את המשימה. -
תוצאה אחת
התוצאה של התחלת הסריקה. אם הערך הזה הוא
SUCCESS
, המאפייןjob
יאוכלס. -
scannerHandle
string
מספקת את אותה נקודת אחיזה של הסורק שהועברה אל
startScan()
.
שיטות
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
ביטול סריקה שהתחילה ומחזירה הבטחה שמסתיימת עם אובייקט CancelScanResponse
. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת.
פרמטרים
-
משימה
string
הכינוי של משימת סריקה פעילה שהוחזרה בעבר משיחה אל
startScan
. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: CancelScanResponse) => void
-
תשובה
-
החזרות
-
Promise<CancelScanResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
סוגר את הסורק עם נקודת האחיזה המועברת ומחזיר הבטחה שמסתיימת עם אובייקט CloseScannerResponse
. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת. גם אם התגובה לא מסתיימת בהצלחה, הכינוי שסופק הופך ללא תקין ואין להשתמש בו לפעולות נוספות.
פרמטרים
-
scannerHandle
string
מציין את נקודת האחיזה של סורק פתוח שהוחזר בעבר מקריאה ל-
openScanner
. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: CloseScannerResponse) => void
-
תשובה
-
החזרות
-
Promise<CloseScannerResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
הפונקציה מקבלת את שמות הקבוצות והאפשרויות של חברי הקבוצה מסורק שנפתח בעבר על ידי openScanner
. השיטה הזו מחזירה הבטחה שמוגדרת עם אובייקט GetOptionGroupsResponse
. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.
פרמטרים
-
scannerHandle
string
נקודת האחיזה של סורק פתוח שהוחזר משיחה אל
openScanner
. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: GetOptionGroupsResponse) => void
-
תשובה
-
החזרות
-
Promise<GetOptionGroupsResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
הפונקציה מקבלת את רשימת הסורקים הזמינים ומחזירה Promise שמזהה את הפונקציה עם אובייקט GetScannerListResponse
. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.
פרמטרים
-
סינון
DeviceFilter
שמציין את סוגי הסורקים שיש להחזיר. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: GetScannerListResponse) => void
-
תשובה
-
החזרות
-
Promise<GetScannerListResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
פתיחת סורק לגישה בלעדית ומחזירה הבטחה שמסתיימת באובייקט OpenScannerResponse
. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.
פרמטרים
-
scannerId
string
המזהה של הסורק שצריך לפתוח. הערך הזה מוחזר מקריאה קודמת אל
getScannerList
. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: OpenScannerResponse) => void
-
תשובה
-
החזרות
-
Promise<OpenScannerResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
קורא את המקטע הבא של נתוני תמונה זמינים מכינוי משימה פעיל, ומחזיר Promise שמסתיימת עם אובייקט ReadScanDataResponse
. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת.
**הערה:**התוצאה יכולה להיות SUCCESS
עם חבר data
באורך אפס. המשמעות היא שהסורק עדיין פועל אבל עדיין אין נתונים נוספים מוכנים. על המתקשר להמתין זמן קצר ולנסות שוב.
כשמשימת הסריקה תסתיים, הערך של התשובה יהיה EOF
. התשובה הזו עשויה להכיל חבר סופי מסוג data
שאינו אפס.
פרמטרים
-
משימה
string
ידית העבודה הפעילה הוחזרה בעבר מ-
startScan
. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: ReadScanDataResponse) => void
-
תשובה
-
החזרות
-
Promise<ReadScanDataResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
מבצע סריקת מסמך ומחזירה הבטחה שמסתיימת עם אובייקט ScanResults
. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.
פרמטרים
-
אפשרויות
אובייקט שמכיל פרמטרים של סריקה.
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(result: ScanResults) => void
-
תוצאה אחת
-
החזרות
-
Promise<ScanResults>
Chrome 96 ומעלהיש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
מגדירה אפשרויות בסורק שצוין ומחזירה Promise שמסתיימת באובייקט SetOptionsResponse
שמכיל את התוצאה של הניסיון להגדיר כל ערך לפי הסדר של האובייקט OptionSetting
שמועבר. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת.
פרמטרים
-
scannerHandle
string
נקודת האחיזה של הסורק שעליו רוצים להגדיר אפשרויות. הערך הזה צריך להיות ערך שהוחזר בעבר משיחה אל
openScanner
. -
אפשרויות
רשימה של
OptionSetting
אובייקטים שיחולו על הסורק. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: SetOptionsResponse) => void
-
תשובה
-
החזרות
-
Promise<SetOptionsResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
הפעלת סריקה בסורק שצוין ומחזירה הבטחה שמסתיימת עם StartScanResponse
. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת. אם השיחה הצליחה, התשובה תכלול כינוי למשימה. תוכלו להשתמש בה בקריאות הבאות כדי לקרוא את נתוני הסריקה או לבטל סריקה.
פרמטרים
-
scannerHandle
string
נקודת האחיזה של סורק פתוח. הערך הזה צריך להיות ערך שהוחזר בעבר משיחה אל
openScanner
. -
אפשרויות
אובייקט
StartScanOptions
שמציין את האפשרויות שבהן צריך להשתמש לסריקה. המאפייןStartScanOptions.format
חייב להתאים לאחת מהרשומות שהוחזרו ב-ScannerInfo
של הסורק. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(response: StartScanResponse) => void
-
תשובה
-
החזרות
-
Promise<StartScanResponse>
יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.