browser.documentScan

คำอธิบาย

ใช้ chrome.documentScan API เพื่อค้นหาและดึงรูปภาพจากเครื่องสแกนเอกสารที่เชื่อมต่ออยู่

Document Scan API ออกแบบมาเพื่ออนุญาตให้แอปและส่วนขยายดูเนื้อหาของเอกสารที่เป็นกระดาษในเครื่องสแกนเอกสารที่เชื่อมต่ออยู่

สิทธิ์

documentScan

ความพร้อมใช้งาน

Chrome 44 ขึ้นไป browser.* ตั้งแต่ Chrome 148 ChromeOS เท่านั้น
ความพร้อมใช้งานสำหรับสมาชิก API ที่เพิ่มในภายหลังจะแสดงพร้อมกับสมาชิกเหล่านั้น

แนวคิดและการใช้งาน

API นี้รองรับการสแกนเอกสาร 2 วิธี หากกรณีการใช้งานของคุณใช้ได้กับเครื่องสแกนเนอร์ทุกรุ่นและไม่จำเป็นต้องควบคุมการกำหนดค่า ให้ใช้เมธอด scan() กรณีการใช้งานที่ซับซ้อนมากขึ้นต้องใช้วิธีการหลายอย่างร่วมกัน ซึ่งรองรับเฉพาะใน Chrome 124 ขึ้นไปเท่านั้น

การสแกนแบบง่าย

สำหรับกรณีการใช้งานแบบง่าย ซึ่งหมายถึงกรณีที่ใช้ได้กับเครื่องสแกนทุกประเภทและไม่จำเป็นต้องควบคุมการกำหนดค่า ให้เรียกใช้ scan() เมธอดนี้จะรับออบเจ็กต์ ScanOptions และแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ScanResults ความสามารถของตัวเลือกนี้จำกัดอยู่ที่จำนวนการสแกนและประเภท MIME ที่ผู้เรียกจะยอมรับ ระบบจะแสดงผลการสแกนเป็น URL สำหรับแสดงในแท็ก <img> สำหรับอินเทอร์เฟซผู้ใช้

การสแกนที่ซับซ้อน

การสแกนที่ซับซ้อนจะดำเนินการใน 3 ระยะตามที่อธิบายไว้ในส่วนนี้ โครงร่างนี้ไม่ได้อธิบายอาร์กิวเมนต์ของเมธอดหรือพร็อพเพอร์ตี้ทั้งหมดที่แสดงผลในการตอบกลับ แต่มีไว้เพื่อให้คำแนะนำทั่วไปในการเขียนโค้ดเครื่องสแกนเท่านั้น

Discovery

  1. โทรหา getScannerList() เครื่องสแกนที่ใช้ได้จะแสดงผลใน Promise ที่แก้ไขด้วย GetScannerListResponse

    • ออบเจ็กต์การตอบกลับมีอาร์เรย์ของออบเจ็กต์ ScannerInfo
    • อาร์เรย์อาจมีรายการหลายรายการสำหรับเครื่องสแกนเนอร์เครื่องเดียว หากเครื่องสแกนเนอร์นั้นรองรับโปรโตคอลหรือวิธีการเชื่อมต่อหลายวิธี
  2. เลือกเครื่องสแกนจากอาร์เรย์ที่แสดงผลและบันทึกค่าของพร็อพเพอร์ตี้ scannerId

    ใช้พร็อพเพอร์ตี้ของออบเจ็กต์ ScannerInfo แต่ละรายการเพื่อแยกความแตกต่างระหว่างออบเจ็กต์หลายรายการสำหรับเครื่องสแกนเดียวกัน ออบเจ็กต์จากเครื่องสแกนเดียวกันจะมีค่าเดียวกันสำหรับพร็อพเพอร์ตี้ deviceUuid ScannerInfo ยังมีพร็อพเพอร์ตี้ imageFormats ซึ่งมีอาร์เรย์ของประเภทรูปภาพที่รองรับด้วย

การกำหนดค่าเครื่องสแกน

  1. เรียกใช้ openScanner() โดยส่งรหัสเครื่องสแกนที่บันทึกไว้ ซึ่งจะแสดงผล Promise ที่แก้ไขด้วย OpenScannerResponse ออบเจ็กต์การตอบกลับประกอบด้วยข้อมูลต่อไปนี้

    • พร็อพเพอร์ตี้ scannerHandle ซึ่งคุณจะต้องบันทึก

    • พร็อพเพอร์ตี้ตัวเลือกที่มีพร็อพเพอร์ตี้เฉพาะเครื่องสแกน ซึ่งคุณจะต้องตั้งค่า ดูข้อมูลเพิ่มเติมได้ที่หัวข้อตัวเลือกเครื่องสแกนการเรียกข้อมูล

  2. (ไม่บังคับ) หากต้องการให้ผู้ใช้ระบุค่าสำหรับตัวเลือกเครื่องสแกน ให้สร้างอินเทอร์เฟซผู้ใช้ คุณจะต้องมีตัวเลือกเครื่องสแกนที่ได้จากขั้นตอนก่อนหน้า และจะต้องดึงข้อมูลกลุ่มตัวเลือกที่เครื่องสแกนมีให้ ดูข้อมูลเพิ่มเติมได้ที่สร้างอินเทอร์เฟซผู้ใช้

  3. สร้างอาร์เรย์ของออบเจ็กต์ OptionSetting โดยใช้ค่าแบบเป็นโปรแกรมหรือค่าที่ผู้ใช้ระบุ ดูข้อมูลเพิ่มเติมได้ที่หัวข้อตั้งค่าตัวเลือกเครื่องสแกน

  4. ส่งอาร์เรย์ของออบเจ็กต์ OptionSetting ไปยัง setOptions() เพื่อตั้งค่าตัวเลือกสำหรับเครื่องสแกน โดยจะแสดงผล Promise ที่แก้ไขด้วย 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() เมื่อใดก็ตามหลังจากสร้างงานแล้วจะสิ้นสุดการสแกน

ออบเจ็กต์การตอบกลับ

เมธอดทั้งหมดจะแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์การตอบกลับบางประเภท ออบเจ็กต์ส่วนใหญ่เหล่านี้มีพร็อพเพอร์ตี้ 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" ]
    }
  ]
}

ตามที่ระบุไว้ในการกำหนดค่าเครื่องสแกน การเปลี่ยนตัวเลือกหนึ่งอาจเปลี่ยนแปลงข้อจำกัดของอีกตัวเลือกหนึ่งได้ ด้วยเหตุนี้ setOptionsResponse (ออบเจ็กต์การตอบกลับสำหรับ setOptions()) จึงมีพร็อพเพอร์ตี้ options อื่น ใช้ตัวเลือกนี้เพื่ออัปเดตอินเทอร์เฟซผู้ใช้ จากนั้นทำซ้ำตามต้องการจนกว่าจะตั้งค่าตัวเลือกทั้งหมดแล้ว

ตั้งค่าตัวเลือกเครื่องสแกน

ตั้งค่าตัวเลือกเครื่องสแกนโดยส่งอาร์เรย์ของออบเจ็กต์ OptionSetting ไปยัง setOptions() ดูตัวอย่างได้ที่ส่วนสแกนหน้าขนาด Letter 1 หน้าด้านล่าง

ตัวอย่าง

ดึงข้อมูลหน้าเป็น Blob

ตัวอย่างนี้แสดงวิธีหนึ่งในการดึงข้อมูลหน้าจากเครื่องสแกนเป็น Blob และสาธิตการใช้ startScan() และ readScanData() โดยใช้ค่าของ OperationResult

async function pageAsBlob(handle) {
  let response = await browser.documentScan.startScan(
      handle, {format: "image/jpeg"});
  if (response.result != browser.documentScan.OperationResult.SUCCESS) {
    return null;
  }
  const job = response.job;

  let imgParts = [];
  response = await browser.documentScan.readScanData(job);
  while (response.result == browser.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 browser.documentScan.readScanData(job);
  }
  if (response.result != browser.documentScan.OperationResult.EOF) {
    return null;
  }
  if (response.data && response.data.byteLength > 0) {
    imgParts.push(response.data);
  }
  return new Blob(imgParts, { type: "image/jpeg" });
}

สแกนหน้าขนาด Letter 1 หน้า

ตัวอย่างนี้แสดงวิธีเลือกสแกนเนอร์ ตั้งค่าตัวเลือก และเปิดสแกนเนอร์ จากนั้นจะดึงเนื้อหาของหน้าเว็บหน้าเดียวและปิดสแกนเนอร์ กระบวนการนี้สาธิตการใช้ getScannerList(), openScanner(), setOptions() และ closeScanner() โปรดทราบว่าระบบจะดึงเนื้อหาของหน้าเว็บโดยการเรียกใช้ฟังก์ชัน pageAsBlob() จากตัวอย่างก่อนหน้า

async function scan() {
    let response = await browser.documentScan.getScannerList({ secure: true });
    let scanner = await browser.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: browser.documentScan.OptionType.STRING,
                value: { value: source }
            });
            break;
        }
    }
    options.push({
        name: "tl-x",
        type: browser.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-x",
        type: browser.documentScan.OptionType.FIXED,
        value: 215.9  // 8.5" in mm
    });
    options.push({
        name: "tl-y",
        type: browser.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-y",
        type: browser.documentScan.OptionType.FIXED,
        value: 279.4  // 11" in mm
    });
    response = await browser.documentScan.setOptions(handle, options);

    let imgBlob = await pageAsBlob(handle);
    if (imgBlob != null) {
        // Insert imgBlob into DOM, save to disk, etc
    }
    await browser.documentScan.closeScanner(handle);
}

แสดงการกำหนดค่า

ตามที่ระบุไว้ในส่วนอื่นๆ การแสดงตัวเลือกการกำหนดค่าของเครื่องสแกนต่อผู้ใช้จำเป็นต้องเรียกใช้ getOptionGroups() นอกเหนือจากตัวเลือกเครื่องสแกนที่แสดงผลจากการเรียกใช้ openScanner() ซึ่งจะช่วยให้แสดงตัวเลือกแก่ผู้ใช้ในกลุ่มที่ผู้ผลิตกำหนดได้ ตัวอย่างนี้แสดงวิธีดำเนินการดังกล่าว

async function showConfig() {
  let response = await browser.documentScan.getScannerList({ secure: true });
  let scanner = await browser.documentScan.openScanner(
      response.scanners[0].scannerId);
  let groups = await browser.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 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • งาน

    สตริง

    ระบุแฮนเดิลงานเดียวกันกับที่ส่งไปยัง cancelScan()

  • ผลลัพธ์

    ผลการสแกนการยกเลิกของแบ็กเอนด์ หากผลลัพธ์เป็น OperationResult.SUCCESS หรือ OperationResult.CANCELLED แสดงว่าการสแกนถูกยกเลิกและเครื่องสแกนพร้อมที่จะเริ่มการสแกนใหม่แล้ว หากผลลัพธ์เป็น OperationResult.DEVICE_BUSY แสดงว่าเครื่องสแกนยังคงประมวลผลการยกเลิกที่ขออยู่ ผู้โทรควรรอสักครู่แล้วลองส่งคำขออีกครั้ง ค่าผลลัพธ์อื่นๆ บ่งชี้ถึงข้อผิดพลาดถาวรที่ไม่ควรลองใหม่

CloseScannerResponse

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • ผลลัพธ์

    ผลลัพธ์ของการปิดเครื่องสแกน แม้ว่าค่านี้จะไม่ใช่ SUCCESS แต่แฮนเดิลจะไม่ถูกต้องและไม่ควรใช้สำหรับการดำเนินการใดๆ เพิ่มเติม

  • scannerHandle

    สตริง

    แฮนเดิลเครื่องสแกนเดียวกับที่ส่งไปยัง closeScanner

Configurability

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

วิธีเปลี่ยนตัวเลือก

ค่าแจกแจง

"NOT_CONFIGURABLE"
ตัวเลือกเป็นแบบอ่านอย่างเดียว

"SOFTWARE_CONFIGURABLE"
ตั้งค่าตัวเลือกได้ในซอฟต์แวร์

"HARDWARE_CONFIGURABLE"
ผู้ใช้สามารถตั้งค่าตัวเลือกได้โดยการสลับหรือกดปุ่มบนเครื่องสแกน

ConnectionType

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

ระบุวิธีเชื่อมต่อเครื่องสแกนกับคอมพิวเตอร์

ค่าแจกแจง

"UNSPECIFIED"

"USB"

"NETWORK"

ConstraintType

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

ประเภทข้อมูลของข้อจำกัดที่แสดงโดย OptionConstraint

ค่าแจกแจง

"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

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • local

    บูลีน ไม่บังคับ

    แสดงเฉพาะเครื่องสแกนที่เชื่อมต่อกับคอมพิวเตอร์โดยตรง

  • ปลอดภัย

    บูลีน ไม่บังคับ

    แสดงเฉพาะเครื่องสแกนที่ใช้การส่งข้อมูลที่ปลอดภัย เช่น USB หรือ TLS

GetOptionGroupsResponse

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • กลุ่ม

    OptionGroup[] ไม่บังคับ

    หาก result เป็น SUCCESS จะแสดงรายการกลุ่มตัวเลือกตามลำดับที่ไดรเวอร์เครื่องสแกนจัดเตรียมไว้

  • ผลลัพธ์

    ผลลัพธ์ของการรับกลุ่มตัวเลือก หากค่าของฟิลด์นี้เป็น SUCCESS ระบบจะป้อนข้อมูลในพร็อพเพอร์ตี้ groups

  • scannerHandle

    สตริง

    แฮนเดิลเครื่องสแกนเดียวกับที่ส่งไปยัง getOptionGroups

GetScannerListResponse

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • ผลลัพธ์

    ผลลัพธ์การแจงนับ โปรดทราบว่าระบบอาจแสดงผลลัพธ์บางส่วนแม้ว่าจะมีข้อผิดพลาดก็ตาม

  • สแกนเนอร์

    รายการเครื่องสแกนที่ตรงกับ DeviceFilter ที่ระบุ ซึ่งอาจเป็นรายการว่างเปล่า

OpenScannerResponse

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • ตัวเลือก

    object ไม่บังคับ

    หาก result เป็น SUCCESS ให้ระบุการแมปคีย์-ค่าที่คีย์เป็นตัวเลือกเฉพาะอุปกรณ์และค่าเป็นอินสแตนซ์ของ ScannerOption

  • ผลลัพธ์

    ผลลัพธ์ของการเปิดเครื่องสแกน หากค่านี้เป็น SUCCESS ระบบจะป้อนข้อมูลในพร็อพเพอร์ตี้ scannerHandle และ options

  • scannerHandle

    สตริง ไม่บังคับ

    หาก result เป็น SUCCESS แฮนเดิลของเครื่องสแกนจะใช้สำหรับการดำเนินการเพิ่มเติมได้

  • scannerId

    สตริง

    รหัสเครื่องสแกนที่ส่งไปยัง openScanner()

OperationResult

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

Enum ที่ระบุผลลัพธ์ของการดำเนินการแต่ละรายการ

ค่าแจกแจง

"UNKNOWN"
เกิดความล้มเหลวที่ไม่ทราบสาเหตุหรือความล้มเหลวทั่วไป

"SUCCESS"
การดำเนินการสำเร็จ

"UNSUPPORTED"
ไม่รองรับการดำเนินการ

"CANCELLED"
การดำเนินการถูกยกเลิก

"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 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • list

    string[] | number[] ไม่บังคับ

  • สูงสุด

    number ไม่บังคับ

  • นาที

    number ไม่บังคับ

  • quant

    number ไม่บังคับ

  • ประเภท

OptionGroup

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • สมาชิก

    string[]

    อาร์เรย์ของชื่อตัวเลือกตามลำดับที่คนขับระบุ

  • title

    สตริง

    ระบุชื่อที่พิมพ์ได้ เช่น "ตัวเลือกเรขาคณิต"

OptionSetting

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • name

    สตริง

    ระบุชื่อของตัวเลือกที่จะตั้งค่า

  • ประเภท

    ระบุประเภทข้อมูลของตัวเลือก ประเภทข้อมูลที่ขอต้องตรงกับประเภทข้อมูลจริงของตัวเลือกที่เกี่ยวข้อง

  • value

    string | number | boolean | number[] ไม่บังคับ

    ระบุค่าที่จะตั้ง ปล่อยให้เป็น "ไม่ได้ตั้งค่า" เพื่อขอการตั้งค่าอัตโนมัติสำหรับตัวเลือกที่เปิดใช้ autoSettable ไว้ ประเภทข้อมูลที่ระบุสำหรับ value ต้องตรงกับ type

OptionType

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

ประเภทข้อมูลของตัวเลือก

ค่าแจกแจง

"UNKNOWN"
ไม่ทราบประเภทข้อมูลของตัวเลือก ระบบจะยกเลิกการตั้งค่าพร็อพเพอร์ตี้ value

"BOOL"
พร็อพเพอร์ตี้ value จะเป็น truefalse

"INT"
จำนวนเต็ม 32 บิตที่มีเครื่องหมาย พร็อพเพอร์ตี้ value จะเป็น long หรือ long[] ขึ้นอยู่กับว่าตัวเลือกมีค่ามากกว่า 1 ค่าหรือไม่

"FIXED"
ค่า Double ในช่วง -32768-32767.9999 ที่มีความละเอียด 1/65535 พร็อพเพอร์ตี้ value จะเป็น double หรือ double[] ขึ้นอยู่กับว่าตัวเลือกใช้ค่ามากกว่า 1 ค่าหรือไม่ ค่า Double ที่ไม่สามารถแสดงได้อย่างถูกต้องจะถูกปัดเศษเป็นช่วงและความแม่นยำที่ใช้ได้

"STRING"
ลำดับของไบต์ใดๆ ยกเว้น NUL ('\0') พร็อพเพอร์ตี้ value จะเป็น DOMString

"BUTTON"
ตัวเลือกประเภทนี้ไม่มีค่า แต่การตั้งค่าตัวเลือกประเภทนี้จะทำให้เกิดผลข้างเคียงเฉพาะตัวเลือกในไดรเวอร์เครื่องสแกนแทน ตัวอย่างเช่น ไดรเวอร์เครื่องสแกนอาจใช้ตัวเลือกประเภทปุ่มเพื่อระบุวิธีเลือกค่าเริ่มต้นหรือเพื่อบอกให้ตัวป้อนเอกสารอัตโนมัติเลื่อนไปยังกระดาษแผ่นถัดไป

"GROUP"
ตัวเลือกการจัดกลุ่ม ไม่มีค่า ซึ่งรวมไว้เพื่อความเข้ากันได้ แต่โดยปกติแล้วจะไม่แสดงในค่า ScannerOption ใช้ getOptionGroups() เพื่อเรียกดูรายชื่อกลุ่มพร้อมตัวเลือกสมาชิก

OptionUnit

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

ระบุประเภทข้อมูลสำหรับ ScannerOption.unit

ค่าแจกแจง

"UNITLESS"
ค่าเป็นตัวเลขที่ไม่มีหน่วย เช่น เกณฑ์

"PIXEL"
ค่าเป็นจำนวนพิกเซล เช่น ขนาดการสแกน

"BIT"
ค่าคือจำนวนบิต เช่น ความลึกของสี

"MM"
ค่าจะวัดเป็นมิลลิเมตร เช่น ขนาดการสแกน

"DPI"
ค่าที่วัดเป็นจุดต่อนิ้ว เช่น ความละเอียด

"PERCENT"
ค่าเป็นเปอร์เซ็นต์ เช่น ความสว่าง

"MICROSECOND"
ค่าจะวัดเป็นไมโครวินาที เช่น เวลาในการรับแสง

ReadScanDataResponse

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • เพิ่มเติม

    ArrayBuffer ไม่บังคับ

    หาก result เป็น SUCCESS จะมีข้อมูลรูปภาพที่สแกนส่วนถัดไป หาก result เป็น EOF จะมีข้อมูลรูปภาพที่สแกนส่วนสุดท้าย

  • estimatedCompletion

    number ไม่บังคับ

    หาก result เป็น SUCCESS ค่าประมาณของปริมาณข้อมูลการสแกนทั้งหมดที่ส่งไปแล้วจนถึงตอนนี้จะอยู่ในช่วง 0 ถึง 100

  • งาน

    สตริง

    ระบุแฮนเดิลของงานที่ส่งไปยัง readScanData()

  • ผลลัพธ์

    ผลลัพธ์ของการอ่านข้อมูล หากค่าเป็น SUCCESS แสดงว่า data มีข้อมูลรูปภาพส่วนถัดไป (อาจมีความยาวเป็น 0) ที่พร้อมให้อ่าน หากค่าเป็น EOF แสดงว่า data มีข้อมูลรูปภาพส่วนสุดท้าย

ScannerInfo

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • connectionType

    ระบุวิธีเชื่อมต่อเครื่องสแกนกับคอมพิวเตอร์

  • deviceUuid

    สตริง

    สำหรับการจับคู่กับรายการ ScannerInfo อื่นๆ ที่ชี้ไปยังอุปกรณ์จริงเครื่องเดียวกัน

  • imageFormats

    string[]

    อาร์เรย์ของประเภท MIME ที่สามารถขอสำหรับการสแกนที่แสดงผล

  • ผู้ผลิต

    สตริง

    ผู้ผลิตเครื่องสแกน

  • รุ่น

    สตริง

    รุ่นของเครื่องสแกน (หากมี) หรือคำอธิบายทั่วไป

  • name

    สตริง

    ชื่อเครื่องสแกนที่มนุษย์อ่านได้เพื่อแสดงใน UI

  • protocolType

    สตริง

    คำอธิบายที่มนุษย์อ่านได้ของโปรโตคอลหรือไดรเวอร์ที่ใช้เข้าถึงสแกนเนอร์ เช่น Mopria, WSD หรือ epsonds ซึ่งมีประโยชน์อย่างยิ่งในการอนุญาตให้ผู้ใช้เลือกโปรโตคอลได้หากอุปกรณ์รองรับหลายโปรโตคอล

  • scannerId

    สตริง

    รหัสของเครื่องสแกนที่เฉพาะเจาะจง

  • ปลอดภัย

    บูลีน

    หากเป็นจริง การรับส่งข้อมูลของการเชื่อมต่อเครื่องสแกนจะไม่สามารถถูกดักฟังโดยผู้ฟังแบบพาสซีฟ เช่น TLS หรือ USB

ScannerOption

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • ความสามารถในการกำหนดค่า

    ระบุว่าสามารถเปลี่ยนตัวเลือกได้หรือไม่และอย่างไร

  • การจำกัด

    OptionConstraint ไม่บังคับ

    กำหนด OptionConstraint ในตัวเลือกเครื่องสแกนปัจจุบัน

  • คำอธิบาย

    สตริง

    คำอธิบายแบบยาวของตัวเลือก

  • isActive

    บูลีน

    ระบุว่าตัวเลือกทำงานอยู่และสามารถตั้งค่าหรือเรียกข้อมูลได้ หากเป็นเท็จ ระบบจะไม่ตั้งค่าพร็อพเพอร์ตี้ value

  • isAdvanced

    บูลีน

    ระบุว่า UI ไม่ควรแสดงตัวเลือกนี้โดยค่าเริ่มต้น

  • isAutoSettable

    บูลีน

    ไดรเวอร์เครื่องสแกนสามารถตั้งค่าได้โดยอัตโนมัติ

  • isDetectable

    บูลีน

    ระบุว่าซอฟต์แวร์สามารถตรวจจับตัวเลือกนี้ได้

  • isEmulated

    บูลีน

    จำลองโดยไดรเวอร์เครื่องสแกนหากเป็นจริง

  • name

    สตริง

    ชื่อตัวเลือกที่ใช้ตัวอักษร ASCII ตัวพิมพ์เล็ก ตัวเลข และขีดกลาง ไม่อนุญาตให้ใช้เครื่องหมายกำกับการออกเสียง

  • title

    สตริง

    ชื่อแบบบรรทัดเดียวที่พิมพ์ได้

  • ประเภท

    ประเภทข้อมูลที่อยู่ในพร็อพเพอร์ตี้ value ซึ่งจำเป็นสำหรับการตั้งค่าตัวเลือกนี้

  • หน่วย

    หน่วยวัดสำหรับตัวเลือกนี้

  • value

    string | number | boolean | number[] ไม่บังคับ

    ค่าปัจจุบันของตัวเลือก (หากเกี่ยวข้อง) โปรดทราบว่าประเภทข้อมูลของพร็อพเพอร์ตี้นี้ต้องตรงกับประเภทข้อมูลที่ระบุใน type

ScanOptions

พร็อพเพอร์ตี้

  • maxImages

    number ไม่บังคับ

    จำนวนรูปภาพที่สแกนที่อนุญาต ค่าเริ่มต้นคือ 1

  • mimeTypes

    string[] ไม่บังคับ

    ประเภท MIME ที่ผู้โทรยอมรับ

ScanResults

พร็อพเพอร์ตี้

  • dataUrls

    string[]

    อาร์เรย์ของ URL รูปภาพข้อมูลในรูปแบบที่ส่งเป็นค่า "src" ไปยังแท็กรูปภาพได้

  • mimeType

    สตริง

    ประเภท MIME ของ dataUrls

SetOptionResult

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • name

    สตริง

    ระบุชื่อของตัวเลือกที่ตั้งค่าไว้

  • ผลลัพธ์

    ระบุผลลัพธ์ของการตั้งค่าตัวเลือก

SetOptionsResponse

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • ตัวเลือก

    object ไม่บังคับ

    การแมปคีย์-ค่าที่อัปเดตจากชื่อตัวเลือกเป็นค่า ScannerOption ที่มีการกำหนดค่าใหม่หลังจากพยายามตั้งค่าตัวเลือกทั้งหมดที่ระบุ ซึ่งมีโครงสร้างเหมือนกับพร็อพเพอร์ตี้ options ใน OpenScannerResponse

    ระบบจะตั้งค่าพร็อพเพอร์ตี้นี้แม้ว่าจะตั้งค่าบางตัวเลือกไม่สำเร็จ แต่จะยกเลิกการตั้งค่าหากดึงข้อมูลการกำหนดค่าที่อัปเดตไม่สำเร็จ (เช่น หากสแกนเนอร์ถูกตัดการเชื่อมต่อระหว่างการสแกน)

  • ผลลัพธ์

    อาร์เรย์ของผลลัพธ์ โดยมี 1 รายการสำหรับ OptionSetting ที่ส่งเข้ามาแต่ละรายการ

  • scannerHandle

    สตริง

    ระบุแฮนเดิลของเครื่องสแกนที่ส่งไปยัง setOptions()

StartScanOptions

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • รูปแบบ

    สตริง

    ระบุประเภท MIME เพื่อแสดงผลข้อมูลที่สแกน

  • maxReadSize

    number ไม่บังคับ

    หากระบุค่าที่ไม่ใช่ 0 ระบบจะจำกัดจำนวนไบต์ที่สแกนสูงสุดที่แสดงในการตอบกลับ readScanData รายการเดียวให้เป็นค่านั้น ค่าต่ำสุดที่อนุญาตคือ 32768 (32 KB) หากไม่ได้ระบุพร็อพเพอร์ตี้นี้ ขนาดของส่วนที่แสดงผลอาจใหญ่เท่ากับรูปภาพที่สแกนทั้งหมด

StartScanResponse

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148

พร็อพเพอร์ตี้

  • งาน

    สตริง ไม่บังคับ

    หาก result เป็น SUCCESS จะแสดงแฮนเดิลที่ใช้เพื่ออ่านข้อมูลการสแกนหรือยกเลิกงานได้

  • ผลลัพธ์

    ผลลัพธ์ของการเริ่มสแกน หากค่าของฟิลด์นี้เป็น SUCCESS ระบบจะป้อนข้อมูลในพร็อพเพอร์ตี้ job

  • scannerHandle

    สตริง

    ระบุแฮนเดิลเครื่องสแกนเดียวกันกับที่ส่งไปยัง startScan()

เมธอด

cancelScan()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.cancelScan(
  job: string,
)
: Promise<CancelScanResponse>

ยกเลิกการสแกนที่เริ่มต้นแล้วและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ CancelScanResponse หากใช้ Callback ระบบจะส่งออบเจ็กต์ไปยัง Callback แทน

พารามิเตอร์

  • งาน

    สตริง

    แฮนเดิลของงานสแกนที่ใช้งานอยู่ซึ่งก่อนหน้านี้แสดงผลจากการเรียกใช้ startScan

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยผลลัพธ์

closeScanner()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.closeScanner(
  scannerHandle: string,
)
: Promise<CloseScannerResponse>

ปิดเครื่องสแกนด้วยแฮนเดิลที่ส่งเข้ามาและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ CloseScannerResponse หากใช้ Callback ระบบจะส่งออบเจ็กต์ไปยัง Callback แทน แม้ว่าการตอบกลับจะไม่สำเร็จ แต่แฮนเดิลที่ระบุจะใช้ไม่ได้และไม่ควรใช้สำหรับการดำเนินการเพิ่มเติม

พารามิเตอร์

  • scannerHandle

    สตริง

    ระบุแฮนเดิลของสแกนเนอร์ที่เปิดอยู่ซึ่งส่งกลับมาก่อนหน้านี้จากการเรียกใช้ openScanner

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยผลลัพธ์

getOptionGroups()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.getOptionGroups(
  scannerHandle: string,
)
: Promise<GetOptionGroupsResponse>

รับชื่อกลุ่มและตัวเลือกสมาชิกจากเครื่องสแกนที่เปิดไว้ก่อนหน้านี้โดย openScanner เมธอดนี้จะแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ GetOptionGroupsResponse หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลไปยัง Callback แทน

พารามิเตอร์

  • scannerHandle

    สตริง

    แฮนเดิลของเครื่องสแกนที่เปิดอยู่ซึ่งแสดงผลจากการเรียกใช้ openScanner

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยผลลัพธ์

getScannerList()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.getScannerList(
  filter: DeviceFilter,
)
: Promise<GetScannerListResponse>

รับรายการเครื่องสแกนที่ใช้ได้และแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ GetScannerListResponse หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลไปยัง Callback แทน

พารามิเตอร์

  • ตัวกรอง

    DeviceFilter ที่ระบุประเภทเครื่องสแกนที่ควรแสดงผล

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะแก้ไขด้วยผลลัพธ์และรายการเครื่องสแกน

openScanner()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.openScanner(
  scannerId: string,
)
: Promise<OpenScannerResponse>

เปิดสแกนเนอร์สำหรับการเข้าถึงแบบพิเศษและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ OpenScannerResponse หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลไปยัง Callback แทน

พารามิเตอร์

  • scannerId

    สตริง

    รหัสของเครื่องสแกนที่จะเปิด ค่านี้เป็นค่าที่แสดงผลจากการเรียกใช้ getScannerList ก่อนหน้านี้

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยผลลัพธ์

readScanData()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.readScanData(
  job: string,
)
: Promise<ReadScanDataResponse>

อ่านข้อมูลรูปภาพที่พร้อมใช้งานส่วนถัดไปจากแฮนเดิลงานที่ใช้งานอยู่ และแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ReadScanDataResponse หากใช้ Callback ระบบจะส่งออบเจ็กต์ไปยัง Callback แทน

**หมายเหตุ:**ผลลัพธ์การตอบกลับที่ถูกต้องคือ SUCCESS โดยมีสมาชิก data ที่มีความยาวเป็น 0 ซึ่งหมายความว่าเครื่องสแกนยังคงทำงานอยู่ แต่ยังไม่มีข้อมูลเพิ่มเติมที่พร้อมใช้งาน ผู้โทรควรรอสักครู่แล้วลองอีกครั้ง

เมื่องานสแกนเสร็จสมบูรณ์ การตอบกลับจะมีค่าผลลัพธ์เป็น EOF การตอบกลับนี้อาจมีสมาชิก data ที่ไม่ใช่ 0 ตัวสุดท้าย

พารามิเตอร์

  • งาน

    สตริง

    แฮนเดิลงานที่ใช้งานอยู่ซึ่งส่งคืนก่อนหน้านี้จาก startScan

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยผลลัพธ์

scan()

browser.documentScan.scan(
  options: ScanOptions,
)
: Promise<ScanResults>

สแกนเอกสารและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ScanResults หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลไปยัง Callback แทน

พารามิเตอร์

  • ตัวเลือก

    ออบเจ็กต์ที่มีพารามิเตอร์การสแกน

การคืนสินค้า

  • Promise<ScanResults>

    Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148

    แสดงผล Promise ซึ่งจะแก้ไขด้วยผลการสแกน

setOptions()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
)
: Promise<SetOptionsResponse>

ตั้งค่าตัวเลือกในเครื่องสแกนที่ระบุและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ SetOptionsResponse ซึ่งมีผลลัพธ์ของการพยายามตั้งค่าทุกค่าตามลำดับของออบเจ็กต์ OptionSetting ที่ส่งเข้ามา หากใช้ Callback ระบบจะส่งออบเจ็กต์ไปยัง Callback แทน

พารามิเตอร์

  • scannerHandle

    สตริง

    แฮนเดิลของเครื่องสแกนเพื่อตั้งค่าตัวเลือก ค่านี้ควรเป็นค่าที่แสดงผลก่อนหน้านี้จากการเรียกไปยัง openScanner

  • ตัวเลือก

    รายการออบเจ็กต์ OptionSetting รายการที่จะใช้กับเครื่องสแกน

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยผลลัพธ์

startScan()

Chrome 125 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148
browser.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
)
: Promise<StartScanResponse>

เริ่มการสแกนบนเครื่องสแกนที่ระบุและแสดงผล Promise ที่แก้ไขด้วย StartScanResponse หากใช้ Callback ระบบจะส่งออบเจ็กต์ไปยัง Callback แทน หากการเรียกใช้สำเร็จ การตอบกลับจะมีแฮนเดิลงานที่ใช้ในการเรียกใช้ครั้งต่อๆ ไปเพื่ออ่านข้อมูลการสแกนหรือยกเลิกการสแกนได้

พารามิเตอร์

  • scannerHandle

    สตริง

    แฮนเดิลของเครื่องสแกนที่เปิดอยู่ ค่านี้ควรเป็นค่าที่แสดงผลก่อนหน้านี้จากการเรียกไปยัง openScanner

  • ตัวเลือก

    ออบเจ็กต์ StartScanOptions ที่ระบุตัวเลือกที่จะใช้สำหรับการสแกน พร็อพเพอร์ตี้ StartScanOptions.format ต้องตรงกับรายการใดรายการหนึ่งที่แสดงใน ScannerInfo ของเครื่องสแกน

การคืนสินค้า

  • แสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยผลลัพธ์