chrome.documentScan

คำอธิบาย

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

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

สิทธิ์

documentScan

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

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

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

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

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

สําหรับ Use Case แบบง่าย ซึ่งหมายถึง Use Case ที่ทํางานร่วมกับสแกนเนอร์ใดก็ได้และไม่จำเป็นต้องควบคุมการกําหนดค่า ให้เรียกใช้ 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 }
}

ตัวอย่างเช่น ลองจินตนาการว่าเครื่องมือสแกนแสดงผลตัวเลือกชื่อ "source" และ "resolution" โครงสร้างของออบเจ็กต์ 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() โปรดดูตัวอย่างที่ส่วนสแกนหน้าขนาดจดหมาย 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 ขึ้นไป

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

ค่าแจกแจง

"UNSPECIFIED"

"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

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

    หาก result เป็น SUCCESS แสดงว่าเป็นแฮนเดิลของสแกนเนอร์ที่ใช้ดำเนินการเพิ่มเติมได้

  • scannerId

    สตริง

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

OperationResult

Chrome 125 ขึ้นไป

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

ค่าแจกแจง

"UNKNOWN"
เกิดความล้มเหลวที่ไม่รู้จักหรือทั่วไป

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

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

"ยกเลิกแล้ว"
การดําเนินการถูกยกเลิก

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

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

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

"EOF"
ไม่มีข้อมูลอื่นอีก

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

"ADF_EMPTY"
ตัวป้อนเอกสารว่างเปล่า

"COVER_OPEN"
ฝาเพลตวางรูปเปิดอยู่

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

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

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

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

"ขาดหายไป"
อุปกรณ์ยกเลิกการเชื่อมต่อแล้ว

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

OptionConstraint

Chrome 125 ขึ้นไป

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

  • list

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

  • สูงสุด

    ตัวเลข ไม่บังคับ

  • นาที

    ตัวเลข ไม่บังคับ

  • quant

    ตัวเลข ไม่บังคับ

  • ประเภท

OptionGroup

Chrome 125 ขึ้นไป

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

  • สมาชิก

    string[]

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

  • title

    สตริง

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

OptionSetting

Chrome 125 ขึ้นไป

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

  • ชื่อ

    สตริง

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

  • ประเภท

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

  • value

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

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

OptionType

Chrome 125 ขึ้นไป

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

ค่าแจกแจง

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

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

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

"FIXED"
ตัวเลขทศนิยม 2 ตำแหน่งในช่วง -32768-32767.9999 ที่มีความละเอียด 1/65535 พร็อพเพอร์ตี้ value จะเป็น double หรือ double[] ขึ้นอยู่กับว่าตัวเลือกใช้ค่ามากกว่า 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

    string[]

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

  • ผู้ผลิต

    สตริง

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

  • รุ่น

    สตริง

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

  • ชื่อ

    สตริง

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

  • protocolType

    สตริง

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

  • scannerId

    สตริง

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

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

    บูลีน

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

ScannerOption

Chrome 125 ขึ้นไป

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

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

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

  • ข้อจํากัด

    OptionConstraint ไม่บังคับ

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

  • คำอธิบาย

    สตริง

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

  • isActive

    บูลีน

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

  • isAdvanced

    บูลีน

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

  • isAutoSettable

    บูลีน

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

  • isDetectable

    บูลีน

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

  • isEmulated

    บูลีน

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

  • ชื่อ

    สตริง

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

  • title

    สตริง

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

  • ประเภท

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

  • หน่วย

    หน่วยวัดของตัวเลือกนี้

  • value

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

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

ScanOptions

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

  • maxImages

    ตัวเลข ไม่บังคับ

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

  • mimeTypes

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

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

ScanResults

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

  • dataUrls

    string[]

    อาร์เรย์ของ 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 ขึ้นไป

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

  • งาน

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

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

  • ผลลัพธ์

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

  • scannerHandle

    สตริง

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

เมธอด

cancelScan()

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

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

พารามิเตอร์

  • งาน

    สตริง

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: CancelScanResponse) => void

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

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

closeScanner()

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

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

พารามิเตอร์

  • scannerHandle

    สตริง

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: CloseScannerResponse) => void

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

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

getOptionGroups()

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

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

พารามิเตอร์

  • scannerHandle

    สตริง

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: GetOptionGroupsResponse) => void

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

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

getScannerList()

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

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

พารามิเตอร์

  • ตัวกรอง

    DeviceFilter ที่ระบุว่าควรแสดงประเภทของสแกนเนอร์ใด

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: GetScannerListResponse) => void

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

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

openScanner()

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

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

พารามิเตอร์

  • scannerId

    สตริง

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: OpenScannerResponse) => void

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

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

readScanData()

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

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

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

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

พารามิเตอร์

  • งาน

    สตริง

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: ReadScanDataResponse) => void

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

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

scan()

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

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

พารามิเตอร์

  • ตัวเลือก

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (result: ScanResults) => void

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

  • Promise<ScanResults>

    Chrome 96 ขึ้นไป

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

setOptions()

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

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

พารามิเตอร์

  • scannerHandle

    สตริง

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

  • ตัวเลือก

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: SetOptionsResponse) => void

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

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

startScan()

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

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

พารามิเตอร์

  • scannerHandle

    สตริง

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

  • ตัวเลือก

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (response: StartScanResponse) => void

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

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