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() หลังจากสร้างงานได้ทุกเมื่อ

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

เมธอดทั้งหมดจะแสดง 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() ซึ่งจะแสดงคำสัญญาที่แปลงด้วยออบเจ็กต์ 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

รอดำเนินการ

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

  • งาน

    string

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

  • ผลลัพธ์

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

CloseScannerResponse

รอดำเนินการ

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

  • ผลลัพธ์

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

  • scannerHandle

    string

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

Configurability

รอดำเนินการ

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

ค่าแจกแจง

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

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

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

ConnectionType

รอดำเนินการ

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

ค่าแจกแจง

"USB"

ConstraintType

รอดำเนินการ

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

รอดำเนินการ

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

  • local

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

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

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

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

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

GetOptionGroupsResponse

รอดำเนินการ

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

  • กลุ่ม

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

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

  • ผลลัพธ์

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

  • scannerHandle

    string

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

GetScannerListResponse

รอดำเนินการ

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

  • ผลลัพธ์

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

  • สแกนเนอร์

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

OpenScannerResponse

รอดำเนินการ

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

  • ตัวเลือก

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

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

  • ผลลัพธ์

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

  • scannerHandle

    string ไม่บังคับ

    หาก result คือ SUCCESS ให้แฮนเดิลไปยังเครื่องสแกนที่สามารถใช้ดำเนินการเพิ่มเติมได้

  • scannerId

    string

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

OperationResult

รอดำเนินการ

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

ค่าแจกแจง

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

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

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

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

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

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

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

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

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

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

"COVER_OPEN"
ฝาครอบเปิดอยู่

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

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

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

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

"ไม่พบ"
อุปกรณ์ไม่ได้เชื่อมต่ออยู่

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

OptionConstraint

รอดำเนินการ

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

  • ลิสต์

    string[]|number[] optional

  • สูงสุด

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

  • นาที

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

  • ปริมาณ

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

  • ประเภท

OptionGroup

รอดำเนินการ

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

  • สมาชิก

    สตริง[]

    อาร์เรย์ของชื่อตัวเลือกตามลำดับที่ได้จากผู้ขับ

  • title

    string

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

OptionSetting

รอดำเนินการ

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

  • ชื่อ

    string

    ระบุชื่อของตัวเลือกในการตั้งค่า

  • ประเภท

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

  • value

    string|number|boolean|number[] optional

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

OptionType

รอดำเนินการ

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

ค่าแจกแจง

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

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

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

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

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

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

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

OptionUnit

รอดำเนินการ

ระบุประเภทข้อมูลของ ScannerOption.unit

ค่าแจกแจง

"UNITLESS"
ค่าคือตัวเลขไร้หน่วย เช่น อาจเป็นเกณฑ์

"PIXEL"
ค่าคือจํานวนพิกเซล เช่น ขนาดการสแกน

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

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

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

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

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

ReadScanDataResponse

รอดำเนินการ

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

  • ข้อมูล

    ArrayBuffer ไม่บังคับ

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

  • estimatedCompletion

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

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

  • งาน

    string

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

  • ผลลัพธ์

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

ScannerInfo

รอดำเนินการ

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

  • connectionType

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

  • deviceUuid

    string

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

  • imageFormats

    สตริง[]

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

  • ผู้ผลิต

    string

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

  • model

    string

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

  • ชื่อ

    string

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

  • protocolType

    string

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

  • scannerId

    string

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

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

    boolean

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

ScannerOption

รอดำเนินการ

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

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

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

  • ข้อจำกัด

    OptionConstraint ไม่บังคับ

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

  • คำอธิบาย

    string

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

  • isActive

    boolean

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

  • isAdvanced

    boolean

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

  • isAutoSettable

    boolean

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

  • isDetectable

    boolean

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

  • isEmulated

    boolean

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

  • ชื่อ

    string

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

  • title

    string

    ชื่อบรรทัดเดียวสำหรับพิมพ์

  • ประเภท

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

  • หน่วย

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

  • value

    string|number|boolean|number[] optional

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

ScanOptions

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

  • maxImages

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

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

  • mimeTypes

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

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

ScanResults

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

  • dataUrls

    สตริง[]

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

  • mimeType

    string

    ประเภท MIME ของ dataUrls

SetOptionResult

รอดำเนินการ

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

  • ชื่อ

    string

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

  • ผลลัพธ์

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

SetOptionsResponse

รอดำเนินการ

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

  • ตัวเลือก

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

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

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

  • ผลการแข่งขัน

    อาร์เรย์ผลลัพธ์ แต่ละรายการสำหรับทุกๆ OptionSetting ส่งผ่าน

  • scannerHandle

    string

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

StartScanOptions

รอดำเนินการ

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

  • รูปแบบ

    string

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

  • maxReadSize

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

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

StartScanResponse

รอดำเนินการ

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

  • งาน

    string ไม่บังคับ

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

  • ผลลัพธ์

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

  • scannerHandle

    string

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

วิธีการ

cancelScan()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

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

พารามิเตอร์

  • งาน

    string

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

  • Callback

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

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

    (response: CancelScanResponse)=>void

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

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

closeScanner()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    string

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

  • Callback

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

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

    (response: CloseScannerResponse)=>void

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

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

getOptionGroups()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    string

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

  • Callback

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

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

    (response: GetOptionGroupsResponse)=>void

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

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

getScannerList()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

พารามิเตอร์

  • ฟิลเตอร์

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

  • Callback

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

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

    (response: GetScannerListResponse)=>void

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

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

openScanner()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

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

พารามิเตอร์

  • scannerId

    string

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

  • Callback

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

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

    (response: OpenScannerResponse)=>void

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

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

readScanData()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

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

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

พารามิเตอร์

  • งาน

    string

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

  • Callback

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

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

    (response: ReadScanDataResponse)=>void

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

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

scan()

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

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

พารามิเตอร์

  • ตัวเลือก

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

  • Callback

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

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

    (result: ScanResults)=>void

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

  • Promise<ScanResults>

    Chrome 96 ขึ้นไป

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

setOptions()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    string

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

  • ตัวเลือก

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

  • Callback

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

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

    (response: SetOptionsResponse)=>void

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

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

startScan()

คำมั่นสัญญา รอดำเนินการ
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

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

พารามิเตอร์

  • scannerHandle

    string

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

  • ตัวเลือก

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

  • Callback

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

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

    (response: StartScanResponse)=>void

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

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