chrome.documentScan

ब्यौरा

अटैच किए गए दस्तावेज़ स्कैनर से इमेज ढूंढने और उन्हें वापस पाने के लिए, chrome.documentScan एपीआई का इस्तेमाल करें.

Document Scan 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" ]
    }
  ]
}

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

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

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

उदाहरण

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

इस उदाहरण में, स्कैनर से किसी पेज को ब्लॉब के तौर पर वापस पाने का एक तरीका बताया गया है. साथ ही, 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

"UNSPECIFIED"

"USB"

"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"
कोई ऐसी गड़बड़ी हुई जिसकी जानकारी नहीं है.

"SUCCESS"
कार्रवाई पूरी हो गई.

"यह सुविधा काम नहीं करती"
यह कार्रवाई काम नहीं करती.

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

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

"INVALID"
या तो डेटा या फिर मेथड में इस्तेमाल किया गया आर्ग्युमेंट अमान्य है.

"WRONG_TYPE"
आपने जो वैल्यू दी है वह मौजूदा विकल्प के लिए गलत डेटा टाइप है.

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

"ADF_JAMMED"
डॉक्यूमेंट फ़ीडर जाम हो गया है.

"ADF_EMPTY"
डॉक्यूमेंट फ़ीडर खाली है.

"COVER_OPEN"
फ़्लैटबेड कवर खुला है.

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

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

"NO_MEMORY"
कार्रवाई पूरी करने के लिए, Chromebook में ज़रूरत के मुताबिक मेमोरी उपलब्ध नहीं है.

"UNREACHABLE"
डिवाइस से कनेक्ट नहीं किया जा सकता.

"मौजूद नहीं है"
डिवाइस डिसकनेक्ट हो गया है.

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

OptionConstraint

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

प्रॉपर्टी

  • सूची

    string[] | number[] ज़रूरी नहीं

  • अधिकतम

    number ज़रूरी नहीं

  • कम से कम

    number ज़रूरी नहीं

  • quant

    number ज़रूरी नहीं

  • टाइप

OptionGroup

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

प्रॉपर्टी

  • सदस्य

    string[]

    ड्राइवर के दिए गए क्रम में, विकल्पों के नामों की सूची.

  • title

    स्ट्रिंग

    प्रिंट किया जा सकने वाला टाइटल उपलब्ध कराता है. उदाहरण के लिए, "ज्यामिति के विकल्प".

OptionSetting

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

प्रॉपर्टी

  • नाम

    स्ट्रिंग

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

  • टाइप

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

  • value

    string | number | boolean | number[] ज़रूरी नहीं

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

OptionType

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

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

Enum

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

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

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

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

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

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

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

OptionUnit

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

ScannerOption.unit के लिए डेटा टाइप दिखाता है.

Enum

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

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

"BIT"
वैल्यू, बिट की संख्या होती है. उदाहरण के लिए, कलर डेप्थ.

"MM"
इस वैल्यू को मिलीमीटर में मेज़र किया जाता है. जैसे, स्कैन के डाइमेंशन.

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

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

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

ReadScanDataResponse

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

प्रॉपर्टी

  • डेटा

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

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

  • estimatedCompletion

    number ज़रूरी नहीं

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

  • नौकरी

    स्ट्रिंग

    readScanData() को पास किया गया जॉब हैंडल दिखाता है.

  • नतीजा

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

ScannerInfo

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

प्रॉपर्टी

  • connectionType

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

  • deviceUuid

    स्ट्रिंग

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

  • imageFormats

    string[]

    MIME टाइप का एक कलेक्शन, जिसका इस्तेमाल करके स्कैन किए गए दस्तावेज़ों को वापस पाने का अनुरोध किया जा सकता है.

  • निर्माता

    स्ट्रिंग

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

  • मॉडल

    स्ट्रिंग

    स्कैनर का मॉडल, अगर वह उपलब्ध है या सामान्य जानकारी.

  • नाम

    स्ट्रिंग

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

  • protocolType

    स्ट्रिंग

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

  • scannerId

    स्ट्रिंग

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

  • सुरक्षित

    बूलियन

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

ScannerOption

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

प्रॉपर्टी

  • कॉन्फ़िगर करने की सुविधा

    इससे पता चलता है कि विकल्प में बदलाव किया जा सकता है या नहीं. साथ ही, बदलाव करने का तरीका भी पता चलता है.

  • सीमा

    OptionConstraint ज़रूरी नहीं

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

  • ब्यौरा

    स्ट्रिंग

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

  • isActive

    बूलियन

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

  • isAdvanced

    बूलियन

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

  • isAutoSettable

    बूलियन

    स्कैनर ड्राइवर इसे अपने-आप सेट कर सकता है.

  • isDetectable

    बूलियन

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

  • isEmulated

    बूलियन

    अगर यह सही है, तो स्कैनर ड्राइवर इसे एमुलेट करता है.

  • नाम

    स्ट्रिंग

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

  • title

    स्ट्रिंग

    प्रिंट किया जा सकने वाला एक लाइन का टाइटल.

  • टाइप

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

  • यूनिट

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

  • value

    string | number | boolean | number[] ज़रूरी नहीं

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

ScanOptions

प्रॉपर्टी

  • maxImages

    number ज़रूरी नहीं

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

  • mimeTypes

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

    कॉलर के स्वीकार किए जाने वाले MIME टाइप.

ScanResults

प्रॉपर्टी

  • dataUrls

    string[]

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

  • mimeType

    स्ट्रिंग

    dataUrls का MIME टाइप.

SetOptionResult

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

प्रॉपर्टी

  • नाम

    स्ट्रिंग

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

  • नतीजा

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

SetOptionsResponse

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

प्रॉपर्टी

  • विकल्प

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

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

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

  • नतीजे

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

  • scannerHandle

    स्ट्रिंग

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

StartScanOptions

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

प्रॉपर्टी

  • फ़ॉर्मैट

    स्ट्रिंग

    स्कैन किए गए डेटा को दिखाने के लिए MIME टाइप तय करता है.

  • maxReadSize

    number ज़रूरी नहीं

    अगर शून्य से ज़्यादा की कोई वैल्यू दी जाती है, तो एक 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

रिटर्न

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

closeScanner()

Promise Chrome 125 और उसके बाद के वर्शन के लिए
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

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

पैरामीटर

  • scannerHandle

    स्ट्रिंग

    किसी ऐसे स्कैनर का हैंडल बताता है जो पहले openScanner पर कॉल करने पर खुला था.

  • कॉलबैक

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

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

    (response: CloseScannerResponse) => void

रिटर्न

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

getOptionGroups()

Promise Chrome 125 और उसके बाद के वर्शन के लिए
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

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

पैरामीटर

  • scannerHandle

    स्ट्रिंग

    कॉल से openScanner पर वापस आकर, खुले हुए स्कैनर का हैंडल.

  • कॉलबैक

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

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

    (response: GetOptionGroupsResponse) => void

रिटर्न

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

getScannerList()

Promise Chrome 125 और उसके बाद के वर्शन के लिए
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

पैरामीटर

  • फ़िल्टर करें

    DeviceFilter, जिसमें यह बताया गया है कि किस तरह के स्कैनर लौटाए जाने चाहिए.

  • कॉलबैक

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

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

    (response: GetScannerListResponse) => void

रिटर्न

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

openScanner()

Promise Chrome 125 और उसके बाद के वर्शन के लिए
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

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

पैरामीटर

  • scannerId

    स्ट्रिंग

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

  • कॉलबैक

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

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

    (response: OpenScannerResponse) => void

रिटर्न

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

readScanData()

Promise Chrome 125 और उसके बाद के वर्शन के लिए
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

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

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

पैरामीटर

  • नौकरी

    स्ट्रिंग

    startScan से पहले दिखाया गया, चालू जॉब का हैंडल.

  • कॉलबैक

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

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

    (response: ReadScanDataResponse) => void

रिटर्न

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

scan()

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

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

पैरामीटर

  • विकल्प

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

  • कॉलबैक

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

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

    (result: ScanResults) => void

रिटर्न

  • Promise<ScanResults>

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

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

setOptions()

Promise Chrome 125 और उसके बाद के वर्शन के लिए
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

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

पैरामीटर

  • scannerHandle

    स्ट्रिंग

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

  • विकल्प

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

  • कॉलबैक

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

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

    (response: SetOptionsResponse) => void

रिटर्न

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

startScan()

Promise Chrome 125 और उसके बाद के वर्शन के लिए
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

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

पैरामीटर

  • scannerHandle

    स्ट्रिंग

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

  • विकल्प

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

  • कॉलबैक

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

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

    (response: StartScanResponse) => void

रिटर्न

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