תיאור
אפשר להשתמש ב-chrome.documentScan
API כדי לגלות ולאחזר תמונות מסורקי מסמכים שמחוברים למכשיר.
ממשק ה-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
, שצריך לשמור.מאפיין options שמכיל מאפיינים ספציפיים לסורק, שצריך להגדיר. מידע נוסף זמין במאמר בנושא אחזור אפשרויות הסורק.
(אופציונלי) אם אתם רוצים שהמשתמש יספק ערכים לאפשרויות הסורק, צריך ליצור ממשק משתמש. תצטרכו את אפשרויות הסורק שסופקו בשלב הקודם, ותצטרכו לאחזר קבוצות של אפשרויות שסופקו על ידי הסורק. מידע נוסף זמין במאמר בנושא בניית ממשק משתמש.
יוצרים מערך של אובייקטים מסוג
OptionSetting
באמצעות ערכים שסופקו על ידי המשתמש או ערכים שנוצרו באופן אוטומטי. מידע נוסף זמין במאמר בנושא הגדרת אפשרויות הסורק.מעבירים את מערך האובייקטים
OptionSetting
אלsetOptions()
כדי להגדיר אפשרויות לסורק. הפונקציה מחזירה Promise שמושלם עםSetOptionsResponse
. האובייקט הזה מכיל גרסה מעודכנת של אפשרויות הסורק שאוחזרו בשלב 1 של הגדרת הסורק.יכול להיות שתצטרכו לחזור על השלבים האלה כמה פעמים, כי שינוי של אפשרות אחת יכול לשנות את המגבלות של אפשרות אחרת.
סריקה
יוצרים אובייקט
StartScanOptions
ומעבירים אותו אלstartScan()
. היא מחזירה הבטחה (Promise) שמובילה ל-StartScanResponse
. המאפייןjob
הוא נקודת אחיזה שתשמש לקריאת נתוני הסריקה או לביטול הסריקה.מעבירים את נקודת האחיזה של המשימה אל
readScanData()
. הפונקציה מחזירה Promise שמוביל לאובייקטReadScanDataResponse
. אם הנתונים נקראו בהצלחה, הערך של המאפייןresult
הואSUCCESS
והערך של המאפייןdata
מכילArrayBuffer
עם חלק מהסריקה. שימו לב שהערךestimatedCompletion
מכיל אחוז משוער מסך הנתונים שהועברו עד עכשיו.חוזרים על השלב הקודם עד שהמאפיין
result
שווה ל-EOF
או לשגיאה.
כשמגיעים לסוף הסריקה, מתקשרים אל closeScanner()
עם ה-handle של הסורק שנשמר בשלב 3. הפונקציה מחזירה Promise שמסתיים ב-CloseScannerResponse
. התקשרות אל cancelScan()
בכל שלב אחרי יצירת העבודה תגרום לסיום הסריקה.
אובייקטים של תשובות
כל השיטות מחזירות Promise שמוביל לאובייקט תגובה מסוג כלשהו. רוב האובייקטים האלה מכילים מאפיין result
שהערך שלו הוא חבר ב-OperationResult
. חלק מהמאפיינים של אובייקטים של תגובה לא יכילו ערכים אלא אם הערך של result
הוא ערך ספציפי. הקשרים האלה מתוארים בהפניה לכל אובייקט תגובה.
לדוגמה, OpenScannerResponse.scannerHandle
יקבל ערך רק אם OpenScannerResponse.result
שווה ל-SUCCESS
.
אפשרויות סריקה
אפשרויות הסורק משתנות מאוד בהתאם למכשיר. לכן, אי אפשר לשקף את אפשרויות הסורק ישירות ב-API של documentScan. כדי לעקוף את הבעיה הזו, האובייקט 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); }
הצגת ההגדרה
כמו שצוין במקום אחר, כדי להציג למשתמש את אפשרויות ההגדרה של הסורק, צריך לקרוא ל-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
מאפיינים
- משימה
מחרוזת
מחזירה את אותו ה-handle של המשימה שהועבר אל
cancelScan()
. - תוצאה
תוצאת ביטול הסריקה בשרת העורפי. אם התוצאה היא
OperationResult.SUCCESS
אוOperationResult.CANCELLED
, הסריקה בוטלה והסורק מוכן להתחיל סריקה חדשה. אם התוצאה היאOperationResult.DEVICE_BUSY
, הסורק עדיין מעבד את בקשת הביטול. המתקשר צריך להמתין זמן קצר ולנסות שוב לשלוח את הבקשה. ערכי תוצאה אחרים מציינים שגיאה קבועה שלא כדאי לנסות שוב.
CloseScannerResponse
מאפיינים
- תוצאה
התוצאה של סגירת הסורק. גם אם הערך הזה לא
SUCCESS
, ה-handle יהיה לא תקין ולא יהיה אפשר להשתמש בו לפעולות נוספות. - scannerHandle
מחרוזת
אותו ה-handle של הסורק שהועבר אל
closeScanner
.
Configurability
איך אפשר לשנות אפשרות.
Enum
NOT_CONFIGURABLE
האפשרות היא לקריאה בלבד.
SOFTWARE_CONFIGURABLE
אפשר להגדיר את האפשרות בתוכנה.
HARDWARE_CONFIGURABLE
המשתמש יכול להגדיר את האפשרות באמצעות החלפה או לחיצה על לחצן בסורק.
ConnectionType
מציין איך הסורק מחובר למחשב.
Enum
"UNSPECIFIED"
"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
boolean אופציונלי
יוחזרו רק סורקים שמחוברים ישירות למחשב.
- מאובטח
boolean אופציונלי
החזרת סורקים שמשתמשים בהעברה מאובטחת, כמו USB או TLS.
GetOptionGroupsResponse
מאפיינים
- קבוצות
OptionGroup[] optional
אם
result
הואSUCCESS
, מוצגת רשימה של קבוצות אפשרויות לפי הסדר שסופק על ידי מנהל ההתקן של הסורק. - תוצאה
התוצאה של קבלת קבוצות האפשרויות. אם הערך של המאפיין הזה הוא
SUCCESS
, המאפייןgroups
יאוכלס. - scannerHandle
מחרוזת
אותו ה-handle של הסורק שהועבר אל
getOptionGroups
.
GetScannerListResponse
מאפיינים
- תוצאה
תוצאת הספירה. שימו לב: יכול להיות שיוחזרו תוצאות חלקיות גם אם השגיאה הזו מצוינת.
- סורקים
רשימה של סורקים שתואמים ל-
DeviceFilter
שצוין. הרשימה יכולה להיות ריקה.
OpenScannerResponse
מאפיינים
- options
אובייקט אופציונלי
אם
result
הואSUCCESS
, הפונקציה מספקת מיפוי של מפתח/ערך, כאשר המפתח הוא אפשרות ספציפית למכשיר והערך הוא מופע שלScannerOption
. - תוצאה
התוצאה של פתיחת הסורק. אם הערך של המאפיין הזה הוא
SUCCESS
, המאפייניםscannerHandle
ו-options
יאוכלסו. - scannerHandle
מחרוזת אופציונלי
אם
result
הואSUCCESS
, מחזיק (handle) של הסורק שאפשר להשתמש בו לפעולות נוספות. - scannerId
מחרוזת
מזהה הסורק הועבר אל
openScanner()
.
OperationResult
סוג enum שמציין את התוצאה של כל פעולה.
Enum
UNKNOWN
אירעה שגיאה כללית או שגיאה לא ידועה.
"SUCCESS"
הפעולה בוצעה בהצלחה.
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[] אופציונלי
- מקסימלי
מספר אופציונלי
- דק'
מספר אופציונלי
- quant
מספר אופציונלי
- סוג
OptionGroup
מאפיינים
- חברים
string[]
מערך של שמות אפשרויות בסדר שסופק על ידי הנהג.
- title
מחרוזת
מציין שם שאפשר להדפיס, למשל 'אפשרויות גיאומטריה'.
OptionSetting
מאפיינים
- שם
מחרוזת
מציין את שם האפשרות להגדרה.
- סוג
מציין את סוג הנתונים של האפשרות. סוג הנתונים המבוקש צריך להיות זהה לסוג הנתונים בפועל של האפשרות הבסיסית.
- ערך
string | number | boolean | number[] optional
מציין את הערך להגדרה. אם לא מגדירים את האפשרות הזו, המערכת מבקשת הגדרה אוטומטית לאפשרויות שמוגדרות כ
autoSettable
. סוג הנתונים שצוין עבורvalue
חייב להיות זהה ל-type
.
OptionType
סוג הנתונים של האפשרות.
Enum
"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()
כדי לאחזר את רשימת הקבוצות עם אפשרויות החברים שלהן.
Enum
UNITLESS
הערך הוא מספר ללא יחידה. לדוגמה, יכול להיות שזה ערך סף.
"PIXEL"
הערך הוא מספר פיקסלים, לדוגמה, מידות סריקה.
BIT
הערך הוא מספר הביטים, למשל עומק הצבע.
MM
הערך נמדד במילימטרים, למשל מידות סריקה.
"DPI"
הערך נמדד בנקודות לאינץ', לדוגמה, רזולוציה.
PERCENT
הערך הוא אחוז, למשל בהירות.
'MICROSECOND'
הערך נמדד במיקרו-שניות, למשל זמן החשיפה.
ReadScanDataResponse
מאפיינים
- נתונים
ArrayBuffer אופציונלי
אם
result
הואSUCCESS
, מכיל את המקטע הבא של נתוני תמונות שנסרקו. אםresult
הואEOF
, מכיל את נתוני התמונה הסרוקים האחרונים. - estimatedCompletion
מספר אופציונלי
אם הערך של
result
הואSUCCESS
, מוצגת הערכה של כמות הנתונים הכוללת שנסרקה ונמסרה עד עכשיו, בטווח 0 עד 100. - משימה
מחרוזת
השירות הזה מספק את ה-handle של העבודה שהועבר ל-
readScanData()
. - תוצאה
התוצאה של קריאת הנתונים. אם הערך שלו הוא
SUCCESS
, אזdata
מכיל את נתוני התמונה הבאים (יכול להיות שאין נתונים). אם הערך שלו הואEOF
,data
מכיל את נתוני התמונה האחרונים.
ScannerInfo
מאפיינים
- connectionType
מציין איך הסורק מחובר למחשב.
- deviceUuid
מחרוזת
לצורך התאמה לערכים אחרים של
ScannerInfo
שמפנים לאותו מכשיר פיזי. - imageFormats
string[]
מערך של סוגי MIME שאפשר לבקש עבור סריקות שמוחזרות.
- יצרן
מחרוזת
יצרן הסורק.
- מודל
מחרוזת
מודל הסורק אם הוא זמין, או תיאור כללי.
- שם
מחרוזת
שם קריא לאנשים של הסורק שיוצג בממשק המשתמש.
- protocolType
מחרוזת
תיאור קריא לאנשים של הפרוטוקול או מנהל ההתקן שמשמשים לגישה לסורק, כמו Mopria, WSD או epsonds. האפשרות הזו שימושית בעיקר כדי לאפשר למשתמש לבחור בין פרוטוקולים אם מכשיר תומך בכמה פרוטוקולים.
- scannerId
מחרוזת
המזהה של סורק ספציפי.
- מאובטח
בוליאני
אם הערך הוא true, אי אפשר ליירט את התעבורה של חיבור הסורק על ידי מאזין פסיבי, כמו TLS או USB.
ScannerOption
מאפיינים
- יכולת הגדרה
מציין אם אפשר לשנות את האפשרות ואיך.
- מגבלה
OptionConstraint optional
הגדרת
OptionConstraint
באפשרות הסורק הנוכחית. - תיאור
מחרוזת
תיאור ארוך יותר של האפשרות.
- isActive
בוליאני
מציין שהאפשרות פעילה וניתן להגדיר או לאחזר אותה. אם הערך הוא False, המאפיין
value
לא יוגדר. - isAdvanced
בוליאני
מציין שהאפשרות הזו לא תוצג בממשק המשתמש כברירת מחדל.
- isAutoSettable
בוליאני
יכול להיות שיוגדר אוטומטית על ידי מנהל ההתקן של הסורק.
- isDetectable
בוליאני
מציין שאפשר לזהות את האפשרות הזו מתוכנה.
- isEmulated
בוליאני
ההגדרה הזו מדומה על ידי מנהל ההתקן של הסורק אם היא מוגדרת כ-True.
- שם
מחרוזת
שם האפשרות באותיות קטנות של ASCII, מספרים ומקפים. אסור להשתמש בסימני ניקוד.
- title
מחרוזת
כותרת בת שורה אחת שאפשר להדפיס.
- סוג
סוג הנתונים שכלול במאפיין
value
, שנדרש להגדרת האפשרות הזו. - יחידה
יחידת המידה של האפשרות הזו.
- ערך
string | number | boolean | number[] optional
הערך הנוכחי של האפשרות, אם רלוונטי. שימו לב שסוג הנתונים של המאפיין הזה צריך להיות זהה לסוג הנתונים שצוין ב-
type
.
ScanOptions
מאפיינים
- maxImages
מספר אופציונלי
מספר התמונות הסרוקות המותר. ערך ברירת המחדל הוא 1.
- mimeTypes
string[] אופציונלי
סוגי ה-MIME שהמתקשר מקבל.
ScanResults
מאפיינים
- dataUrls
string[]
מערך של כתובות URL של תמונות נתונים בפורמט שאפשר להעביר כערך של 'src' לתג תמונה.
- mimeType
מחרוזת
סוג ה-MIME של
dataUrls
.
SetOptionResult
מאפיינים
- שם
מחרוזת
מציין את השם של האפשרות שהוגדרה.
- תוצאה
מציין את התוצאה של הגדרת האפשרות.
SetOptionsResponse
מאפיינים
- options
אובייקט אופציונלי
מיפוי מעודכן של זוגות מפתח/ערך משמות של אפשרויות לערכים של
ScannerOption
, שמכיל את ההגדרה החדשה אחרי ניסיון להגדיר את כל האפשרויות שסופקו. המבנה של המאפיין הזה זהה למבנה של המאפייןoptions
ב-OpenScannerResponse
.המאפיין הזה יוגדר גם אם חלק מהאפשרויות לא הוגדרו בהצלחה, אבל הוא לא יוגדר אם אחזור ההגדרה המעודכנת ייכשל (לדוגמה, אם הסורק ינותק באמצע הסריקה).
- תוצאות
מערך של תוצאות, אחת לכל
OptionSetting
שהועבר. - scannerHandle
מחרוזת
השירות הזה מספק את הטיפול בסורק שמועבר אל
setOptions()
.
StartScanOptions
מאפיינים
- פורמט
מחרוזת
מציין את סוג ה-MIME שבו יוחזרו הנתונים שנסרקו.
- maxReadSize
מספר אופציונלי
אם מציינים ערך שאינו אפס, הערך הזה מגביל את מספר הבייטים המקסימלי שנסרקו ומוחזרים בתשובה אחת של
readScanData
. הערך הקטן ביותר המותר הוא 32768 (32KB). אם לא מציינים את המאפיין הזה, גודל החלק שמוחזר יכול להיות גדול כמו התמונה הסרוקה כולה.
StartScanResponse
מאפיינים
- משימה
מחרוזת אופציונלי
אם
result
הואSUCCESS
, הפונקציה מספקת נקודת אחיזה שאפשר להשתמש בה כדי לקרוא נתוני סריקה או לבטל את העבודה. - תוצאה
התוצאה של הפעלת סריקה. אם הערך של המאפיין הזה הוא
SUCCESS
, המאפייןjob
יאוכלס. - scannerHandle
מחרוזת
מחזירה את אותו ה-handle של הסורק שהועבר אל
startScan()
.
Methods
cancelScan()
chrome.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
מבטל סריקה שהתחילה ומחזיר Promise שמוחזר עם אובייקט CancelScanResponse
. אם נעשה שימוש בפונקציית קריאה חוזרת, האובייקט מועבר אליה במקום זאת.
פרמטרים
- משימה
מחרוזת
ה-handle של משימת סריקה פעילה שהוחזר קודם מקריאה אל
startScan
.
החזרות
-
Promise<CancelScanResponse>
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
סוגרת את הסורק עם ה-handle שהועבר ומחזירה Promise שמסתיימת עם אובייקט CloseScannerResponse
. אם נעשה שימוש בפונקציית קריאה חוזרת, האובייקט מועבר אליה במקום זאת. גם אם התגובה לא מציינת שהפעולה בוצעה בהצלחה, ה-handle שסופק הופך ללא תקף ואין להשתמש בו לפעולות נוספות.
פרמטרים
- scannerHandle
מחרוזת
מציין את ה-handle של סורק פתוח שהוחזר קודם מקריאה ל-
openScanner
.
החזרות
-
Promise<CloseScannerResponse>
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
מקבל את שמות הקבוצות ואת אפשרויות החברים מסורק שנפתח קודם על ידי openScanner
. השיטה הזו מחזירה Promise שמסתיימת עם אובייקט GetOptionGroupsResponse
. אם מעבירים פונקציית קריאה חוזרת לפונקציה הזו, הנתונים שמוחזרים מועברים אליה במקום זאת.
פרמטרים
- scannerHandle
מחרוזת
ה-handle של סורק פתוח שהוחזר מקריאה אל
openScanner
.
החזרות
-
Promise<GetOptionGroupsResponse>
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
מקבל את רשימת הסורקים הזמינים ומחזיר Promise שמוביל לאובייקט GetScannerListResponse
. אם מעבירים פונקציית קריאה חוזרת לפונקציה הזו, הנתונים שמוחזרים מועברים אליה במקום זאת.
פרמטרים
- סינון
DeviceFilter
שמציין אילו סוגים של סורקים צריך להחזיר.
החזרות
-
Promise<GetScannerListResponse>
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
פותחת סורק לגישה בלעדית ומחזירה Promise שמוביל לאובייקט OpenScannerResponse
. אם מעבירים פונקציית קריאה חוזרת לפונקציה הזו, הנתונים שמוחזרים מועברים אליה במקום זאת.
פרמטרים
- scannerId
מחרוזת
המזהה של הסורק שרוצים לפתוח. הערך הזה הוא אחד מהערכים שמוחזרים מקריאה קודמת ל-
getScannerList
.
החזרות
-
Promise<OpenScannerResponse>
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
קוראת את הנתח הבא של נתוני התמונה הזמינים מתוך נקודת אחיזה של משימה פעילה, ומחזירה הבטחה (Promise) שמושלמת עם אובייקט ReadScanDataResponse
. אם נעשה שימוש בפונקציית קריאה חוזרת, האובייקט מועבר אליה במקום זאת.
**הערה:**תקין שתוצאת התגובה תהיה SUCCESS
עם חבר data
באורך אפס. המשמעות היא שהסורק עדיין פועל אבל אין עדיין נתונים נוספים מוכנים. המתקשר צריך להמתין זמן קצר ולנסות שוב.
כשעבודת הסריקה מסתיימת, ערך התוצאה בתגובה הוא EOF
. יכול להיות שהתשובה הזו תכיל ערך סופי של data
שאינו אפס.
פרמטרים
- משימה
מחרוזת
הכינוי של המשימה הפעילה הוחזר בעבר מ-
startScan
.
החזרות
-
Promise<ReadScanDataResponse>
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
מבצעת סריקת מסמך ומחזירה Promise שמוביל לאובייקט ScanResults
. אם מעבירים פונקציית קריאה חוזרת לפונקציה הזו, הנתונים שמוחזרים מועברים אליה במקום זאת.
פרמטרים
- options
אובייקט שמכיל פרמטרים של סריקה.
החזרות
-
Promise<ScanResults>
Chrome 96 ואילך
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
מגדירה אפשרויות בסורק שצוין ומחזירה הבטחה (Promise) שנפתרת עם אובייקט SetOptionsResponse
שמכיל את התוצאה של הניסיון להגדיר כל ערך בסדר של אובייקט OptionSetting
שהועבר. אם נעשה שימוש בפונקציית קריאה חוזרת, האובייקט מועבר אליה במקום זאת.
פרמטרים
- scannerHandle
מחרוזת
ה-handle של הסורק שרוצים להגדיר לו אפשרויות. הערך הזה צריך להיות ערך שהוחזר בעבר מקריאה אל
openScanner
. - options
רשימה של
OptionSetting
אובייקטים שיוחלו על הסורק.
החזרות
-
Promise<SetOptionsResponse>
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
מתחילה סריקה בסורק שצוין ומחזירה הבטחה (Promise) שמושלמת עם StartScanResponse
. אם נעשה שימוש בפונקציית קריאה חוזרת, האובייקט מועבר אליה במקום זאת. אם הקריאה מצליחה, התשובה כוללת את ה-handle של העבודה שאפשר להשתמש בו בקריאות הבאות כדי לקרוא את נתוני הסריקה או לבטל את הסריקה.
פרמטרים
- scannerHandle
מחרוזת
ידית של סורק פתוח. הערך הזה צריך להיות ערך שהוחזר בעבר מקריאה אל
openScanner
. - options
אובייקט
StartScanOptions
שמציין את האפשרויות שבהן יש להשתמש בסריקה. הערך של המאפייןStartScanOptions.format
צריך להיות זהה לאחד מהערכים שמוחזרים ב-ScannerInfo
של הסורק.
החזרות
-
Promise<StartScanResponse>