chrome.documentScan

ब्यौरा

अटैच किए गए दस्तावेज़ स्कैनर से इमेज खोजने और वापस पाने के लिए, chrome.documentScan API का इस्तेमाल करें.

दस्तावेज़ स्कैन एपीआई को इस तरह से डिज़ाइन किया गया है कि ऐप्लिकेशन और एक्सटेंशन, अटैच किए गए दस्तावेज़ स्कैन करने वाले ऐप्लिकेशन पर काग़ज़ के दस्तावेज़ों का कॉन्टेंट देख सकें.

अनुमतियां

documentScan

उपलब्धता

Chrome 44 और इसके बाद के वर्शन सिर्फ़ ChromeOS के लिए
बाद में जोड़े गए, एपीआई के सदस्यों की उपलब्धता की जानकारी उन सदस्यों में दिखती है.

सिद्धांत और इस्तेमाल

यह एपीआई, दस्तावेज़ों को स्कैन करने के दो तरीकों के साथ काम करता है. अगर आपके इस्तेमाल का उदाहरण किसी भी स्कैनर के साथ काम कर सकता है और उसके लिए कॉन्फ़िगरेशन को कंट्रोल करने की ज़रूरत नहीं है, तो scan() तरीके का इस्तेमाल करें. इस्तेमाल के ज़्यादा जटिल मामलों में, अलग-अलग तरीकों की ज़रूरत होती है, जो सिर्फ़ Chrome 124 और उसके बाद के वर्शन में काम करती हैं.

आसानी से स्कैन करने की सुविधा

आसान इस्तेमाल के मामलों में, scan() को कॉल करें. इसका मतलब है कि जो किसी भी स्कैनर के साथ काम कर सकते हैं और जिनके लिए कॉन्फ़िगरेशन को कंट्रोल करने की ज़रूरत नहीं होती. यह तरीका ScanOptions ऑब्जेक्ट को लेता है और प्रॉमिस दिखाता है. यह प्रॉमिस, ScanResults ऑब्जेक्ट से रिज़ॉल्व होता है. इस विकल्प का इस्तेमाल, स्कैन करने की संख्या और कॉलर के लिए स्वीकार किए जाने वाले MIME टाइप तक ही किया जा सकता है. स्कैन को यूआरएल के तौर पर दिखाया जाता है, ताकि यूज़र इंटरफ़ेस के <img> टैग में इसे दिखाया जा सके.

जटिल स्कैनिंग

इस सेक्शन में बताया गया है कि कॉम्प्लेक्स स्कैन तीन चरणों में पूरे किए जाते हैं. यह आउटलाइन हर तर्क तर्क या जवाब में दिखाई गई हर प्रॉपर्टी के बारे में नहीं बताती. इसका मकसद सिर्फ़ आपको स्कैनर कोड लिखने की सामान्य गाइड देना है.

डिस्कवरी कैंपेन

  1. getScannerList() पर कॉल करें. उपलब्ध स्कैनर ऐसे प्रॉमिस के तौर पर दिखाए जाते हैं जो GetScannerListResponse के साथ रिज़ॉल्व हो जाते हैं.

    • रिस्पॉन्स ऑब्जेक्ट में, ScannerInfo ऑब्जेक्ट का कलेक्शन होता है.
    • अगर किसी स्कैनर में एक से ज़्यादा प्रोटोकॉल या कनेक्शन के तरीके काम करते हैं, तो कलेक्शन में एक स्कैनर के लिए एक से ज़्यादा एंट्री हो सकती हैं.
  2. दिखाए गए कलेक्शन से कोई स्कैनर चुनें और उसकी scannerId प्रॉपर्टी की वैल्यू सेव करें.

    एक ही स्कैनर को एक से ज़्यादा ऑब्जेक्ट में अंतर करने के लिए, अलग-अलग ScannerInfo ऑब्जेक्ट की प्रॉपर्टी का इस्तेमाल करें. एक ही स्कैनर के ऑब्जेक्ट की deviceUuid प्रॉपर्टी के लिए एक ही वैल्यू होगी. ScannerInfo में एक imageFormats प्रॉपर्टी भी होती है. इसमें कई तरह की इमेज शामिल होती हैं.

स्कैनर का कॉन्फ़िगरेशन

  1. openScanner() पर कॉल करें और सेव किए गए स्कैनर आईडी को पास करें. यह ऐसा प्रॉमिस देता है जो OpenScannerResponse से रिज़ॉल्व हो जाता है. रिस्पॉन्स ऑब्जेक्ट में यह शामिल है:

    • scannerHandle प्रॉपर्टी, जिसे आपको सेव करना होगा.

    • विकल्प प्रॉपर्टी में स्कैनर की खास प्रॉपर्टी होती हैं. आपको इन्हें सेट करना होगा. ज़्यादा जानकारी के लिए, फ़ाइलें वापस पाने के लिए स्कैनर के विकल्प देखें.

  2. (ज़रूरी नहीं) अगर आपको उपयोगकर्ता से स्कैनर के विकल्पों की वैल्यू देनी है, तो यूज़र इंटरफ़ेस बनाएं. आपको पिछले चरण में दिए गए स्कैनर के विकल्पों की ज़रूरत होगी. साथ ही, आपको स्कैनर से मिले विकल्प के ग्रुप वापस लाने होंगे. ज़्यादा जानकारी के लिए, यूज़र इंटरफ़ेस बनाना लेख पढ़ें.

  3. प्रोग्राम के हिसाब से या उपयोगकर्ता से मिली वैल्यू का इस्तेमाल करके, OptionSetting ऑब्जेक्ट का कलेक्शन बनाएं. ज़्यादा जानकारी के लिए, स्कैनर के विकल्प सेट करें देखें.

  4. स्कैनर के विकल्प सेट करने के लिए, OptionSetting ऑब्जेक्ट के अरे को setOptions() पर पास करें. यह ऐसा प्रॉमिस दिखाता है जो SetOptionsResponse से रिज़ॉल्व होता है. इस ऑब्जेक्ट में, स्कैनर के कॉन्फ़िगरेशन के पहले चरण में मिले स्कैनर का अपडेट किया गया वर्शन है.

    एक विकल्प को बदलने से, दूसरे विकल्प पर लगी पाबंदियां बदल सकती हैं. इसलिए, आपको इन चरणों को कई बार दोहराना पड़ सकता है.

स्कैन किया जा रहा है

  1. एक StartScanOptions ऑब्जेक्ट बनाएं और उसे startScan() में पास करें. यह ऐसा प्रॉमिस देता है जो StartScanResponse के साथ रिज़ॉल्व हो जाता है. इसकी job प्रॉपर्टी एक हैंडल है. इसका इस्तेमाल, स्कैन डेटा पढ़ने या स्कैन रद्द करने के लिए किया जा सकता है.

  2. readScanData() को जॉब हैंडल दें. यह ऐसा प्रॉमिस देता है जो ReadScanDataResponse ऑब्जेक्ट की मदद से रिज़ॉल्व होता है. अगर डेटा सही तरीके से पढ़ा गया है, तो इसकी result प्रॉपर्टी SUCCESS के बराबर है. साथ ही, इसकी data प्रॉपर्टी में एक ऐसा ArrayBuffer प्रॉपर्टी है जिसमें स्कैन का कुछ हिस्सा मौजूद है. ध्यान दें कि estimatedCompletion में, अब तक डिलीवर किए गए कुल डेटा का अनुमानित प्रतिशत शामिल है.

  3. पिछला चरण तब तक दोहराएं, जब तक result प्रॉपर्टी की वैल्यू EOF के बराबर न हो या कोई गड़बड़ी न दिखे.

स्कैन पूरा होने के बाद, तीसरे चरण में सेव किए गए स्कैनर हैंडल से closeScanner() पर कॉल करें. यह ऐसा प्रॉमिस दिखाता है जो 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,
...
  },
...
}

यूज़र इंटरफ़ेस बनाना

हालांकि, इस एपीआई का इस्तेमाल करने की ज़रूरत नहीं है, लेकिन आप उपयोगकर्ता से किसी खास विकल्प के लिए वैल्यू चुन सकते हैं. इसके लिए, यूज़र इंटरफ़ेस (यूआई) होना ज़रूरी है. अटैच किए गए स्कैनर के विकल्प फिर से पाने के लिए, OpenScannerResponse (openScanner() ने खोला) का इस्तेमाल करें. इस बारे में पिछले सेक्शन में बताया गया है.

कुछ स्कैनर, डिवाइस के हिसाब से अलग-अलग तरह के विकल्पों का ग्रुप बनाते हैं. इनसे विकल्प के व्यवहार पर कोई असर नहीं पड़ता. हालांकि, इन ग्रुप के बारे में स्कैनर के प्रॉडक्ट दस्तावेज़ में बताया जा सकता है. इसलिए, ऐसे ग्रुप उपयोगकर्ता को दिखाए जाने चाहिए. getOptionGroups() पर कॉल करके, इन ग्रुप को वापस पाया जा सकता है. यह ऐसा प्रॉमिस देता है जो GetOptionGroupsResponse ऑब्जेक्ट की मदद से रिज़ॉल्व होता है. इसकी groups प्रॉपर्टी में, स्कैनर के हिसाब से बने ग्रुप का कलेक्शन होता है. OpenScannerResponse में दिख रहे विकल्पों को व्यवस्थित करने के लिए, इन ग्रुप की जानकारी का इस्तेमाल करें.

{
  scannerHandle: "123456",
  result: SUCCESS,
  groups: [
    {
      title: "Standard",
      members: [ "resolution", "mode", "source" ]
    }
  ]
}

जैसा कि Scanner कॉन्फ़िगरेशन में बताया गया है, एक विकल्प को बदलने से दूसरे विकल्प की सीमाएं बदल सकती हैं. इस वजह से, setOptionsResponse (setOptions() के लिए रिस्पॉन्स ऑब्जेक्ट) में एक और options प्रॉपर्टी मौजूद है. यूज़र इंटरफ़ेस को अपडेट करने के लिए इसका इस्तेमाल करें. इसके बाद, ज़रूरत के हिसाब से इस प्रोसेस को तब तक दोहराएं, जब तक सभी विकल्प सेट न हो जाएं.

स्कैनर के विकल्प सेट करना

OptionSetting ऑब्जेक्ट की कैटगरी को setOptions() में पास करके, स्कैनर के विकल्प सेट करें. उदाहरण के लिए, नीचे दिया गया एक अक्षर के साइज़ वाला पेज स्कैन करें सेक्शन देखें.

उदाहरण

पेज को ब्लॉब के तौर पर वापस पाना

इस उदाहरण में, स्कैनर से किसी पेज को ब्लॉब के तौर पर वापस पाने का एक तरीका दिखाया गया है. साथ ही, इसमें OperationResult की वैल्यू का इस्तेमाल करके, startScan() और readScanData() का इस्तेमाल दिखाया गया है.

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);
}

कॉन्फ़िगरेशन दिखाएं

जैसा कि हमने कहीं और बताया है, उपयोगकर्ता को स्कैनर के कॉन्फ़िगरेशन के विकल्प दिखाने के लिए, 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

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • नौकरी

    स्ट्रिंग

    वही जॉब हैंडल देता है जो cancelScan() को भेजा गया था.

  • नतीजा

    बैकएंड का स्कैन रद्द करने का नतीजा. अगर नतीजा OperationResult.SUCCESS या OperationResult.CANCELLED आता है, तो स्कैन रद्द कर दिया गया है और स्कैनर नया स्कैन शुरू करने के लिए तैयार है. अगर नतीजा OperationResult.DEVICE_BUSY मिलता है , तो इसका मतलब है कि स्कैनर अब भी रद्द करने के अनुरोध को प्रोसेस कर रहा है. कॉल करने वाले को कुछ समय इंतज़ार करना चाहिए और फिर से अनुरोध करने की कोशिश करनी चाहिए. अन्य नतीजे की वैल्यू से पता चलता है कि कोई गड़बड़ी हमेशा के लिए हुई है. ऐसा करने की कोशिश नहीं की जानी चाहिए.

CloseScannerResponse

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • नतीजा

    स्कैनर बंद करने का नतीजा. अगर यह वैल्यू SUCCESS न हो, तब भी हैंडल अमान्य होगा. साथ ही, किसी भी अन्य कार्रवाई के लिए इसका इस्तेमाल नहीं किया जाना चाहिए.

  • scannerHandle

    स्ट्रिंग

    वही स्कैनर हैंडल जो closeScanner को दिया गया था.

Configurability

Chrome 125 और इसके बाद के वर्शन

विकल्प को कैसे बदला जा सकता है.

Enum

"NOT_CONFIGURABLE"
यह विकल्प सिर्फ़ पढ़ने के लिए है.

"SOFTWARE_CONFIGURABLE"
इस विकल्प को सॉफ़्टवेयर में सेट किया जा सकता है.

"HARDWARE_CONFIGURABLE"
उपयोगकर्ता, स्कैनर पर बटन को टॉगल करके या दबाकर, यह विकल्प सेट कर सकता है.

ConnectionType

Chrome 125 और इसके बाद के वर्शन

इससे पता चलता है कि स्कैनर कैसे कंप्यूटर से कनेक्ट है.

Enum

"NETWORK"

ConstraintType

Chrome 125 और इसके बाद के वर्शन

डेटा टाइप के कंस्ट्रेंट को OptionConstraint से दिखाया जाता है.

Enum

"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

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • लोकल

    बूलियन ज़रूरी नहीं

    सिर्फ़ वे स्कैनर वापस करें जो सीधे कंप्यूटर से अटैच किए गए हों.

  • सुरक्षित

    बूलियन ज़रूरी नहीं

    सिर्फ़ वे स्कैनर वापस करें जो सुरक्षित ट्रांसपोर्ट का इस्तेमाल करते हैं, जैसे कि यूएसबी या TLS.

GetOptionGroupsResponse

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • ग्रुप

    OptionGroup[] ज़रूरी नहीं

    अगर result SUCCESS है, तो स्कैनर ड्राइवर के बताए गए क्रम के हिसाब से विकल्प ग्रुप की सूची उपलब्ध कराता है.

  • नतीजा

    विकल्प ग्रुप पाने का नतीजा. अगर इसकी वैल्यू SUCCESS है, तो groups प्रॉपर्टी में जानकारी अपने-आप भर जाएगी.

  • scannerHandle

    स्ट्रिंग

    वही स्कैनर हैंडल जो getOptionGroups को दिया गया था.

GetScannerListResponse

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • नतीजा

    इन्यूमिरेशन का नतीजा. ध्यान दें कि अगर इससे गड़बड़ी दिखती है, तब भी कुछ नतीजे दिखाए जा सकते हैं.

  • स्कैनर

    दिए गए DeviceFilter से मेल खाने वाले स्कैनर की शायद खाली सूची.

OpenScannerResponse

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • विकल्प

    ऑब्जेक्ट ज़रूरी नहीं

    अगर result SUCCESS है, तो की-वैल्यू मैपिंग उपलब्ध कराता है. यहां कुंजी, डिवाइस के हिसाब से विकल्प होती है और वैल्यू, ScannerOption का इंस्टेंस होती है.

  • नतीजा

    स्कैनर खोलने का नतीजा. अगर इसकी वैल्यू SUCCESS है, तो scannerHandle और options प्रॉपर्टी में जानकारी अपने-आप भर जाएगी.

  • scannerHandle

    स्ट्रिंग ज़रूरी नहीं

    अगर result की वैल्यू SUCCESS है, तो स्कैनर का हैंडल होगा. इसका इस्तेमाल, आगे की कार्रवाइयों के लिए किया जा सकेगा.

  • scannerId

    स्ट्रिंग

    स्कैनर आईडी openScanner() को पास किया गया.

OperationResult

Chrome 125 और इसके बाद के वर्शन

हर कार्रवाई के नतीजे को दिखाने वाली एनम.

Enum

"UNKNOWN"
कोई ऐसी गड़बड़ी हुई जिसकी जानकारी नहीं है या कोई सामान्य गड़बड़ी हुई है.

"सफल"
कार्रवाई पूरी हो गई.

"UNSUPPORTED"
यह कार्रवाई नहीं की जा सकती.

"रद्द किया गया"
कार्रवाई रद्द कर दी गई थी.

"DEVICE_BUSY"
डिवाइस व्यस्त है.

"अमान्य"
या तो डेटा या इस तरीके में पास किया गया तर्क मान्य नहीं है.

"WRONG_TYPE"
दिया गया मान, दिए गए विकल्प के लिए गलत डेटा टाइप है.

"EOF"
अब कोई डेटा उपलब्ध नहीं है.

"ADF_JAMMED"
दस्तावेज़ फ़ीडर जाम हो गया है.

"ADF_EMPTY"
दस्तावेज़ फ़ीडर खाली है.

"COVER_OPEN"
फ़्लैट किया हुआ कवर खुला है.

"IO_ERROR"
डिवाइस के साथ बातचीत करते समय कोई गड़बड़ी हुई.

"ACCESS_DENIED"
डिवाइस के लिए पुष्टि करना ज़रूरी है.

"NO_MEMORY"
Chromebook में ऑपरेशन को पूरा करने के लिए ज़रूरी मेमोरी उपलब्ध नहीं है.

"ऐक्सेस नहीं है"
डिवाइस उपलब्ध नहीं है.

"उपलब्ध नहीं है"
डिवाइस डिसकनेक्ट हो गया है.

"INTERNAL_ERROR"
कॉल करने वाले ऐप्लिकेशन के अलावा कहीं और गड़बड़ी हुई है.

OptionConstraint

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • सूची

    string[]|number[] optional

  • ज़्यादा से ज़्यादा

    नंबर ज़रूरी नहीं

  • कम से कम

    नंबर ज़रूरी नहीं

  • मात्रा

    नंबर ज़रूरी नहीं

  • टाइप

OptionGroup

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • सदस्य

    स्ट्रिंग[]

    ड्राइवर के दिए गए क्रम में विकल्प के नामों की कैटगरी.

  • title

    स्ट्रिंग

    प्रिंट किया जा सकने वाला शीर्षक देता हो, जैसे कि "ज्यामिति विकल्प".

OptionSetting

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • नाम

    स्ट्रिंग

    सेट किए जाने वाले विकल्प का नाम दिखाता है.

  • टाइप

    विकल्प के डेटा टाइप को दिखाता है. अनुरोध किए गए डेटा टाइप को, दिए गए विकल्प के असली डेटा टाइप से मेल खाना चाहिए.

  • value

    string|number|boolean|number[] optional

    सेट की जाने वाली वैल्यू दिखाता है. जिन विकल्पों के लिए autoSettable चालू है उनके लिए, अपने-आप लागू होने वाली सेटिंग का अनुरोध करने के लिए, इस नीति को सेट न करें. value के लिए दिया गया डेटा टाइप type से मेल खाना चाहिए.

OptionType

Chrome 125 और इसके बाद के वर्शन

किसी विकल्प का डेटा टाइप.

Enum

"UNKNOWN"
विकल्प का डेटा टाइप पता नहीं है. value प्रॉपर्टी अनसेट कर दी जाएगी.

"BOOL"
value प्रॉपर्टी, truefalse में से एक होगी.

"INT"
साइन किया गया 32-बिट वाला पूर्णांक. value प्रॉपर्टी लंबी होगी[], जो इस बात पर निर्भर करेगी कि विकल्प में एक से ज़्यादा वैल्यू हैं या नहीं.

"ठीक किया गया"
डबल रेंज -32768-32767.9999 में, जिसका रिज़ॉल्यूशन 1/65535 है. इस प्रॉपर्टी के लिए, value प्रॉपर्टी डबल या डबल[] होगी. यह इस बात पर निर्भर करता है कि विकल्प में एक से ज़्यादा वैल्यू दी गई हैं या नहीं. जिन डबल वैल्यू को पूरी तरह से नहीं दिखाया जा सकता उन्हें उपलब्ध रेंज और सटीक जानकारी में बदल दिया जाएगा.

"STRING"
NUL ('\0') को छोड़कर किसी भी बाइट का क्रम. value प्रॉपर्टी एक DOMString होगी.

"BUTTON"
इस तरह के एक विकल्प की कोई वैल्यू नहीं है. इसके बजाय, इस तरह का विकल्प सेट करने से स्कैनर ड्राइवर में विकल्प के हिसाब से खराब असर पड़ता है. उदाहरण के लिए, स्कैनर ड्राइवर, बटन टाइप किए गए बटन के विकल्प का इस्तेमाल करके, डिफ़ॉल्ट वैल्यू चुनने के तरीके उपलब्ध करा सकता है या अपने-आप दस्तावेज़ फ़ीडर को पेपर की अगली शीट पर जाने के लिए कह सकता है.

"GROUP"
ग्रुपिंग विकल्प. कोई वैल्यू नहीं. इसे काम करने के लिए शामिल किया गया है. हालांकि, आम तौर पर इसे ScannerOption वैल्यू में नहीं दिखाया जाएगा. getOptionGroups() का इस्तेमाल करके, सदस्यों के लिए उपलब्ध विकल्पों के साथ ग्रुप की सूची फिर से पाएं.

OptionUnit

Chrome 125 और इसके बाद के वर्शन

इससे पता चलता है कि ScannerOption.unit का डेटा किस तरह का है.

Enum

"UNITसेट"
वैल्यू, यूनिटलेस नंबर है. उदाहरण के लिए, यह एक थ्रेशोल्ड हो सकता है.

"PIXEL"
वैल्यू कई पिक्सल में होती है. उदाहरण के लिए, स्कैन डाइमेंशन.

"BIT"
वैल्यू बिट की संख्या है, जैसे कि रंग की गहराई.

"MM"
वैल्यू, मिलीमीटर में मापी जाती है. उदाहरण के लिए, स्कैन डाइमेंशन.

"डीपीआई"
वैल्यू को बिंदु प्रति इंच के हिसाब से मापा जाता है. उदाहरण के लिए, रिज़ॉल्यूशन.

"PERCENT"
वैल्यू प्रतिशत है. उदाहरण के लिए, स्क्रीन की रोशनी.

"MICROSECOND"
वैल्यू को माइक्रोसेकंड में मापा जाता है. उदाहरण के लिए, एक्सपोज़र का समय.

ReadScanDataResponse

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • डेटा

    arrayBuffer ज़रूरी नहीं

    अगर result SUCCESS है, तो इसमें स्कैन किए गए इमेज डेटा का अगला हिस्सा होता है. अगर result EOF है, तो इसमें स्कैन किए गए इमेज डेटा का आखिरी हिस्सा होता है.

  • estimatedCompletion

    नंबर ज़रूरी नहीं

    अगर result SUCCESS है, तो 0 से 100 की रेंज में, स्कैन का अब तक का कुल डेटा डिलीवर हो चुका है.

  • नौकरी

    स्ट्रिंग

    readScanData() को भेजा गया जॉब हैंडल देता है.

  • नतीजा

    डेटा पढ़ने का नतीजा. अगर इसकी वैल्यू SUCCESS है, तो data में इमेज डेटा का next (शायद शून्य हो) वाला वह हिस्सा शामिल होगा जो पढ़ने के लिए तैयार है. अगर इसकी वैल्यू EOF है, तो data में इमेज डेटा का आखिरी हिस्सा शामिल होता है.

ScannerInfo

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • connectionType

    इससे पता चलता है कि स्कैनर कैसे कंप्यूटर से कनेक्ट है.

  • deviceUuid

    स्ट्रिंग

    एक ही फ़िज़िकल डिवाइस पर ले जाने वाली अन्य ScannerInfo एंट्री से मैच करने के लिए.

  • imageFormats

    स्ट्रिंग[]

    MIME टाइप की कैटगरी जिसका अनुरोध, लौटाए गए स्कैन के लिए किया जा सकता है.

  • निर्माता

    स्ट्रिंग

    स्कैनर बनाने वाली कंपनी.

  • model

    स्ट्रिंग

    स्कैनर का मॉडल उपलब्ध होने पर या उसके बारे में सामान्य जानकारी.

  • नाम

    स्ट्रिंग

    स्कैनर का यूज़र इंटरफ़ेस (यूआई) में दिखने वाला नाम, जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है.

  • protocolType

    स्ट्रिंग

    स्कैनर को ऐक्सेस करने के लिए इस्तेमाल किए जाने वाले प्रोटोकॉल या ड्राइवर की जानकारी, जिसे कोई भी व्यक्ति आसानी से पढ़ सके. जैसे, Mopria, WSD या epsonds. अगर किसी डिवाइस पर एक से ज़्यादा प्रोटोकॉल काम करते हैं, तो यह तरीका खास तौर पर उपयोगकर्ता को प्रोटोकॉल में से किसी एक को चुनने के लिए इस्तेमाल किया जाता है.

  • scannerId

    स्ट्रिंग

    किसी खास स्कैनर का आईडी.

  • सुरक्षित

    boolean

    सही होने पर, स्कैनर के कनेक्शन को TLS या यूएसबी जैसे पैसिव लिसनर से नहीं रोका जा सकता.

ScannerOption

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • कॉन्फ़िगर करने की क्षमता

    यह बताता है कि विकल्प को बदला जा सकता है या नहीं और अगर किया जा सकता है, तो कैसे.

  • कंस्ट्रेंट

    OptionConstraint ज़रूरी नहीं है

    स्कैनर के मौजूदा विकल्प के बारे में OptionConstraint के बारे में बताता है.

  • ब्यौरा

    स्ट्रिंग

    विकल्प के बारे में ज़्यादा जानकारी.

  • isActive

    boolean

    इससे पता चलता है कि विकल्प चालू है और इसे सेट या वापस लाया जा सकता है. गलत होने पर, value प्रॉपर्टी सेट नहीं की जाएगी.

  • isAdvanced

    boolean

    इससे पता चलता है कि यूज़र इंटरफ़ेस (यूआई) को यह विकल्प डिफ़ॉल्ट रूप से नहीं दिखाना चाहिए.

  • isAutoSettable

    boolean

    स्कैनर ड्राइवर के ज़रिए अपने-आप सेट किया जा सकता है.

  • isDetectable

    boolean

    इससे पता चलता है कि इस विकल्प का पता सॉफ़्टवेयर से लगाया जा सकता है.

  • isEmulated

    boolean

    सही होने पर स्कैनर ड्राइवर ने एम्युलेट किया.

  • नाम

    स्ट्रिंग

    अंग्रेज़ी के छोटे अक्षरों, अंकों, और डैश का इस्तेमाल करके विकल्प का नाम. खास तरह के चिह्नों की अनुमति नहीं है.

  • title

    स्ट्रिंग

    प्रिंट किया जा सकने वाला एक पंक्ति का शीर्षक.

  • टाइप

    value प्रॉपर्टी में शामिल डेटा टाइप, जो इस विकल्प को सेट करने के लिए ज़रूरी है.

  • यूनिट

    इस विकल्प के लिए मेज़रमेंट की इकाई.

  • value

    string|number|boolean|number[] optional

    अगर ज़रूरी हो, तो विकल्प की मौजूदा वैल्यू. ध्यान दें कि इस प्रॉपर्टी का डेटा टाइप, type में दिए गए डेटा टाइप से मेल खाना चाहिए.

ScanOptions

प्रॉपर्टी

  • maxImages

    नंबर ज़रूरी नहीं

    स्कैन की गई इमेज की संख्या. डिफ़ॉल्ट वैल्यू 1 होती है.

  • mimeTypes

    स्ट्रिंग[] ज़रूरी नहीं है

    ऐसे MIME टाइप जिन्हें कॉल करने वाला (कॉलर) स्वीकार करता है.

ScanResults

प्रॉपर्टी

  • dataUrls

    स्ट्रिंग[]

    इमेज के डेटा के यूआरएल का कलेक्शन, ऐसे फ़ॉर्मैट में होता है जिसे किसी इमेज टैग को "src" वैल्यू के रूप में पास किया जा सकता है.

  • mimeType

    स्ट्रिंग

    dataUrls का MIME प्रकार.

SetOptionResult

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • नाम

    स्ट्रिंग

    सेट किए गए विकल्प का नाम दिखाता है.

  • नतीजा

    विकल्प सेट करने का नतीजा दिखाता है.

SetOptionsResponse

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • विकल्प

    ऑब्जेक्ट ज़रूरी नहीं

    दिए गए सभी विकल्पों को सेट करने की कोशिश करने के बाद, विकल्प के नामों से लेकर नए कॉन्फ़िगरेशन वाली ScannerOption वैल्यू पर अपडेट की गई की-वैल्यू मैपिंग. इसका स्ट्रक्चर, OpenScannerResponse की options प्रॉपर्टी जैसा ही है.

    कुछ विकल्प सेट न होने पर भी, इस प्रॉपर्टी को सेट कर दिया जाएगा. हालांकि, अपडेट किए गए कॉन्फ़िगरेशन के न मिलने पर, इस प्रॉपर्टी को सेट नहीं किया जाएगा. उदाहरण के लिए, स्कैन करने के दौरान ही स्कैनर डिसकनेक्ट हो जाएगा.

  • नतीजे

    नतीजों की कैटगरी, हर OptionSetting पास होने वाले हर व्यक्ति के लिए एक.

  • scannerHandle

    स्ट्रिंग

    setOptions() को भेजा गया स्कैनर हैंडल उपलब्ध कराता है.

StartScanOptions

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • फ़ॉर्मैट

    स्ट्रिंग

    यह बताता है कि स्कैन किया गया डेटा MIME टाइप में दिया जाए या नहीं.

  • maxReadSize

    नंबर ज़रूरी नहीं

    अगर कोई वैल्यू शून्य नहीं है, तो उस वैल्यू के लिए एक readScanData रिस्पॉन्स में, स्कैन किए गए ज़्यादा से ज़्यादा बाइट को सीमित किया जा सकता है. सबसे छोटी वैल्यू 32768 (32 केबी) होनी चाहिए. अगर इस प्रॉपर्टी के बारे में जानकारी नहीं दी गई है, तो लौटाए गए हिस्से का साइज़, स्कैन की गई पूरी इमेज के बराबर हो सकता है.

StartScanResponse

Chrome 125 और इसके बाद के वर्शन

प्रॉपर्टी

  • नौकरी

    स्ट्रिंग ज़रूरी नहीं

    अगर result की वैल्यू SUCCESS है, तो हैंडल उपलब्ध कराता है. इसका इस्तेमाल, स्कैन किए गए डेटा को पढ़ने या जॉब रद्द करने के लिए किया जा सकता है.

  • नतीजा

    स्कैन शुरू करने का नतीजा. अगर इसकी वैल्यू SUCCESS है, तो job प्रॉपर्टी में जानकारी अपने-आप भर जाएगी.

  • scannerHandle

    स्ट्रिंग

    वही स्कैनर हैंडल देता है जो startScan() को भेजा गया था.

तरीके

cancelScan()

Promise Chrome 125+
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

शुरू किए गए स्कैन को रद्द करता है और CancelScanResponse ऑब्जेक्ट के साथ रिज़ॉल्व होने वाला प्रॉमिस दिखाता है. अगर कॉलबैक का इस्तेमाल किया जाता है, तो ऑब्जेक्ट को पास कर दिया जाता है.

पैरामीटर

  • नौकरी

    स्ट्रिंग

    startScan पर किए गए कॉल से, स्कैन किए गए काम का हैंडल.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: CancelScanResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

closeScanner()

Promise Chrome 125+
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

पास किए गए हैंडल वाले स्कैनर को बंद करता है और CloseScannerResponse ऑब्जेक्ट के साथ रिज़ॉल्व होने वाला प्रॉमिस देता है. अगर कॉलबैक का इस्तेमाल किया जाता है, तो ऑब्जेक्ट को पास कर दिया जाता है. भले ही रिस्पॉन्स सफल न हो, लेकिन दिया गया हैंडल अमान्य हो जाता है. इसलिए, आगे की कार्रवाइयों के लिए इसका इस्तेमाल नहीं किया जाना चाहिए.

पैरामीटर

  • scannerHandle

    स्ट्रिंग

    इस नीति की मदद से, खुले हुए स्कैनर के हैंडल के बारे में जानकारी मिलती है. हालांकि, यह डेटा openScanner पर किए गए कॉल के ज़रिए वापस भेजा जाता है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: CloseScannerResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

getOptionGroups()

Promise Chrome 125+
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

openScanner के ज़रिए पहले खोले गए स्कैनर से ग्रुप के नाम और सदस्य के विकल्पों की जानकारी मिलती है. यह तरीका ऐसा प्रॉमिस देता है जो GetOptionGroupsResponse ऑब्जेक्ट की मदद से रिज़ॉल्व होता है. अगर इस फ़ंक्शन को कॉलबैक पास किया जाता है, तो इसके बजाय लौटाए गए डेटा को पास किया जाएगा.

पैरामीटर

  • scannerHandle

    स्ट्रिंग

    openScanner को किए गए कॉल से, खुले हुए स्कैनर का हैंडल.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: GetOptionGroupsResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

getScannerList()

Promise Chrome 125+
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

उपलब्ध स्कैनर की सूची फ़ेच करता है और ऐसा प्रॉमिस देता है जो GetScannerListResponse ऑब्जेक्ट के साथ रिज़ॉल्व हो जाता है. अगर इस फ़ंक्शन को कॉलबैक पास किया जाता है, तो इसके बजाय लौटाए गए डेटा को पास किया जाएगा.

पैरामीटर

  • फ़िल्‍टर

    इस DeviceFilter से पता चलता है कि किस तरह के स्कैनर दिखाए जाने चाहिए.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: GetScannerListResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

openScanner()

Promise Chrome 125+
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

खास ऐक्सेस के लिए स्कैनर खोलता है और OpenScannerResponse ऑब्जेक्ट से रिज़ॉल्व होने वाला प्रॉमिस दिखाता है. अगर इस फ़ंक्शन को कॉलबैक पास किया जाता है, तो इसके बजाय लौटाए गए डेटा को पास किया जाएगा.

पैरामीटर

  • scannerId

    स्ट्रिंग

    खोले जाने वाले स्कैनर का आईडी. यह वैल्यू, getScannerList को किए गए पिछले कॉल से मिली है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: OpenScannerResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

readScanData()

Promise Chrome 125+
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

किसी ऐक्टिव जॉब हैंडल से उपलब्ध इमेज डेटा के अगले हिस्से को पढ़ता है और ReadScanDataResponse ऑब्जेक्ट के साथ रिज़ॉल्व होने वाला प्रॉमिस देता है. अगर कॉलबैक का इस्तेमाल किया जाता है, तो ऑब्जेक्ट को पास कर दिया जाता है.

**ध्यान दें:**यह जवाब तब ही मान्य होता है, जब data मेंबर की शून्य लंबाई वाला SUCCESS हो. इसका मतलब है कि स्कैनर अब भी काम कर रहा है, लेकिन इसके लिए अतिरिक्त डेटा तैयार नहीं है. कॉल करने वाले को कुछ देर इंतज़ार करना चाहिए और फिर से कोशिश करनी चाहिए.

स्कैन पूरा होने पर, रिस्पॉन्स की वैल्यू EOF होगी. इस जवाब में शून्य data सदस्य नहीं हो सकता.

पैरामीटर

  • नौकरी

    स्ट्रिंग

    ऐक्टिव जॉब हैंडल, पहले startScan से मिला था.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: ReadScanDataResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

scan()

वादा
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

दस्तावेज़ को स्कैन करता है और ScanResults ऑब्जेक्ट की मदद से रिज़ॉल्व होने वाला प्रॉमिस दिखाता है. अगर इस फ़ंक्शन में कोई कॉलबैक पास किया जाता है, तो इसके बजाय वापस दिया गया डेटा पास किया जाता है.

पैरामीटर

  • विकल्प

    स्कैन पैरामीटर वाला ऑब्जेक्ट.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (result: ScanResults)=>void

लौटाए गए प्रॉडक्ट

  • Promise<ScanResults>

    Chrome 96 के बाद के वर्शन

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

setOptions()

Promise Chrome 125+
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

बताए गए स्कैनर पर विकल्प सेट करता है और ऐसा प्रॉमिस देता है जो पास किए गए OptionSetting ऑब्जेक्ट के क्रम में हर वैल्यू को सेट करने की कोशिश करने वाले SetOptionsResponse ऑब्जेक्ट के साथ रिज़ॉल्व होता है. अगर कॉलबैक का इस्तेमाल किया जाता है, तो ऑब्जेक्ट को पास कर दिया जाता है.

पैरामीटर

  • scannerHandle

    स्ट्रिंग

    विकल्पों को सेट करने के लिए स्कैनर का हैंडल. यह एक ऐसी वैल्यू होनी चाहिए जो पहले openScanner को किए गए कॉल से वापस मिली हो.

  • विकल्प

    स्कैनर पर लागू किए जाने वाले OptionSetting ऑब्जेक्ट की सूची.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: SetOptionsResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

startScan()

Promise Chrome 125+
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

बताए गए स्कैनर पर स्कैन शुरू करता है और StartScanResponse के साथ रिज़ॉल्व होने वाला प्रॉमिस देता है. अगर कॉलबैक का इस्तेमाल किया जाता है, तो ऑब्जेक्ट को पास कर दिया जाता है. कॉल पूरा होने पर, जवाब में एक जॉब हैंडल शामिल होता है. इसका इस्तेमाल बाद के कॉल में, स्कैन डेटा पढ़ने या स्कैन को रद्द करने के लिए किया जा सकता है.

पैरामीटर

  • scannerHandle

    स्ट्रिंग

    खुले हुए स्कैनर का हैंडल. यह एक ऐसी वैल्यू होनी चाहिए जो पहले openScanner को किए गए कॉल से वापस मिली हो.

  • विकल्प

    StartScanOptions ऑब्जेक्ट, जिसमें स्कैन के लिए इस्तेमाल किए जाने वाले विकल्पों की जानकारी दी गई है. StartScanOptions.format प्रॉपर्टी, स्कैनर के ScannerInfo में दी गई किसी एक एंट्री से मेल खानी चाहिए.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (response: StartScanResponse)=>void

लौटाए गए प्रॉडक्ट

  • प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.