chrome.documentScan

설명

chrome.documentScan API를 사용하여 첨부된 문서 스캐너에서 이미지를 찾고 가져옵니다.

Document Scan API는 앱과 확장 프로그램이 첨부된 문서 스캐너에서 종이 문서의 내용을 볼 수 있도록 설계되었습니다.

권한

documentScan

가용성

Chrome 44 이상 ChromeOS만 해당
나중에 추가된 API 회원의 이용 가능 여부가 해당 멤버와 함께 표시됩니다.

개념 및 사용법

이 API는 두 가지 문서 스캔 방법을 지원합니다. 사용 사례가 모든 스캐너와 호환되고 구성을 제어할 필요가 없는 경우 scan() 메서드를 사용합니다. 더 복잡한 사용 사례에는 Chrome 124 이상에서만 지원되는 메서드 조합이 필요합니다.

간단한 스캔

간단한 사용 사례, 즉 모든 스캐너에서 작동할 수 있고 구성을 제어할 필요가 없는 사용 사례의 경우 scan()를 호출합니다. 이 메서드는 ScanOptions 객체를 가져와 ScanResults 객체로 확인되는 프로미스를 반환합니다. 이 옵션의 기능은 호출자가 허용하는 검사 수 및 MIME 유형으로 제한됩니다. 스캔은 사용자 인터페이스의 <img> 태그에 표시될 URL로 반환됩니다.

복잡한 스캔

복잡한 스캔은 이 섹션에 설명된 대로 3단계로 수행됩니다. 이 개요에서는 응답에서 반환되는 모든 메서드 인수나 속성을 설명하지는 않습니다. 스캐너 코드 작성에 관한 일반적인 가이드를 제공하기 위한 목적으로만 제공됩니다.

디스커버리

  1. getScannerList()을 호출합니다. 사용 가능한 스캐너는 GetScannerListResponse로 확인되는 프로미스에서 반환됩니다.

    • 응답 객체에는 ScannerInfo 객체의 배열이 포함됩니다.
    • 스캐너가 여러 프로토콜 또는 연결 방법을 지원하는 경우 배열에는 단일 스캐너에 관한 여러 항목이 포함될 수 있습니다.
  2. 반환된 배열에서 스캐너를 선택하고 scannerId 속성 값을 저장합니다.

    개별 ScannerInfo 객체의 속성을 사용하여 동일한 스캐너의 여러 객체를 구분합니다. 동일한 스캐너의 객체는 deviceUuid 속성 값이 동일합니다. ScannerInfo에는 지원되는 이미지 유형의 배열이 포함된 imageFormats 속성도 포함되어 있습니다.

스캐너 구성

  1. openScanner()를 호출하여 저장된 스캐너 ID를 전달합니다. 이 메서드는 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 또는 오류와 같을 때까지 이전 단계를 반복합니다.

스캔이 끝나면 3단계에서 저장한 스캐너 핸들을 사용하여 closeScanner()를 호출합니다. 이 메서드는 CloseScannerResponse로 확인되는 프로미스를 반환합니다. 작업이 생성된 후 언제든지 cancelScan()를 호출하면 스캔이 종료됩니다.

응답 객체

모든 메서드는 일종의 응답 객체로 확인되는 프로미스를 반환합니다. 대부분은 값이 OperationResult의 멤버인 result 속성을 포함합니다. 응답 객체의 일부 속성은 result 값에 특정 값이 없으면 값을 포함하지 않습니다. 이러한 관계는 각 응답 객체의 참조에 설명되어 있습니다.

예를 들어 OpenScannerResponse.scannerHandleOpenScannerResponse.resultSUCCESS인 경우에만 값을 갖습니다.

스캐너 옵션

스캐너 옵션은 기기에 따라 상당히 다릅니다. 따라서 documentScan API 내에서 직접 스캐너 옵션을 반영할 수는 없습니다. 이 문제를 해결하기 위해 OpenScannerResponse (openScanner()를 사용하여 검색됨) 및 SetOptionsResponse (setOptions()의 응답 객체)에는 스캐너 관련 옵션이 포함된 객체인 options 속성이 포함되어 있습니다. 각 옵션은 키-값 매핑으로, 여기서 키는 기기별 옵션이고 값은 ScannerOption의 인스턴스입니다.

구조는 일반적으로 다음과 같습니다.

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

예를 들어 'source' 및 'resolve'라는 옵션을 반환하는 스캐너가 있다고 가정해 보겠습니다. 반환된 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()에 전달하여 스캐너 옵션을 설정합니다. 예를 보려면 다음 글자 크기 페이지 한 장 스캔 섹션을 참고하세요.

페이지를 blob으로 가져오기

이 예에서는 스캐너에서 페이지를 blob으로 검색하는 한 가지 방법을 보여주고 OperationResult 값을 사용하여 startScan()readScanData()를 사용하는 방법을 보여줍니다.

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

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

글자 크기 페이지 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);
}

구성 표시

다른 곳에서 언급했듯이 스캐너의 구성 옵션을 사용자에게 표시하려면 openScanner() 호출에서 반환된 스캐너 옵션 외에 getOptionGroups()를 호출해야 합니다. 제조업체에서 정의한 그룹의 사용자에게 옵션이 표시될 수 있습니다. 이 예에서는 그 방법을 보여줍니다.

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

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

유형

CancelScanResponse

대기중

속성

  • job

    문자열

    cancelScan()에 전달된 것과 동일한 작업 핸들을 제공합니다.

  • 백엔드의 스캔 취소 결과입니다. 결과가 OperationResult.SUCCESS 또는 OperationResult.CANCELLED이면 스캔이 취소되었으며 스캐너가 새 스캔을 시작할 준비가 된 것입니다. 결과가 OperationResult.DEVICE_BUSY이면 스캐너가 아직 요청된 취소를 처리하는 중입니다. 호출자는 잠시 기다렸다가 요청을 다시 시도해야 합니다. 다른 결과 값은 재시도하면 안 되는 영구적인 오류를 나타냅니다.

CloseScannerResponse

대기중

속성

  • 스캐너를 닫았을 때의 결과입니다. 이 값이 SUCCESS가 아니더라도 핸들은 유효하지 않으므로 추가 작업에 사용해서는 안 됩니다.

  • scannerHandle

    문자열

    closeScanner에 전달된 것과 동일한 스캐너 핸들입니다.

Configurability

대기중

옵션을 변경하는 방법입니다.

enum

"NOT_CONFIGURABLE"
이 옵션은 읽기 전용입니다.

"SOFTWARE_CONFIGURABLE"
이 옵션은 소프트웨어에서 설정할 수 있습니다.

"HARDWARE_CONFIGURABLE"
옵션은 사용자가 스캐너의 버튼을 전환하거나 눌러 설정할 수 있습니다.

ConnectionType

대기중

스캐너가 컴퓨터에 연결된 방식을 나타냅니다.

enum

"USB"

ConstraintType

대기중

OptionConstraint로 표시된 제약조건의 데이터 유형입니다.

enum

"INT_RANGE"
OptionType.INT 값 범위에 대한 제약 조건입니다. OptionConstraintmin, max, quant 속성이 long가 되고 list 속성이 설정 해제됩니다.

"FIXED_RANGE"
OptionType.FIXED 값 범위에 대한 제약 조건입니다. OptionConstraintmin, max, quant 속성이 double가 되고 list 속성이 설정 해제됩니다.

"INT_LIST"
특정 OptionType.INT 값 목록에 대한 제약 조건입니다. OptionConstraint.list 속성에는 long 값이 포함되며 다른 속성은 설정 해제됩니다.

"FIXED_LIST"
특정 OptionType.FIXED 값 목록에 대한 제약조건입니다. OptionConstraint.list 속성에는 double 값이 포함되며 다른 속성은 설정 해제됩니다.

"STRING_LIST"
특정 OptionType.STRING 값 목록에 대한 제약조건입니다. OptionConstraint.list 속성에는 DOMString 값이 포함되며 다른 속성은 설정 해제됩니다.

DeviceFilter

대기중

속성

  • local

    부울 선택사항

    컴퓨터에 직접 부착된 스캐너만 반환해 주세요.

  • 보안

    부울 선택사항

    USB나 TLS와 같은 보안 전송을 사용하는 스캐너만 반환하세요.

GetOptionGroupsResponse

대기중

속성

  • 그룹

    OptionGroup[] 선택사항

    resultSUCCESS이면 스캐너 드라이버에서 제공된 순서대로 옵션 그룹 목록을 제공합니다.

  • 옵션 그룹을 가져온 결과입니다. 값이 SUCCESS이면 groups 속성이 채워집니다.

  • scannerHandle

    문자열

    getOptionGroups에 전달된 것과 동일한 스캐너 핸들입니다.

GetScannerListResponse

대기중

속성

  • 열거 결과입니다. 오류가 표시되더라도 부분적인 결과가 반환될 수 있습니다.

  • 스캐너

    제공된 DeviceFilter와 일치하는 스캐너 목록(비어 있을 수 있음)입니다.

OpenScannerResponse

대기중

속성

  • 옵션

    객체 선택사항

    resultSUCCESS이면 키는 기기별 옵션이고 값은 ScannerOption 인스턴스인 키-값 매핑을 제공합니다.

  • 스캐너를 연 결과입니다. 값이 SUCCESS이면 scannerHandleoptions 속성이 채워집니다.

  • scannerHandle

    문자열 선택사항

    resultSUCCESS이면 추가 작업에 사용할 수 있는 스캐너의 핸들입니다.

  • scannerId

    문자열

    openScanner()에 전달된 스캐너 ID입니다.

OperationResult

대기중

각 작업의 결과를 나타내는 열거형입니다.

enum

'UNKNOWN'
알 수 없거나 일반적인 오류가 발생했습니다.

"SUCCESS"
작업이 성공했습니다.

"지원되지 않음"
지원되지 않는 작업입니다.

"CANCELLED"
작업이 취소되었습니다.

"DEVICE_BUSY"
기기가 사용 중입니다.

"INVALID"
메서드에 전달된 데이터 또는 인수가 유효하지 않습니다.

"WRONG_TYPE"
제공된 값이 기본 옵션에 맞지 않는 잘못된 데이터 유형입니다.

"EOF"
더 이상 사용 가능한 데이터가 없습니다.

"ADF_JAMMED"
급지대가 걸렸습니다.

"ADF_EMPTY"
문서 공급기가 비어 있습니다.

"COVER_OPEN"
플랫베드 커버가 열려 있습니다.

"IO_ERROR"
기기와 통신하는 중에 오류가 발생했습니다.

"ACCESS_DENIED"
인증이 필요한 기기입니다.

"NO_MEMORY"
Chromebook에 메모리가 부족하여 작업을 완료할 수 없습니다.

"UNREACHABLE"
기기에 연결할 수 없습니다.

"MISSING"
기기가 연결 해제되었습니다.

"INTERNAL_ERROR"
호출하는 애플리케이션이 아닌 다른 위치에서 오류가 발생했습니다.

OptionConstraint

대기중

속성

  • list

    string[]|number[] optional

  • max

    number 선택사항

  • number 선택사항

  • 퀀트

    number 선택사항

OptionGroup

대기중

속성

  • 멤버

    문자열[]

    운전자가 제공한 순서대로 된 옵션 이름의 배열입니다.

  • title

    문자열

    인쇄 가능한 제목을 제공합니다(예: '도형 옵션').

OptionSetting

대기중

속성

  • 이름

    문자열

    설정할 옵션의 이름을 나타냅니다.

  • 유형

    옵션의 데이터 유형을 나타냅니다. 요청된 데이터 유형은 기본 옵션의 실제 데이터 유형과 일치해야 합니다.

  • string|number|boolean|number[] optional

    설정할 값을 나타냅니다. autoSettable가 사용 설정된 옵션의 자동 설정을 요청하려면 설정하지 않은 상태로 두세요. value에 제공된 데이터 유형은 type와 일치해야 합니다.

OptionType

대기중

옵션의 데이터 유형입니다.

enum

"UNKNOWN"
옵션의 데이터 유형을 알 수 없습니다. value 속성이 설정 해제됩니다.

"BOOL"
value 속성은 truefalse 중 하나입니다.

"INT"
부호 있는 32비트 정수입니다. value 속성은 옵션이 두 개 이상의 값을 허용하는지 여부에 따라 long 또는 long[]이 됩니다.

"FIXED(해결됨)"
해상도 1/65535의 -32768-32767.9999 범위의 double. 옵션이 두 개 이상의 값을 사용하는지 여부에 따라 value 속성이 double 또는 double[] 이 됩니다. 정확하게 표현할 수 없는 Double 값은 사용 가능한 범위와 정밀도로 반올림됩니다.

"STRING"
NUL ('\0')을 제외한 모든 바이트의 시퀀스입니다. value 속성은 DOMString입니다.

"BUTTON"
이 유형의 옵션에는 값이 없습니다. 대신 이 유형의 옵션을 설정하면 스캐너 드라이버에서 옵션별 부작용이 발생합니다. 예를 들어 스캐너 드라이버는 버튼 유형 옵션을 사용하여 기본값을 선택하는 수단을 제공하거나 자동 문서 공급기에 다음 용지로 넘어가도록 지시할 수 있습니다.

"GROUP"
그룹화 옵션입니다. 값 없음. 호환성을 위해 포함되지만 일반적으로 ScannerOption 값에 반환되지 않습니다. getOptionGroups()를 사용하여 구성원 옵션이 있는 그룹 목록을 가져옵니다.

OptionUnit

대기중

ScannerOption.unit의 데이터 유형을 나타냅니다.

enum

"UNITLESS"
값이 단위가 없는 숫자입니다. 예를 들어 기준점이 될 수 있습니다.

'PIXEL'
이 값은 픽셀 수입니다(예: 스캔 크기).

"BIT"
이 값은 비트 수입니다(예: 색심도).

"MM"
값이 밀리미터로 측정됩니다(예: 스캔 크기).

"DPI"
값이 인치당 도트 수로 측정됩니다(예: 해상도).

"PERCENT"
이 값은 퍼센트입니다(예: 밝기).

"MICROSECOND"
값이 마이크로초 단위로 측정됩니다(예: 노출 시간).

ReadScanDataResponse

대기중

속성

  • 데이터

    ArrayBuffer 선택사항

    resultSUCCESS이면 스캔된 이미지 데이터의 다음 청크를 포함합니다. resultEOF이면 스캔된 이미지 데이터의 마지막 청크를 포함합니다.

  • estimatedCompletion

    number 선택사항

    resultSUCCESS이면 지금까지 전송된 총 스캔 데이터 양(0~100)의 추정치입니다.

  • job

    문자열

    readScanData()에 전달된 작업 핸들을 제공합니다.

  • 데이터 읽기 결과입니다. 값이 SUCCESS이면 data는 읽을 준비가 된 이미지 데이터의 다음 (길이가 0일 수 있음) 청크를 포함합니다. 값이 EOF이면 data에는 이미지 데이터의 마지막 청크가 포함됩니다.

ScannerInfo

대기중

속성

  • connectionType

    스캐너가 컴퓨터에 연결된 방식을 나타냅니다.

  • deviceUuid

    문자열

    동일한 실제 기기를 가리키는 다른 ScannerInfo 항목과의 일치

  • imageFormats

    문자열[]

    반환된 스캔을 위해 요청할 수 있는 MIME 유형의 배열입니다.

  • 제조업체

    문자열

    스캐너 제조업체

  • model

    문자열

    스캐너 모델(제공되는 경우) 또는 일반적인 설명입니다.

  • 이름

    문자열

    스캐너가 UI에 표시할 사람이 읽을 수 있는 이름입니다.

  • protocolType

    문자열

    Mopria, WSD 또는 epsonds와 같이 스캐너에 액세스하는 데 사용된 프로토콜 또는 드라이버에 대해 사람이 읽을 수 있는 설명 이는 기기가 여러 프로토콜을 지원할 경우 사용자가 프로토콜 중에서 선택할 수 있도록 하는 데 주로 유용합니다.

  • scannerId

    문자열

    특정 스캐너의 ID입니다.

  • 보안

    boolean

    true인 경우 TLS 또는 USB와 같은 수동 리스너가 스캐너 연결의 전송을 가로챌 수 없습니다.

ScannerOption

대기중

속성

  • 구성 가능성

    옵션 변경 가능 여부 및 변경 방법을 나타냅니다.

  • 제약조건

    OptionConstraint 선택사항

    현재 스캐너 옵션에 관한 OptionConstraint를 정의합니다.

  • 설명

    문자열

    옵션에 관한 더 긴 설명입니다.

  • isActive

    boolean

    옵션이 활성 상태이며 설정하거나 가져올 수 있음을 나타냅니다. false인 경우 value 속성이 설정되지 않습니다.

  • isAdvanced

    boolean

    UI에 기본적으로 이 옵션이 표시되지 않아야 함을 나타냅니다.

  • isAutoSettable

    boolean

    스캐너 드라이버에서 자동으로 설정할 수 있습니다.

  • isDetectable

    boolean

    이 옵션이 소프트웨어에서 감지될 수 있음을 나타냅니다.

  • isEmulated

    boolean

    true인 경우 스캐너 드라이버에 의해 에뮬레이션됩니다.

  • 이름

    문자열

    소문자 ASCII 문자, 숫자, 대시를 사용하는 옵션 이름입니다. 발음 구별 부호는 허용되지 않습니다.

  • title

    문자열

    인쇄할 수 있는 한 줄 제목입니다.

  • 유형

    이 옵션을 설정하는 데 필요한 value 속성에 포함된 데이터 유형입니다.

  • 단위

    이 옵션의 측정 단위입니다.

  • string|number|boolean|number[] optional

    해당하는 경우 옵션의 현재 값입니다. 이 속성의 데이터 유형은 type에 지정된 데이터 유형과 일치해야 합니다.

ScanOptions

속성

  • maxImages

    number 선택사항

    허용되는 스캔 이미지의 수입니다. 기본값은 1입니다.

  • mimeTypes

    string[] 선택사항

    호출자가 수락한 MIME 유형입니다.

ScanResults

속성

  • dataUrls

    문자열[]

    'src' 값으로 이미지 태그에 전달할 수 있는 형식의 데이터 이미지 URL 배열입니다.

  • mimeType

    문자열

    dataUrls의 MIME 유형입니다.

SetOptionResult

대기중

속성

  • 이름

    문자열

    설정된 옵션의 이름을 나타냅니다.

  • 옵션 설정의 결과를 나타냅니다.

SetOptionsResponse

대기중

속성

  • 옵션

    객체 선택사항

    제공된 모든 옵션을 설정하려고 시도한 후 옵션 이름에서 새 구성이 포함된 ScannerOption 값으로 키-값 매핑이 업데이트되었습니다. OpenScannerResponseoptions 속성과 구조가 동일합니다.

    일부 옵션이 성공적으로 설정되지 않은 경우에도 이 속성이 설정되지만, 업데이트된 구성을 가져오지 못하면 (예: 스캔 도중 스캐너의 연결이 끊긴 경우) 설정 해제됩니다.

  • 경기 결과

    전달된 모든 OptionSetting에 대해 하나씩 결과의 배열입니다.

  • scannerHandle

    문자열

    setOptions()에 전달된 스캐너 핸들을 제공합니다.

StartScanOptions

대기중

속성

  • format

    문자열

    검사된 데이터를 반환할 MIME 유형을 지정합니다.

  • maxReadSize

    number 선택사항

    0이 아닌 값을 지정하면 단일 readScanData 응답에서 반환되는 검사된 최대 바이트 수를 해당 값으로 제한합니다. 허용되는 최소 값은 32768 (32KB)입니다. 이 속성을 지정하지 않으면 반환된 청크의 크기가 스캔한 전체 이미지만큼 클 수 있습니다.

StartScanResponse

대기중

속성

  • job

    문자열 선택사항

    resultSUCCESS이면 스캔 데이터를 읽거나 작업을 취소하는 데 사용할 수 있는 핸들을 제공합니다.

  • 스캔 시작 결과입니다. 값이 SUCCESS이면 job 속성이 채워집니다.

  • scannerHandle

    문자열

    startScan()에 전달된 것과 동일한 스캐너 핸들을 제공합니다.

방법

cancelScan()

프로미스 대기 중
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

시작된 스캔을 취소하고 CancelScanResponse 객체로 확인되는 프로미스를 반환합니다. 콜백을 사용하면 콜백에 객체가 전달됩니다.

매개변수

  • job

    문자열

    이전에 startScan 호출에서 반환되었던 활성 스캔 작업의 핸들입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (response: CancelScanResponse)=>void

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

closeScanner()

프로미스 대기 중
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

전달된 핸들이 있는 스캐너를 닫고 CloseScannerResponse 객체로 확인되는 프로미스를 반환합니다. 콜백을 사용하면 콜백에 객체가 전달됩니다. 응답이 성공하지 않더라도 제공된 핸들은 무효화되므로 추가 작업에 사용해서는 안 됩니다.

매개변수

  • scannerHandle

    문자열

    이전에 openScanner 호출에서 반환된 열린 스캐너의 핸들을 지정합니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (response: CloseScannerResponse)=>void

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getOptionGroups()

프로미스 대기 중
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

이전에 openScanner에 의해 열린 스캐너에서 그룹 이름과 구성원 옵션을 가져옵니다. 이 메서드는 GetOptionGroupsResponse 객체로 확인되는 프로미스를 반환합니다. 이 함수에 콜백이 전달되면 반환된 데이터가 대신 전달됩니다.

매개변수

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getScannerList()

프로미스 대기 중
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

사용 가능한 스캐너 목록을 가져오고 GetScannerListResponse 객체로 확인되는 프로미스를 반환합니다. 이 함수에 콜백이 전달되면 반환된 데이터가 대신 전달됩니다.

매개변수

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

openScanner()

프로미스 대기 중
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

독점 액세스를 위한 스캐너를 열고 OpenScannerResponse 객체로 확인되는 프로미스를 반환합니다. 이 함수에 콜백이 전달되면 반환된 데이터가 대신 전달됩니다.

매개변수

  • scannerId

    문자열

    열 스캐너의 ID입니다. 이 값은 이전 getScannerList 호출에서 반환된 값입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (response: OpenScannerResponse)=>void

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

readScanData()

프로미스 대기 중
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

활성 작업 핸들에서 사용 가능한 이미지 데이터의 다음 청크를 읽고 ReadScanDataResponse 객체로 확인되는 프로미스를 반환합니다. 콜백을 사용하면 콜백에 객체가 전달됩니다.

**참고:**응답 결과가 길이가 0인 data 멤버가 있는 SUCCESS일 수 있습니다. 이는 스캐너가 아직 작동하지만 추가 데이터가 아직 준비되지 않았음을 의미합니다. 발신자가 잠시 기다린 후 다시 시도합니다.

스캔 작업이 완료되면 응답의 결과 값이 EOF가 됩니다. 이 응답에는 0이 아닌 최종 data 멤버가 포함될 수 있습니다.

매개변수

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

scan()

프로미스
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

문서 스캔을 수행하고 ScanResults 객체로 확인되는 프로미스를 반환합니다. 이 함수에 콜백이 전달되면 반환된 데이터가 대신 전달됩니다.

매개변수

  • 옵션

    스캔 매개변수가 포함된 객체입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (result: ScanResults)=>void

반환 값

  • Promise<ScanResults>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

setOptions()

프로미스 대기 중
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

지정된 스캐너의 옵션을 설정하고 전달된 OptionSetting 객체의 순서대로 모든 값을 설정하려고 시도한 결과가 포함된 SetOptionsResponse 객체로 확인되는 프로미스를 반환합니다. 콜백을 사용하면 콜백에 객체가 전달됩니다.

매개변수

  • scannerHandle

    문자열

    옵션을 설정할 스캐너의 핸들입니다. 이전에 openScanner 호출에서 반환된 값이어야 합니다.

  • 옵션

    스캐너에 적용할 OptionSetting 객체의 목록입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (response: SetOptionsResponse)=>void

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

startScan()

프로미스 대기 중
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

지정된 스캐너에서 스캔을 시작하고 StartScanResponse로 확인되는 프로미스를 반환합니다. 콜백을 사용하면 콜백에 객체가 전달됩니다. 호출이 성공하면 응답에는 후속 호출에서 스캔 데이터를 읽거나 스캔을 취소하는 데 사용할 수 있는 작업 핸들이 포함됩니다.

매개변수

  • scannerHandle

    문자열

    열려 있는 스캐너의 핸들입니다. 이전에 openScanner 호출에서 반환된 값이어야 합니다.

  • 스캔에 사용할 옵션을 나타내는 StartScanOptions 객체입니다. StartScanOptions.format 속성은 스캐너의 ScannerInfo에 반환된 항목 중 하나와 일치해야 합니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (response: StartScanResponse)=>void

반환 값

  • 프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.