chrome.documentScan

คำอธิบาย

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

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

สิทธิ์

documentScan

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

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

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

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

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

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

การสแกนแบบซับซ้อน

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

Discovery

  1. โทร getScannerList() เครื่องสแกนที่ใช้ได้คือ กลับมาในคำสัญญาที่แก้ไขด้วย GetScannerListResponse

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

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

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

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

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

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

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

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

  4. ส่งต่ออาร์เรย์ของ OptionSetting ออบเจ็กต์ไปยัง setOptions() เพื่อตั้งค่าตัวเลือกสำหรับเครื่องสแกน ทั้งนี้ จะแสดงคำสัญญาที่แก้ไขด้วย SetOptionsResponse ออบเจ็กต์นี้มี เวอร์ชันอัปเดตของตัวเลือกโปรแกรมสแกนที่เรียกมาในขั้นตอนที่ 1 ของเครื่องมือสแกน การกำหนดค่า

    ตั้งแต่เปลี่ยนแปลงรายการหนึ่ง เปลี่ยนข้อจำกัดในตัวเลือกอื่นได้ คุณอาจต้องทำซ้ำ หลายครั้ง

กำลังสแกน

  1. สร้างออบเจ็กต์ StartScanOptions แล้วส่งต่อ เป็น startScan() โดยจะส่งคืนคำสัญญาที่แก้ไขปัญหา ด้วย StartScanResponse พร็อพเพอร์ตี้ job คือ แฮนเดิลที่คุณจะใช้ในการอ่านข้อมูลการสแกนหรือยกเลิกการสแกน

  2. ส่งต่อแฮนเดิลงานไปยัง readScanData() โดยจะแสดงผล คำมั่นสัญญาที่แก้ไขปัญหาได้ ReadScanDataResponse หากมีการอ่านข้อมูล สำเร็จ พร็อพเพอร์ตี้ result เท่ากับ SUCCESS และพร็อพเพอร์ตี้ data มี ArrayBuffer กับส่วนหนึ่งของการสแกน โปรดทราบว่า estimatedCompletion มีค่าประมาณ เปอร์เซ็นต์ของข้อมูลทั้งหมดที่มีการนำส่งจนถึงปัจจุบัน

  3. ทำซ้ำขั้นตอนก่อนหน้าจนกว่าพร็อพเพอร์ตี้ result จะเท่ากับ EOF หรือเกิดข้อผิดพลาด

เมื่อสิ้นสุดการสแกน ให้เรียก closeScanner() พร้อมกับแฮนเดิลเครื่องสแกนที่บันทึกไว้ในขั้นตอน 3. โดยจะแสดงคำสัญญาที่แก้ไขด้วย CloseScannerResponse การโทร cancelScan() หลังจากสร้างงานจะ สิ้นสุดการสแกน

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

เมธอดทั้งหมดจะแสดง "คำสัญญา" ที่ได้รับการแก้ไขด้วยออบเจ็กต์การตอบกลับบางประเภท พร็อพเพอร์ตี้เหล่านี้ส่วนใหญ่มีพร็อพเพอร์ตี้ result ซึ่งมีค่าเป็นสมาชิกของ OperationResult คุณสมบัติบางอย่างของออบเจ็กต์การตอบสนอง จะไม่มีค่าเว้นแต่ค่าของ result จะมีค่าเฉพาะ เหล่านี้ จะอธิบายความสัมพันธ์ในการอ้างอิงสำหรับออบเจ็กต์การตอบกลับแต่ละรายการ

เช่น OpenScannerResponse.scannerHandle จะมีค่าก็ต่อเมื่อ OpenScannerResponse.result เท่ากับ SUCCESS

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

ตัวเลือกเครื่องสแกนจะแตกต่างกันไปตามอุปกรณ์ ด้วยเหตุนี้ จึงไม่สามารถ แสดงตัวเลือกเครื่องสแกนภายใน documentScan API โดยตรง วิธีการเดินทาง นี้ OpenScannerResponse (ดึงข้อมูลโดยใช้ openScanner()) และ SetOptionsResponse (ออบเจ็กต์การตอบกลับสำหรับ setOptions()) มี options พร็อพเพอร์ตี้ซึ่งเป็น ที่มีตัวเลือกเฉพาะเครื่องสแกน แต่ละตัวเลือกคือการแมปคีย์-ค่า โดยที่คีย์เป็นตัวเลือกเฉพาะอุปกรณ์ และค่าเป็นอินสแตนซ์ ScannerOption

โดยทั่วไปโครงสร้างจะมีลักษณะดังนี้

{
  "key1": { scannerOptionInstance }
  "key2": { scannerOptionInstance }
}

ตัวอย่างเช่น สมมติว่าเครื่องสแกนแสดงผลตัวเลือกชื่อ "source" และ "ความละเอียด" โครงสร้างของออบเจ็กต์ options ที่แสดงผลจะมีลักษณะบางอย่าง ดังตัวอย่างต่อไปนี้ ScannerOption เพียงบางส่วนเพื่อความง่าย แสดงคำตอบ

{
  "source": {
    "name": "source",
    "type": OptionType.STRING,
...
},
  "resolution": {
    "name": "resolution",
    "type": OptionType.INT,
...
  },
...
}

สร้างอินเทอร์เฟซผู้ใช้

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

เครื่องสแกนบางรุ่นจัดกลุ่มตัวเลือกตามรูปแบบเฉพาะอุปกรณ์ โดยจะไม่ส่งผลต่อตัวเลือก แต่เนื่องจากกลุ่มเหล่านี้อาจกล่าวถึงในผลิตภัณฑ์ของโปรแกรมสแกน เอกสาร กลุ่มดังกล่าวควรแสดงต่อผู้ใช้ คุณเรียกดูข้อมูลเหล่านี้ได้ กลุ่มโดยโทรหา getOptionGroups() ซึ่งจะแสดง คำมั่นสัญญาที่แก้ไขปัญหาได้ GetOptionGroupsResponse เวลา groups มีอาร์เรย์ของกลุ่มเฉพาะเครื่องสแกน ใช้ข้อมูลใน กลุ่มเหล่านี้เพื่อจัดระเบียบตัวเลือกใน OpenScannerResponse สำหรับจอแสดงผล

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

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

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

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

ตัวอย่าง

ดึงข้อมูลหน้าเว็บเป็น BLOB

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

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

  let imgParts = [];
  response = await chrome.documentScan.readScanData(job);
  while (response.result == chrome.documentScan.OperationResult.SUCCESS) {
    if (response.data && response.data.byteLength > 0) {
        imgParts.push(response.data);
    } else {
      // Delay so hardware can make progress.
      await new Promise(r => setTimeout(r, 100));
    }
    response = await chrome.documentScan.readScanData(job);
  }
  if (response.result != chrome.documentScan.OperationResult.EOF) {
    return null;
  }
  if (response.data && response.data.byteLength > 0) {
    imgParts.push(response.data);
  }
  return new Blob(imgParts, { type: "image/jpeg" });
}

สแกนหน้าขนาดตัวอักษร 1 หน้า

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

async function scan() {
    let response = await chrome.documentScan.getScannerList({ secure: true });
    let scanner = await chrome.documentScan.openScanner(
        response.scanners[0].scannerId);
    const handle = scanner.scannerHandle;

    let options = [];
    for (source of scanner.options["source"].constraint.list) {
        if (source.includes("ADF")) {
            options.push({
                name: "source",
                type: chrome.documentScan.OptionType.STRING,
                value: { value: source }
            });
            break;
        }
    }
    options.push({
        name: "tl-x",
        type: chrome.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-x",
        type: chrome.documentScan.OptionType.FIXED,
        value: 215.9  // 8.5" in mm
    });
    options.push({
        name: "tl-y",
        type: chrome.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-y",
        type: chrome.documentScan.OptionType.FIXED,
        value: 279.4  // 11" in mm
    });
    response = await chrome.documentScan.setOptions(handle, options);

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

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

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

async function showConfig() {
  let response = await chrome.documentScan.getScannerList({ secure: true });
  let scanner = await chrome.documentScan.openScanner(
      response.scanners[0].scannerId);
  let groups = await chrome.documentScan.getOptionGroups(scanner.scannerHandle);

  for (const group of groups.groups) {
    console.log("=== " + group.title + " ===");
    for (const member of group.members) {
      const option = scanner.options[member];
      if (option.isActive) {
        console.log("  " + option.name + " = " + option.value);
      } else {
        console.log("  " + option.name + " is inactive");
      }
    }
  }
}

ประเภท

CancelScanResponse

Chrome 125 ขึ้นไป

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

  • งาน

    สตริง

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

  • ผลลัพธ์

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

CloseScannerResponse

Chrome 125 ขึ้นไป

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

  • ผลลัพธ์

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

  • scannerHandle

    สตริง

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

Configurability

Chrome 125 ขึ้นไป

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

ค่าแจกแจง

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

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

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

ConnectionType

Chrome 125 ขึ้นไป

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

ค่าแจกแจง

"ไม่ระบุ"

"USB"

"NETWORK"

ConstraintType

Chrome 125 ขึ้นไป

ประเภทข้อมูลของข้อจำกัดที่แสดงโดย 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 ขึ้นไป

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

  • local

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

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

  • รักษาความปลอดภัย

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

    ส่งคืนเฉพาะเครื่องสแกนที่ใช้การรับส่งที่ปลอดภัย เช่น USB หรือ 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

    string ไม่บังคับ

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

  • scannerId

    สตริง

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

OperationResult

Chrome 125 ขึ้นไป

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

ค่าแจกแจง

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

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

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

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

"DEVICE_BUSY"
อุปกรณ์ไม่ว่าง

"ไม่ถูกต้อง"
ข้อมูลหรืออาร์กิวเมนต์ที่ส่งไปยังเมธอดดังกล่าวไม่ถูกต้อง

"WRONG_TYPE"
ค่าที่ระบุเป็นประเภทข้อมูลที่ไม่ถูกต้องสำหรับตัวเลือกที่สำคัญ

"EOF"
ไม่มีข้อมูลเพิ่มเติม

"ADF_JAMMED"
ตัวป้อนเอกสารติดขัด

"ADF_EMPTY"
ฟีดเดอร์เอกสารว่างเปล่า

"COVER_OPEN"
ฝาพับเปิดอยู่

"IO_ERROR"
เกิดข้อผิดพลาดขณะสื่อสารกับอุปกรณ์

"ACCESS_DENIED"
อุปกรณ์ต้องมีการตรวจสอบสิทธิ์

"NO_MEMORY"
Chromebook มีหน่วยความจำไม่เพียงพอให้ทำงานให้เสร็จสมบูรณ์

"UNREACHABLE"
ไม่สามารถเข้าถึงอุปกรณ์ได้

"MISSING"
อุปกรณ์ถูกตัดการเชื่อมต่อ

"INTERNAL_ERROR"
เกิดข้อผิดพลาดที่อื่นที่ไม่ใช่แอปพลิเคชันการเรียกใช้

OptionConstraint

Chrome 125 ขึ้นไป

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

  • list

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

  • สูงสุด

    หมายเลข ไม่บังคับ

  • นาที

    หมายเลข ไม่บังคับ

  • ปริมาณ

    หมายเลข ไม่บังคับ

  • ประเภท

OptionGroup

Chrome 125 ขึ้นไป

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

  • สมาชิก

    สตริง[]

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

  • title

    สตริง

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

OptionSetting

Chrome 125 ขึ้นไป

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

  • ชื่อ

    สตริง

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

  • ประเภท

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

  • value

    string | ตัวเลข | boolean | number[] ไม่บังคับ

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

OptionType

Chrome 125 ขึ้นไป

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

ค่าแจกแจง

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

"BOOL"
พร็อพเพอร์ตี้ value จะเป็นหนึ่งใน truefalse

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

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

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

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

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

OptionUnit

Chrome 125 ขึ้นไป

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

ค่าแจกแจง

"UNITLESS"
ค่านี้เป็นจำนวนหน่วย ตัวอย่างเช่น เกณฑ์ดังกล่าวอาจเป็นเกณฑ์

"PIXEL"
ค่าคือจำนวนพิกเซล เช่น มิติข้อมูลการสแกน

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

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

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

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

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

ReadScanDataResponse

Chrome 125 ขึ้นไป

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

  • ข้อมูล

    ArrayBuffer ไม่บังคับ

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

  • estimatedCompletion

    หมายเลข ไม่บังคับ

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

  • งาน

    สตริง

    ระบุแฮนเดิลงานที่ส่งให้ readScanData()

  • ผลลัพธ์

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

ScannerInfo

Chrome 125 ขึ้นไป

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

  • connectionType

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

  • deviceUuid

    สตริง

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

  • imageFormats

    สตริง[]

    อาร์เรย์ของประเภท MIME ที่ขอการสแกนที่ส่งกลับได้

  • ผู้ผลิต

    สตริง

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

  • รุ่น

    สตริง

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

  • ชื่อ

    สตริง

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

  • protocolType

    สตริง

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

  • scannerId

    สตริง

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

  • รักษาความปลอดภัย

    boolean

    หากเป็น "จริง" การ Listener แบบแพสซีฟ เช่น TLS หรือ USB จะขัดขวางการส่งของการเชื่อมต่อเครื่องสแกนไม่ได้

ScannerOption

Chrome 125 ขึ้นไป

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

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

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

  • ข้อจำกัด

    OptionConstraint ไม่บังคับ

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

  • คำอธิบาย

    สตริง

    คำอธิบายตัวเลือกที่ยาวขึ้น

  • isActive

    boolean

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

  • isAdvanced

    boolean

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

  • isAutoSettable

    boolean

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

  • isDetectable

    boolean

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

  • isEmulated

    boolean

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

  • ชื่อ

    สตริง

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

  • title

    สตริง

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

  • ประเภท

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

  • หน่วย

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

  • value

    string | ตัวเลข | boolean | number[] ไม่บังคับ

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

ScanOptions

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

  • maxImages

    หมายเลข ไม่บังคับ

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

  • mimeTypes

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

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

ScanResults

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

  • dataUrls

    สตริง[]

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

  • mimeType

    สตริง

    ประเภท MIME ของ dataUrls

SetOptionResult

Chrome 125 ขึ้นไป

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

  • ชื่อ

    สตริง

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

  • ผลลัพธ์

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

SetOptionsResponse

Chrome 125 ขึ้นไป

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

  • ตัวเลือก

    ออบเจ็กต์ไม่บังคับ

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

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

  • ผลลัพธ์

    อาร์เรย์ผลลัพธ์ รายการละ 1 รายการสำหรับ OptionSetting ที่ส่งผ่าน

  • scannerHandle

    สตริง

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

StartScanOptions

Chrome 125 ขึ้นไป

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

  • รูปแบบ

    สตริง

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

  • maxReadSize

    หมายเลข ไม่บังคับ

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

StartScanResponse

Chrome 125 ขึ้นไป

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

  • งาน

    string ไม่บังคับ

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

  • ผลลัพธ์

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

  • scannerHandle

    สตริง

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

เมธอด

cancelScan()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

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

พารามิเตอร์

  • งาน

    สตริง

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: CancelScanResponse) => void

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

  • Promise&lt;CancelScanResponse&gt;

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

closeScanner()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    สตริง

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: CloseScannerResponse) => void

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

  • Promise&lt;CloseScannerResponse&gt;

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

getOptionGroups()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    สตริง

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: GetOptionGroupsResponse) => void

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

  • รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

getScannerList()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

พารามิเตอร์

  • ตัวกรอง

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: GetScannerListResponse) => void

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

  • Promise&lt;GetScannerListResponse&gt;

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

openScanner()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

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

พารามิเตอร์

  • scannerId

    สตริง

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: OpenScannerResponse) => void

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

  • Promise&lt;OpenScannerResponse&gt;

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

readScanData()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

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

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

พารามิเตอร์

  • งาน

    สตริง

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: ReadScanDataResponse) => void

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

  • Promise&lt;ReadScanDataResponse&gt;

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

scan()

สัญญา
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

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

พารามิเตอร์

  • ตัวเลือก

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: ScanResults) => void

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

  • Promise&lt;ScanResults&gt;

    Chrome 96 ขึ้นไป

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

setOptions()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    สตริง

    แฮนเดิลของโปรแกรมสแกนสำหรับตั้งค่าตัวเลือก ซึ่งควรเป็นค่าที่ส่งคืนจากการเรียกใช้ไปยัง openScanner ก่อนหน้านี้

  • ตัวเลือก

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: SetOptionsResponse) => void

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

  • Promise&lt;SetOptionsResponse&gt;

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

startScan()

สัญญา Chrome 125 ขึ้นไป
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    สตริง

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

  • ตัวเลือก

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

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: StartScanResponse) => void

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

  • Promise&lt;StartScanResponse&gt;

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback