chrome.documentScan

תיאור

אפשר להשתמש ב-API chrome.documentScan כדי לאתר ולאחזר תמונות מסורקי מסמכים מצורפים.

ה-Document Scan API נועד לאפשר לאפליקציות ולתוספים להציג את התוכן של מסמכים מודפסים בסורק מסמכים מצורף.

הרשאות

documentScan

זמינות

Chrome 44 ואילך ChromeOS בלבד
הזמינות לחברי API שיתווספו מאוחר יותר תוצג למשתמשים האלה.

מושגים ושימוש

ממשק ה-API הזה תומך בשני אמצעים לסריקת מסמכים. אם התרחיש לדוגמה שלכם יכול לפעול עם כל סורק ולא נדרשת שליטה בהגדרה, אתם יכולים להשתמש בשיטה scan(). בתרחישים מורכבים יותר, נדרש שילוב של שיטות, שנתמכות רק ב-Chrome מגרסה 124 ואילך.

סריקה פשוטה

לתרחישים פשוטים לדוגמה, כלומר לתרחישים שיכולים לעבוד עם כל סורק ולא מצריכים שליטה בהגדרות, התקשרו אל scan(). השיטה הזו לוקחת אובייקט ScanOptions ומחזירה Promise שמסתיימת באובייקט ScanResults. היכולות של האפשרות הזו מוגבלות למספר הסריקות ולסוגי ה-MIME שיקבלו מבצע הקריאה. הסריקות מוחזרות ככתובות URL להצגה בתג <img> בממשק המשתמש.

סריקה מורכבת

סריקות מורכבות מתבצעות בשלושה שלבים, כפי שמתואר בקטע הזה. המתאר הזה לא מתאר כל ארגומנט שיטה או כל מאפיין שמוחזר בתגובה. הוא מיועד רק לתת מדריך כללי לכתיבת קוד סורק.

קמפיינים מסוג Discovery

  1. קוראים לפונקציה getScannerList(). הסורקים הזמינים מוחזרים בהבטחה (Promise) שנראית עם GetScannerListResponse.

    • אובייקט התגובה מכיל מערך של אובייקטים ScannerInfo.
    • המערך יכול להכיל מספר רשומות לסורק יחיד אם הסורק תומך במספר פרוטוקולים או שיטות חיבור.
  2. בוחרים סורק מהמערך שהוחזר ושומרים את הערך של המאפיין scannerId.

    כדאי להשתמש במאפיינים של אובייקטים נפרדים ב-ScannerInfo כדי להבחין בין כמה אובייקטים לאותו סורק. לאובייקטים מאותו סורק יהיה ערך זהה במאפיין deviceUuid. ScannerInfo מכיל גם את המאפיין imageFormats שמכיל מגוון של סוגי תמונות נתמכים.

הגדרת הסורק

  1. קוראים אל openScanner() ומעבירים את מזהה הסורק השמור. הפונקציה מחזירה Promise שמסתיימת ב-OpenScannerResponse. אובייקט התגובה מכיל:

    • נכס scannerHandle, שצריך לשמור.

    • מאפיין אפשרויות שמכיל מאפיינים ספציפיים לסורק, שצריך להגדיר. מידע נוסף זמין בקטע 'אחזור האפשרויות של הסורק'.

  2. (אופציונלי) אם אתם צריכים שהמשתמש יספק ערכים לאפשרויות הסורק, עליכם ליצור ממשק משתמש. תצטרכו את אפשרויות הסורק שקיבלתם בשלב הקודם, ותצטרכו לאחזר קבוצות של אפשרויות שסופקו על ידי הסורק. מידע נוסף זמין במאמר בניית ממשק משתמש.

  3. יוצרים מערך של אובייקטים OptionSetting באמצעות ערכים פרוגרמטיים או ערכים שסופקו על ידי המשתמשים. למידע נוסף, ראו 'הגדרת אפשרויות סורק'.

  4. כדי להגדיר אפשרויות לסורק, מעבירים את מערך האובייקטים OptionSetting אל setOptions(). היא מחזירה הבטחה שנפתרת באמצעות SetOptionsResponse. האובייקט הזה מכיל גרסה מעודכנת של אפשרויות הסורק שאוחזרו בשלב 1 של הגדרת הסורק.

    מכיוון ששינוי אפשרות אחת עלול לשנות את האילוצים של אפשרות אחרת, יכול להיות שתצטרכו לחזור על השלבים האלה כמה פעמים.

מתבצעת סריקה

  1. בונים אובייקט StartScanOptions ומעבירים אותו אל startScan(). הפונקציה מחזירה Promise שמתחילה עם StartScanResponse. המאפיין job הוא כינוי שבעזרתו אפשר לקרוא את נתוני הסריקה או לבטל את הסריקה.

  2. מעבירים את נקודת האחיזה של המשימה אל readScanData(). הפונקציה מחזירה Promise שמסתיימת באובייקט ReadScanDataResponse. אם הנתונים נקראו בהצלחה, המאפיין result שווה ל-SUCCESS והמאפיין data שלו מכיל ArrayBuffer עם חלק מהסריקה. שימו לב ש-estimatedCompletion מכיל אחוז משוער מתוך סך כל הנתונים שנמסרו עד עכשיו.

  3. חוזרים על השלב הקודם עד שהמאפיין 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

בהמתנה

תכונות

  • משימה

    מחרוזת

    מספקת את אותה כינוי למשימה שהועברה אל cancelScan().

  • תוצאה אחת

    תוצאת הסריקה של ביטול הקצה העורפי. אם התוצאה היא OperationResult.SUCCESS או OperationResult.CANCELLED, הסריקה בוטלה והסורק מוכן להתחיל סריקה חדשה. אם התוצאה היא OperationResult.DEVICE_BUSY , הסורק עדיין מעבד את הביטול המבוקש. המתקשר צריך להמתין זמן קצר ולנסות את הבקשה שוב. ערכי תוצאות אחרים מציינים שגיאה קבועה שאין לנסות שוב.

CloseScannerResponse

בהמתנה

תכונות

  • תוצאה אחת

    התוצאה של סגירת הסורק. גם אם הערך הזה אינו SUCCESS, הכינוי לא יהיה חוקי ואין להשתמש בו לפעולות נוספות.

  • scannerHandle

    מחרוזת

    אותה נקודת אחיזה לסורק שהועברה אל closeScanner.

Configurability

בהמתנה

איך ניתן לשנות אפשרות.

טיפוסים בני מנייה (enum)

"NOT_CONFIGURABLE"
האפשרות היא לקריאה בלבד.

"SOFTWARE_CONFIGURABLE"
ניתן להגדיר את האפשרות בתוכנה.

"HARDWARE_CONFIGURABLE"
המשתמשים יכולים להגדיר את האפשרות הזו אם הם מחליפים או לוחצים על לחצן בסורק.

ConnectionType

בהמתנה

מציין איך הסורק מחובר למחשב.

טיפוסים בני מנייה (enum)

"USB"

"NETWORK"

ConstraintType

בהמתנה

סוג הנתונים של האילוץ שמיוצג על ידי OptionConstraint.

טיפוסים בני מנייה (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

    מחרוזת

    אותה נקודת אחיזה לסורק שהועברה אל getOptionGroups.

GetScannerListResponse

בהמתנה

תכונות

  • תוצאה אחת

    תוצאת המספור. לידיעתכם, אנחנו יכולים להחזיר תוצאות חלקיות גם אם זה מצביע על שגיאה.

  • סורקים

    רשימה של סורקים אפשריים שתואמים ל-DeviceFilter שצוינה.

OpenScannerResponse

בהמתנה

תכונות

  • אפשרויות

    אובייקט אופציונלי

    אם המשתנה result הוא SUCCESS, הפונקציה מספקת מיפוי של ערך המפתח שבו המפתח הוא אפשרות ספציפית למכשיר והערך הוא מופע של ScannerOption.

  • תוצאה אחת

    התוצאה של פתיחת הסורק. אם הערך הזה הוא SUCCESS, המאפיינים scannerHandle ו-options יאוכלסו.

  • scannerHandle

    מחרוזת אופציונלי

    אם הערך של result הוא SUCCESS, נקודת אחיזה לסורק שאפשר להשתמש בה לפעולות נוספות.

  • scannerId

    מחרוזת

    מזהה הסורק הועבר אל 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[] optional

  • מקסימלי

    מספר אופציונלי

  • דקה

    מספר אופציונלי

  • כמות

    מספר אופציונלי

OptionGroup

בהמתנה

תכונות

  • חברים

    מחרוזת[]

    מערך של שמות של אפשרויות לפי הסדר שסופק על ידי הנהג.

  • title

    מחרוזת

    מספקת כותרת להדפסה, לדוגמה "אפשרויות גיאומטריות".

OptionSetting

בהמתנה

תכונות

  • name

    מחרוזת

    מציין את שם האפשרות להגדרה.

  • סוג

    מציין את סוג הנתונים של האפשרות. סוג הנתונים המבוקש חייב להתאים לסוג הנתונים האמיתי של אפשרות הבסיס.

  • value

    string|number|boolean|number[] optional

    מציין את הערך שיש להגדיר. אם לא קובעים במדיניות הזו שום ערך, ניתן לבקש הגדרה אוטומטית עבור אפשרויות שבהן autoSettable מופעל. סוג הנתונים שסופקו עבור value חייב להתאים ל-type.

OptionType

בהמתנה

סוג הנתונים של אפשרות.

טיפוסים בני מנייה (enum)

"UNKNOWN"
סוג הנתונים של האפשרות לא ידוע. ההגדרה של המאפיין value תבוטל.

"BOOL"
הנכס value יהיה אחד מהערכים truefalse.

"INT"
מספר שלם חתום של 32 ביט. המאפיין value יהיה ארוך או ארוך[], בהתאם לבחירה של האפשרות לקבל יותר מערך אחד.

"תוקנה"
כפולה בטווח -32768-32767.9999 עם רזולוציה של 1/65535. המאפיין value יהיה כפול או כפול[], בהתאם לבחירה של האפשרות לקבל יותר מערך אחד. ערכים כפולים שלא ניתן לייצג בדיוק יעוגלו לטווח ולדיוק הזמינים.

"STRING"
רצף של בייטים כלשהם מלבד NUL ('\0'). הנכס value יהיה DOMString.

"לחצן"
לאפשרות מהסוג הזה אין ערך. במקום זאת, הגדרת אפשרות מהסוג הזה גורמת לתופעת לוואי ספציפית לאפשרות במנהל ההתקן של הסורק. לדוגמה, אפשרות מסוג לחצנים יכולה לשמש מנהל התקן של הסורק כדי לספק אמצעי לבחירת ערכי ברירת מחדל או כדי להורות למזין מסמכים אוטומטי להתקדם לגיליון הנייר הבא.

"GROUP"
אפשרות קיבוץ. אין ערך. המדיניות הזו כלולה לצורך תאימות, אבל בדרך כלל היא לא מוחזרת בערך ScannerOption. אפשר להשתמש ב-getOptionGroups() כדי לאחזר את רשימת הקבוצות עם האפשרויות לחברות בהן.

OptionUnit

בהמתנה

מציין את סוג הנתונים עבור ScannerOption.unit.

טיפוסים בני מנייה (enum)

"UNITLless"
הערך הוא מספר ללא יחידה. לדוגמה, הוא יכול להיות ערך סף.

"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

    מחרוזת[]

    מערך של סוגי MIME שניתן לבקש עבור סריקות שהוחזרו.

  • יצרן

    מחרוזת

    יצרן הסורק.

  • model

    מחרוזת

    דגם הסורק, אם הוא זמין, או תיאור גנרי.

  • name

    מחרוזת

    שם קריא (לסורק) שיוצג בממשק המשתמש.

  • protocolType

    מחרוזת

    תיאור קריא (לבני אדם) של הפרוטוקול או הנהג/ת ששימשו לגישה לסורק, כמו Mopria , WSD או epsonds. זו אפשרות שימושית בעיקר כדי לאפשר למשתמש לבחור בין פרוטוקולים, אם מכשיר תומך במספר פרוטוקולים.

  • scannerId

    מחרוזת

    המזהה של סורק ספציפי.

  • מאובטח

    boolean

    אם הערך הוא true, מאזינים פסיביים כמו TLS (אבטחת שכבת התעבורה) או USB לא יכולים ליירט את ההעברה של החיבור לסורק.

ScannerOption

בהמתנה

תכונות

  • יכולת הגדרה

    מציינת אם ניתן לשנות את האפשרות ובאיזה אופן.

  • מגבלה

    OptionConstraint אופציונלי

    מגדיר את OptionConstraint באפשרות הסורק הנוכחית.

  • תיאור

    מחרוזת

    תיאור ארוך יותר של האפשרות.

  • isActive

    boolean

    מציין שהאפשרות פעילה וניתן להגדיר או לאחזר אותה. אם הערך הוא False, המאפיין value לא יוגדר.

  • isAdvanced

    boolean

    מציינת שהאפשרות הזו לא אמורה להופיע בממשק המשתמש כברירת מחדל.

  • isAutoSettable

    boolean

    ניתן להגדרה אוטומטית על ידי מנהל ההתקן של הסורק.

  • isDetectable

    boolean

    האפשרות הזאת מציינת שאפשר לזהות את האפשרות הזו באמצעות תוכנה.

  • isEmulated

    boolean

    אמולציה על ידי מנהל ההתקן של הסורק, אם הערך הוא true.

  • name

    מחרוזת

    שם האפשרות בפורמט של אותיות ASCII קטנות, מספרים ומקפים. אסור להשתמש בסימני ניקוד.

  • title

    מחרוזת

    כותרת בת שורה אחת להדפסה.

  • סוג

    סוג הנתונים שכלול בנכס value, שנדרש כדי להגדיר את האפשרות הזו.

  • יחידה

    יחידת המידה של האפשרות הזו.

  • value

    string|number|boolean|number[] optional

    הערך הנוכחי של האפשרות, אם רלוונטי. חשוב לשים לב שסוג הנתונים של המאפיין הזה חייב להתאים לסוג הנתונים שצוין ב-type.

ScanOptions

תכונות

  • maxImages

    מספר אופציונלי

    מספר התמונות הסרוקות המותר. ערך ברירת המחדל הוא 1.

  • mimeTypes

    string[] אופציונלי

    סוגי ה-MIME שמתקבלים על ידי מבצע הקריאה החוזרת.

ScanResults

תכונות

  • dataUrls

    מחרוזת[]

    מערך של כתובות URL של תמונות נתונים בטופס, שניתן להעביר כערך "src" לתג תמונה.

  • mimeType

    מחרוזת

    סוג MIME של dataUrls.

SetOptionResult

בהמתנה

תכונות

  • name

    מחרוזת

    מציין את שם האפשרות שהוגדרה.

  • תוצאה אחת

    מציין את התוצאה של הגדרת האפשרות.

SetOptionsResponse

בהמתנה

תכונות

  • אפשרויות

    אובייקט אופציונלי

    בוצע עדכון של מיפוי מפתח/ערך משמות של אפשרויות לערכי ScannerOption שמכילים את ההגדרות החדשות אחרי ניסיון להגדיר את כל האפשרויות שסופקו. הנכס הזה הוא באותו מבנה כמו הנכס options ב-OpenScannerResponse.

    המאפיין הזה יוגדר גם אם חלק מהאפשרויות לא הוגדרו בהצלחה, אבל הוא לא יוגדר אם אחזור של ההגדרה המעודכנת ייכשל (לדוגמה, אם הסורק מנותק באמצע הסריקה).

  • תוצאות

    מערך של תוצאות, אחת לכל OptionSetting שמועברת.

  • scannerHandle

    מחרוזת

    כאן מזינים את נקודת האחיזה של הסורק שהועברה אל setOptions().

StartScanOptions

בהמתנה

תכונות

  • פורמט

    מחרוזת

    המדיניות קובעת את סוג ה-MIME שאליו יש להחזיר נתונים סרוקים.

  • maxReadSize

    מספר אופציונלי

    אם צוין ערך שאינו אפס, היא מגבילה את המספר המקסימלי של בייטים שנסרקו שמוחזרים בתגובת readScanData אחת לאותו ערך. הערך הקטן ביותר המותר הוא 32,768 (32 KB). אם המאפיין הזה לא מצוין, הגודל של המקטע שמוחזר עשוי להיות גדול כמו כל התמונה הסרוקה.

StartScanResponse

בהמתנה

תכונות

  • משימה

    מחרוזת אופציונלי

    אם result הוא SUCCESS, מספקת כינוי שאפשר להשתמש בו כדי לקרוא נתוני סריקה או לבטל את המשימה.

  • תוצאה אחת

    התוצאה של התחלת הסריקה. אם הערך הזה הוא SUCCESS, המאפיין job יאוכלס.

  • scannerHandle

    מחרוזת

    מספקת את אותה נקודת אחיזה של הסורק שהועברה אל startScan().

שיטות

cancelScan()

Promise בהמתנה
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

ביטול סריקה שהתחילה ומחזירה הבטחה שמסתיימת עם אובייקט CancelScanResponse. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת.

פרמטרים

  • משימה

    מחרוזת

    הכינוי של משימת סריקה פעילה שהוחזרה בעבר משיחה אל startScan.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (response: CancelScanResponse)=>void

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

closeScanner()

Promise בהמתנה
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

סוגר את הסורק עם נקודת האחיזה המועברת ומחזיר הבטחה שמסתיימת עם אובייקט CloseScannerResponse. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת. גם אם התגובה לא מסתיימת בהצלחה, הכינוי שסופק הופך ללא תקין ואין להשתמש בו לפעולות נוספות.

פרמטרים

  • scannerHandle

    מחרוזת

    מציין את נקודת האחיזה של סורק פתוח שהוחזר בעבר מקריאה ל-openScanner.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (response: CloseScannerResponse)=>void

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

getOptionGroups()

Promise בהמתנה
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

הפונקציה מקבלת את שמות הקבוצות והאפשרויות של חברי הקבוצה מסורק שנפתח בעבר על ידי openScanner. השיטה הזו מחזירה הבטחה שמוגדרת עם אובייקט GetOptionGroupsResponse. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.

פרמטרים

  • scannerHandle

    מחרוזת

    נקודת האחיזה של סורק פתוח שהוחזר משיחה אל openScanner.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (response: GetOptionGroupsResponse)=>void

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

getScannerList()

Promise בהמתנה
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

הפונקציה מקבלת את רשימת הסורקים הזמינים ומחזירה Promise שמזהה את הפונקציה עם אובייקט GetScannerListResponse. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.

פרמטרים

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

openScanner()

Promise בהמתנה
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

פתיחת סורק לגישה בלעדית ומחזירה הבטחה שמסתיימת באובייקט OpenScannerResponse. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.

פרמטרים

  • scannerId

    מחרוזת

    המזהה של הסורק שצריך לפתוח. הערך הזה מוחזר מקריאה קודמת אל getScannerList.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (response: OpenScannerResponse)=>void

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

readScanData()

Promise בהמתנה
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

קורא את המקטע הבא של נתוני תמונה זמינים מכינוי משימה פעיל, ומחזיר Promise שמסתיימת עם אובייקט ReadScanDataResponse. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת.

**הערה:**התוצאה יכולה להיות SUCCESS עם חבר data באורך אפס. המשמעות היא שהסורק עדיין פועל אבל עדיין אין נתונים נוספים מוכנים. על המתקשר להמתין זמן קצר ולנסות שוב.

כשמשימת הסריקה תסתיים, הערך של התשובה יהיה EOF. התשובה הזו עשויה להכיל חבר סופי מסוג data שאינו אפס.

פרמטרים

  • משימה

    מחרוזת

    ידית העבודה הפעילה הוחזרה בעבר מ-startScan.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (response: ReadScanDataResponse)=>void

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

scan()

הבטחה
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

מבצע סריקת מסמך ומחזירה הבטחה שמסתיימת עם אובייקט ScanResults. אם קריאה חוזרת (callback) מועברת לפונקציה הזו, הנתונים המוחזרים מועברים אליה במקום זאת.

פרמטרים

  • אפשרויות

    אובייקט שמכיל פרמטרים של סריקה.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (result: ScanResults)=>void

החזרות

  • Promise<ScanResults>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

setOptions()

Promise בהמתנה
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

מגדירה אפשרויות בסורק שצוין ומחזירה Promise שמסתיימת באובייקט SetOptionsResponse שמכיל את התוצאה של הניסיון להגדיר כל ערך לפי הסדר של האובייקט OptionSetting שמועבר. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת.

פרמטרים

  • scannerHandle

    מחרוזת

    נקודת האחיזה של הסורק שעליו רוצים להגדיר אפשרויות. הערך הזה צריך להיות ערך שהוחזר בעבר משיחה אל openScanner.

  • אפשרויות

    רשימה של OptionSetting אובייקטים שיחולו על הסורק.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (response: SetOptionsResponse)=>void

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

startScan()

Promise בהמתנה
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

הפעלת סריקה בסורק שצוין ומחזירה הבטחה שמסתיימת עם StartScanResponse. אם נעשה שימוש בקריאה חוזרת, האובייקט מועבר אליו במקום זאת. אם השיחה הצליחה, התשובה תכלול כינוי למשימה. תוכלו להשתמש בה בקריאות הבאות כדי לקרוא את נתוני הסריקה או לבטל סריקה.

פרמטרים

  • scannerHandle

    מחרוזת

    נקודת האחיזה של סורק פתוח. הערך הזה צריך להיות ערך שהוחזר בעבר משיחה אל openScanner.

  • אפשרויות

    אובייקט StartScanOptions שמציין את האפשרויות שבהן צריך להשתמש לסריקה. המאפיין StartScanOptions.format חייב להתאים לאחת מהרשומות שהוחזרו ב-ScannerInfo של הסורק.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (response: StartScanResponse)=>void

החזרות

  • יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.