chrome.documentScan

Descrição

Use a API chrome.documentScan para descobrir e extrair imagens de scanners de documentos conectados.

A API Document Scan foi projetada para permitir que apps e extensões acessem o conteúdo de documentos em papel em um scanner de documentos conectado.

Permissões

documentScan

Disponibilidade

Chrome 44 ou mais recente Somente no ChromeOS
A disponibilidade dos membros da API adicionados mais tarde é mostrada com esses membros.

Conceitos e uso

Essa API oferece suporte a duas formas de digitalização de documentos. Se o caso de uso funcionar com qualquer scanner e não exigir controle da configuração, use o método scan(). Casos de uso mais complicados exigem uma combinação de métodos, que só são compatíveis com o Chrome 124 e versões mais recentes.

Leitura simples

Para casos de uso simples, ou seja, aqueles que podem funcionar com qualquer scanner e não exigem controle de configuração, chame scan(). Esse método usa um objeto ScanOptions e retorna uma promessa que é resolvida com um objeto ScanResults. Os recursos dessa opção são limitados ao número de verificações e aos tipos MIME que serão aceitos pelo autor da chamada. As verificações são retornadas como URLs para exibição em uma tag <img> de uma interface do usuário.

Verificação complexa

As verificações complexas são realizadas em três fases, conforme descrito nesta seção. Este resumo não descreve todos os argumentos de método ou todas as propriedades retornadas em uma resposta. O objetivo é fornecer um guia geral para escrever código de scanner.

Discovery

  1. Chame getScannerList(). Os scanners disponíveis são retornados em uma promessa que é resolvida com um GetScannerListResponse.

    • O objeto de resposta contém uma matriz de objetos ScannerInfo.
    • A matriz pode conter várias entradas para um único scanner se ele oferecer suporte a vários protocolos ou métodos de conexão.
  2. Selecione um scanner na matriz retornada e salve o valor da propriedade scannerId.

    Use as propriedades de objetos ScannerInfo individuais para distinguir entre vários objetos do mesmo scanner. Os objetos do mesmo scanner terão o mesmo valor para a propriedade deviceUuid. ScannerInfo também contém uma propriedade imageFormats com uma matriz de tipos de imagem aceitos.

Configuração do leitor

  1. Chame openScanner(), transmitindo o ID do scanner salvo. Ele retorna uma promessa que é resolvida com um OpenScannerResponse. O objeto de resposta contém:

    • Uma propriedade scannerHandle, que você precisa salvar.

    • Uma propriedade de opções que contém propriedades específicas do scanner, que você precisa definir. Consulte Recuperar opções do scanner para mais informações.

  2. (Opcional) Se você precisar que o usuário forneça valores para as opções do scanner, crie uma interface do usuário. Você vai precisar das opções de verificação fornecidas pela etapa anterior e recuperar os grupos de opções fornecidos pelo leitor. Consulte Criar uma interface do usuário para mais informações.

  3. Crie uma matriz de objetos OptionSetting usando valores programáticos ou fornecidos pelo usuário. Consulte Definir opções do scanner para mais informações.

  4. Transmita a matriz de objetos OptionSetting para setOptions() para definir opções para o scanner. Ela retorna uma promessa que é resolvida com um SetOptionsResponse. Esse objeto contém uma versão atualizada das opções do scanner recuperadas na etapa 1 da configuração do scanner.

    Como a alteração de uma opção pode alterar as restrições de outra, talvez seja necessário repetir essas etapas várias vezes.

Verificação

  1. Crie um objeto StartScanOptions e transmita-o para startScan(). Ele retorna uma promessa que é resolvida com um StartScanResponse. A propriedade job é um identificador que você vai usar para ler dados de verificação ou cancelar a verificação.

  2. Transmita o handle do job para readScanData(). Ele retorna uma promessa que é resolvida com um objeto ReadScanDataResponse. Se os dados foram lidos com sucesso, a propriedade result é igual a SUCCESS e a propriedade data contém um ArrayBuffer com parte da verificação. estimatedCompletion contém uma porcentagem estimada do total de dados entregues até o momento.

  3. Repita a etapa anterior até que a propriedade result seja igual a EOF ou a um erro.

Quando o fim da verificação for alcançado, chame closeScanner() com o identificador do scanner salvo na etapa 3. Ele retorna uma promessa que é resolvida com um CloseScannerResponse. Chamar cancelScan() a qualquer momento após a criação do job vai encerrar a verificação.

Objetos de resposta

Todos os métodos retornam uma promessa que é resolvida com um objeto de resposta. A maioria delas contém uma propriedade result cujo valor é um membro de OperationResult. Algumas propriedades de objetos de resposta não contêm valores, a menos que o valor de result tenha um valor específico. Essas relacionamentos são descritas na referência de cada objeto de resposta.

Por exemplo, OpenScannerResponse.scannerHandle só terá um valor quando OpenScannerResponse.result for igual a SUCCESS.

Opções do scanner

As opções do scanner variam bastante de acordo com o dispositivo. Consequentemente, não é possível refletir as opções do scanner diretamente na API documentScan. Para contornar isso, o OpenScannerResponse (recuperado usando openScanner()) e o SetOptionsResponse (o objeto de resposta para setOptions()) contêm uma propriedade options, que é um objeto com opções específicas do scanner. Cada opção é um mapeamento de chave-valor, em que a chave é uma opção específica do dispositivo e o valor é uma instância de ScannerOption.

A estrutura geralmente tem esta aparência:

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

Por exemplo, imagine um scanner que retorna opções com os nomes "source" e "resolution". A estrutura do objeto options retornado será semelhante ao exemplo abaixo. Para simplificar, apenas respostas parciais de ScannerOption são mostradas.

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

Construir uma interface do usuário

Embora não seja obrigatório usar essa API, talvez você queira que um usuário escolha o valor de uma opção específica. Isso requer uma interface do usuário. Use o OpenScannerResponse (aberto por openScanner()) para extrair as opções do scanner anexado, conforme descrito na seção anterior.

Alguns scanners agrupam as opções de acordo com o dispositivo. Eles não afetam o comportamento das opções, mas, como esses grupos podem ser mencionados na documentação do produto de um scanner, eles precisam ser mostrados ao usuário. É possível extrair esses grupos chamando getOptionGroups(). Isso retorna uma promessa que é resolvida com um objeto GetOptionGroupsResponse. A propriedade groups contém uma matriz de grupos específica do scanner. Use as informações desses grupos para organizar as opções na OpenScannerResponse para exibição.

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

Como indicado na configuração do scanner, a alteração de uma opção pode alterar as restrições de outra. É por isso que setOptionsResponse (o objeto de resposta para setOptions()) contém outra propriedade options. Use essa opção para atualizar a interface do usuário. Repita conforme necessário até que todas as opções sejam definidas.

Definir as opções do scanner

Defina as opções do scanner transmitindo uma matriz de objetos OptionSetting para setOptions(). Confira um exemplo na seção Digitalizar uma página no tamanho carta a seguir.

Exemplos

Extrair uma página como um blob

Este exemplo mostra uma maneira de extrair uma página do scanner como um blob e demonstra o uso de startScan() e readScanData() usando o valor de 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" });
}

Digitalizar uma página de tamanho carta

Este exemplo mostra como selecionar um scanner, definir as opções dele e abrir. Em seguida, ele recupera o conteúdo de uma única página e fecha o scanner. Esse processo demonstra o uso de getScannerList(), openScanner(), setOptions() e closeScanner(). O conteúdo da página é recuperado chamando a função pageAsBlob() do exemplo anterior.

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);
}

Mostrar a configuração

Como declarado em outro lugar, mostrar as opções de configuração de um scanner a um usuário exige a chamada de getOptionGroups(), além das opções de scanner retornadas de uma chamada para openScanner(). Isso serve para que as opções possam ser mostradas aos usuários em grupos definidos pelo fabricante. Este exemplo mostra como fazer isso.

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");
      }
    }
  }
}

Tipos

CancelScanResponse

Chrome 125+

Propriedades

  • job

    string

    Fornece o mesmo identificador de job que foi transmitido para cancelScan().

  • resultado

    O resultado da verificação de cancelamento do back-end. Se o resultado for OperationResult.SUCCESS ou OperationResult.CANCELLED, a verificação foi cancelada e o leitor está pronto para iniciar uma nova verificação. Se o resultado for OperationResult.DEVICE_BUSY , o scanner ainda estará processando o cancelamento solicitado. O autor da chamada precisará aguardar um pouco e tentar a solicitação novamente. Outros valores de resultado indicam um erro permanente que não deve ser tentado novamente.

CloseScannerResponse

Chrome 125+

Propriedades

  • resultado

    O resultado do fechamento do scanner. Mesmo que esse valor não seja SUCCESS, o identificador será inválido e não poderá ser usado para outras operações.

  • scannerHandle

    string

    O mesmo identificador do scanner foi transmitido para closeScanner.

Configurability

Chrome 125+

Como uma opção pode ser alterada.

Enumeração

"NOT_CONFIGURABLE"
A opção é somente leitura.

"SOFTWARE_CONFIGURABLE"
A opção pode ser definida no software.

"HARDWARE_CONFIGURABLE"
A opção pode ser definida pelo usuário ao alternar ou pressionar um botão no scanner.

ConnectionType

Chrome 125+

Indica como o leitor está conectado ao computador.

Enumeração

"UNSPECIFIED"

"USB"

"NETWORK"

ConstraintType

Chrome 125+

O tipo de dados da restrição representado por um OptionConstraint.

Enumeração

"INT_RANGE"
A restrição em um intervalo de valores OptionType.INT. As propriedades min, max e quant de OptionConstraint serão long, e a propriedade list será redefinida.

"FIXED_RANGE"
A restrição em um intervalo de valores OptionType.FIXED. As propriedades min, max e quant de OptionConstraint serão double, e a propriedade list será redefinida.

"INT_LIST"
A restrição em uma lista específica de valores OptionType.INT. A propriedade OptionConstraint.list vai conter valores long, e as outras propriedades não serão definidas.

"FIXED_LIST"
A restrição em uma lista específica de valores OptionType.FIXED. A propriedade OptionConstraint.list vai conter valores double, e as outras propriedades não serão definidas.

"STRING_LIST"
A restrição em uma lista específica de valores OptionType.STRING. A propriedade OptionConstraint.list vai conter valores DOMString, e as outras propriedades não serão definidas.

DeviceFilter

Chrome 125+

Propriedades

  • Local

    booleano opcional

    Só retorne os scanners conectados diretamente ao computador.

  • seguro

    booleano opcional

    Só retorne scanners que usam um transporte seguro, como USB ou TLS.

GetOptionGroupsResponse

Chrome 125+

Propriedades

  • grupos

    OptionGroup[] opcional

    Se result for SUCCESS, uma lista de grupos de opções será fornecida na ordem fornecida pelo driver do scanner.

  • resultado

    O resultado da busca dos grupos de opções. Se o valor for SUCCESS, a propriedade groups será preenchida.

  • scannerHandle

    string

    O mesmo identificador do scanner foi transmitido para getOptionGroups.

GetScannerListResponse

Chrome 125+

Propriedades

  • resultado

    O resultado da enumeração. Os resultados parciais podem ser retornados mesmo que indiquem um erro.

  • scanners

    Uma lista possivelmente vazia de decodificadores que correspondem ao DeviceFilter fornecido.

OpenScannerResponse

Chrome 125+

Propriedades

  • opções

    objeto opcional

    Se result for SUCCESS, forneça um mapeamento de chave-valor em que a chave é uma opção específica do dispositivo e o valor é uma instância de ScannerOption.

  • resultado

    O resultado da abertura do scanner. Se o valor for SUCCESS, as propriedades scannerHandle e options serão preenchidas.

  • scannerHandle

    string opcional

    Se result for SUCCESS, um handle para o scanner que pode ser usado para outras operações.

  • scannerId

    string

    O ID do scanner foi transmitido para openScanner().

OperationResult

Chrome 125+

Um tipo enumerado que indica o resultado de cada operação.

Enumeração

"UNKNOWN"
Ocorreu uma falha desconhecida ou genérica.

"SUCCESS"
A operação foi concluída.

"SEM SUPORTE"
A operação não é compatível.

"CANCELLED"
A operação foi cancelada.

"DEVICE_BUSY"
O dispositivo está ocupado.

"INVALID"
Ou os dados ou um argumento transmitido para o método não são válidos.

"WRONG_TYPE"
O valor fornecido é do tipo de dados errado para a opção.

"EOF"
Não há mais dados disponíveis.

"ADF_JAMMED"
O alimentador de documentos está entupido.

"ADF_EMPTY"
O alimentador de documentos está vazio.

"COVER_OPEN"
A tampa do porta-malas está aberta.

"IO_ERROR"
Ocorreu um erro ao se comunicar com o dispositivo.

"ACCESS_DENIED"
O dispositivo exige autenticação.

"NO_MEMORY"
Não há memória suficiente no Chromebook para concluir a operação.

"UNREACHABLE"
O dispositivo não está acessível.

"MISSING"
O dispositivo está desconectado.

"INTERNAL_ERROR"
Ocorreu um erro em algum lugar que não seja o aplicativo de chamada.

OptionConstraint

Chrome 125+

Propriedades

  • list

    string[] | number[] opcional

  • max

    número opcional

  • min

    número opcional

  • quant

    número opcional

OptionGroup

Chrome 125+

Propriedades

  • membros

    string[]

    Uma matriz de nomes de opções na ordem fornecida pelo motorista.

  • título

    string

    Fornece um título imprimível, por exemplo, "Opções de geometria".

OptionSetting

Chrome 125+

Propriedades

  • nome

    string

    Indica o nome da opção a ser definida.

  • tipo

    Indica o tipo de dados da opção. O tipo de dados solicitado precisa corresponder ao tipo de dados real da opção.

  • valor

    string | number | boolean | number[] opcional

    Indica o valor a ser definido. Deixe desativado para solicitar a configuração automática de opções com autoSettable ativado. O tipo de dados fornecido para value precisa corresponder a type.

OptionType

Chrome 125+

O tipo de dados de uma opção.

Enumeração

"UNKNOWN"
O tipo de dados da opção é desconhecido. A propriedade value não será definida.

"BOOL"
A propriedade value será truefalse.

"INT"
Um número inteiro assinado de 32 bits. A propriedade value será longa ou long[], dependendo se a opção aceita mais de um valor.

"FIXED"
Um número double no intervalo -32768-32767,9999 com uma resolução de 1/65535. A propriedade value será double ou double[] dependendo se a opção usa mais de um valor. Os valores duplos que não podem ser representados exatamente são arredondados para o intervalo e a precisão disponíveis.

"STRING"
Uma sequência de qualquer byte, exceto NUL ("\0"). A propriedade value será uma DOMString.

"BUTTON"
Uma opção desse tipo não tem valor. Em vez disso, definir uma opção desse tipo causa um efeito colateral específico no driver do scanner. Por exemplo, uma opção do tipo botão pode ser usada por um driver de scanner para fornecer um meio de selecionar valores padrão ou para informar a um alimentador de documentos automático que ele deve avançar para a próxima folha de papel.

"GROUP"
Opção de agrupamento. Nenhum valor. Isso é incluído para compatibilidade, mas normalmente não é retornado em valores ScannerOption. Use getOptionGroups() para recuperar a lista de grupos com as opções de participantes.

OptionUnit

Chrome 125+

Indica o tipo de dados de ScannerOption.unit.

Enumeração

"UNITLESS"
O valor é um número sem unidade. Por exemplo, pode ser um limite.

"PIXEL"
O valor é um número de pixels, por exemplo, dimensões de digitalização.

"BIT"
O valor é o número de bits, por exemplo, profundidade de cor.

"MM"
O valor é medido em milímetros, por exemplo, dimensões de digitalização.

"DPI"
O valor é medido em pontos por polegada, por exemplo, resolução.

"PERCENT"
O valor é uma porcentagem, por exemplo, brilho.

"MICROSECOND"
O valor é medido em microssegundos, por exemplo, tempo de exposição.

ReadScanDataResponse

Chrome 125+

Propriedades

  • dados

    ArrayBuffer opcional

    Se result for SUCCESS, contém o bloco próximo de dados de imagem digitalizada. Se result for EOF, conterá o último bloco de dados de imagem digitalizada.

  • estimatedCompletion

    número opcional

    Se result for SUCCESS, uma estimativa de quanto do total de dados de verificação foi entregue até o momento, no intervalo de 0 a 100.

  • job

    string

    Fornece o identificador de job transmitido para readScanData().

  • resultado

    O resultado da leitura de dados. Se o valor for SUCCESS, data conterá o próximo (talvez de comprimento zero) bloco de dados de imagem pronto para leitura. Se o valor for EOF, o data conterá o último bloco de dados de imagem.

ScannerInfo

Chrome 125+

Propriedades

  • connectionType

    Indica como o leitor está conectado ao computador.

  • deviceUuid

    string

    Para correspondência com outras entradas ScannerInfo que apontam para o mesmo dispositivo físico.

  • imageFormats

    string[]

    Uma matriz de tipos MIME que podem ser solicitados para verificações retornadas.

  • fabricante

    string

    O fabricante do scanner.

  • modelo

    string

    O modelo do scanner, se disponível, ou uma descrição genérica.

  • nome

    string

    Um nome legível por humanos para o leitor ser exibido na interface.

  • protocolType

    string

    Uma descrição legível por humanos do protocolo ou driver usado para acessar o scanner, como Mopria, WSD ou epsonds. Isso é útil principalmente para permitir que um usuário escolha entre protocolos se um dispositivo oferece suporte a vários deles.

  • scannerId

    string

    O ID de um leitor específico.

  • seguro

    booleano

    Se verdadeiro, o transporte da conexão do scanner não pode ser interceptado por um listener passivo, como TLS ou USB.

ScannerOption

Chrome 125+

Propriedades

  • capacidade de configuração

    Indica se a opção pode ser alterada e como.

  • restrição

    Define OptionConstraint na opção de scanner atual.

  • descrição

    string

    Uma descrição mais longa da opção.

  • isActive

    booleano

    Indica que a opção está ativa e pode ser definida ou recuperada. Se for falso, a propriedade value não será definida.

  • isAdvanced

    booleano

    Indica que a interface não deve mostrar essa opção por padrão.

  • isAutoSettable

    booleano

    Pode ser definido automaticamente pelo driver do scanner.

  • isDetectable

    booleano

    Indica que essa opção pode ser detectada pelo software.

  • isEmulated

    booleano

    Emulado pelo driver do scanner, se verdadeiro.

  • nome

    string

    O nome da opção usando letras ASCII minúsculas, números e traços. Acentos não são permitidos.

  • título

    string

    Um título de uma linha para impressão.

  • tipo

    O tipo de dados contido na propriedade value, que é necessário para definir essa opção.

  • unidade

    A unidade de medida dessa opção.

  • valor

    string | number | boolean | number[] opcional

    O valor atual da opção, se relevante. O tipo de dados dessa propriedade precisa corresponder ao especificado em type.

ScanOptions

Propriedades

  • maxImages

    número opcional

    O número de imagens digitalizadas permitido. O padrão é 1.

  • mimeTypes

    string[] opcional

    Os tipos MIME aceitos pelo autor da chamada.

ScanResults

Propriedades

  • dataUrls

    string[]

    Uma matriz de URLs de imagens de dados em um formato que pode ser transmitido como o valor "src" para uma tag de imagem.

  • mimeType

    string

    O tipo MIME do dataUrls.

SetOptionResult

Chrome 125+

Propriedades

  • nome

    string

    Indica o nome da opção que foi definida.

  • resultado

    Indica o resultado da configuração da opção.

SetOptionsResponse

Chrome 125+

Propriedades

  • opções

    objeto opcional

    Um mapeamento de chave-valor atualizado de nomes de opções para valores ScannerOption contendo a nova configuração após tentar definir todas as opções fornecidas. Ela tem a mesma estrutura da propriedade options em OpenScannerResponse.

    Essa propriedade será definida mesmo que algumas opções não tenham sido definidas, mas será redefinida se a recuperação da configuração atualizada falhar (por exemplo, se o scanner for desconectado durante a digitalização).

  • resultados

    Uma matriz de resultados, uma para cada OptionSetting transmitido.

  • scannerHandle

    string

    Fornece o identificador do scanner transmitido para setOptions().

StartScanOptions

Chrome 125+

Propriedades

  • formato

    string

    Especifica o tipo MIME para retornar os dados digitalizados.

  • maxReadSize

    número opcional

    Se um valor diferente de zero for especificado, o valor máximo de bytes verificados retornados em uma única resposta readScanData será limitado a esse valor. O menor valor permitido é 32768 (32 KB). Se essa propriedade não for especificada, o tamanho de um bloco retornado poderá ser igual ao da imagem digitalizada.

StartScanResponse

Chrome 125+

Propriedades

  • job

    string opcional

    Se result for SUCCESS, forneça um identificador que pode ser usado para ler dados de verificação ou cancelar o job.

  • resultado

    O resultado de iniciar uma verificação. Se o valor for SUCCESS, a propriedade job será preenchida.

  • scannerHandle

    string

    Fornece o mesmo identificador do scanner que foi transmitido para startScan().

Métodos

cancelScan()

Promessa Chrome 125+
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Cancela uma verificação iniciada e retorna uma promessa que é resolvida com um objeto CancelScanResponse. Se um callback for usado, o objeto será transmitido a ele.

Parâmetros

  • job

    string

    O identificador de um job de verificação ativo retornado anteriormente de uma chamada para startScan.

  • callback

    função opcional

    O parâmetro callback tem este formato:

    (response: CancelScanResponse) => void

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

closeScanner()

Promessa Chrome 125+
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Fecha o scanner com o identificador transmitido e retorna uma promessa que é resolvida com um objeto CloseScannerResponse. Se um callback for usado, o objeto será transmitido a ele. Mesmo que a resposta não seja bem-sucedida, o identificador fornecido se torna inválido e não pode ser usado para outras operações.

Parâmetros

  • scannerHandle

    string

    Especifica o identificador de um scanner aberto que foi retornado anteriormente de uma chamada para openScanner.

  • callback

    função opcional

    O parâmetro callback tem este formato:

    (response: CloseScannerResponse) => void

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

getOptionGroups()

Promessa Chrome 125+
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Recebe os nomes de grupos e as opções de membros de um scanner aberto anteriormente por openScanner. Esse método retorna uma promessa que é resolvida com um objeto GetOptionGroupsResponse. Se um callback for transmitido para essa função, os dados retornados serão transmitidos para ela.

Parâmetros

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

getScannerList()

Promessa Chrome 125+
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

Consegue a lista de decodificadores disponíveis e retorna uma promessa que é resolvida com um objeto GetScannerListResponse. Se um callback for transmitido para essa função, os dados retornados serão transmitidos para ela.

Parâmetros

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

openScanner()

Promessa Chrome 125+
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

Abre um scanner para acesso exclusivo e retorna uma promessa que é resolvida com um objeto OpenScannerResponse. Se um callback for transmitido para essa função, os dados retornados serão transmitidos para ela.

Parâmetros

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

readScanData()

Promessa Chrome 125+
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Lê o próximo bloco de dados de imagem disponível de um identificador de job ativo e retorna uma promessa que é resolvida com um objeto ReadScanDataResponse. Se um callback for usado, o objeto será transmitido a ele.

**Observação:**É válido que um resultado de resposta seja SUCCESS com um membro data de comprimento zero. Isso significa que o scanner ainda está funcionando, mas ainda não tem dados adicionais prontos. O autor da chamada precisa esperar um pouco e tentar novamente.

Quando o job de verificação for concluído, a resposta terá o valor do resultado EOF. Essa resposta pode conter um membro data final diferente de zero.

Parâmetros

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

scan()

Promessa
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

Realiza uma verificação de documento e retorna uma promessa que é resolvida com um objeto ScanResults. Se um callback for transmitido para essa função, os dados retornados serão transmitidos para ela.

Parâmetros

  • opções

    Um objeto que contém parâmetros de verificação.

  • callback

    função opcional

    O parâmetro callback tem este formato:

    (result: ScanResults) => void

Retorna

  • Promise<ScanResults>

    Chrome 96 e versões mais recentes

    As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

setOptions()

Promessa Chrome 125+
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Define opções no scanner especificado e retorna uma promessa que é resolvida com um objeto SetOptionsResponse contendo o resultado da tentativa de definir todos os valores na ordem do objeto OptionSetting transmitido. Se um callback for usado, o objeto será transmitido a ele.

Parâmetros

  • scannerHandle

    string

    A alça do scanner para definir as opções. Esse valor precisa ser o mesmo retornado anteriormente de uma chamada para openScanner.

  • opções

    Uma lista de objetos OptionSetting a serem aplicados ao scanner.

  • callback

    função opcional

    O parâmetro callback tem este formato:

    (response: SetOptionsResponse) => void

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.

startScan()

Promessa Chrome 125+
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Inicia uma verificação no scanner especificado e retorna uma promessa que é resolvida com um StartScanResponse. Se um callback for usado, o objeto será transmitido a ele. Se a chamada for bem-sucedida, a resposta incluirá um identificador de trabalho que poderá ser usado em chamadas subsequentes para ler dados de verificação ou cancelar uma verificação.

Parâmetros

  • scannerHandle

    string

    O identificador de um leitor aberto. Esse valor precisa ser o mesmo retornado anteriormente de uma chamada para openScanner.

  • opções

    Um objeto StartScanOptions indicando as opções a serem usadas para a verificação. A propriedade StartScanOptions.format precisa corresponder a uma das entradas retornadas no ScannerInfo do scanner.

  • callback

    função opcional

    O parâmetro callback tem este formato:

    (response: StartScanResponse) => void

Retorna

  • As promessas têm suporte no Manifest V3 e versões mais recentes, mas os callbacks são fornecidos para compatibilidade com versões anteriores. Não é possível usar os dois na mesma chamada de função. A promessa é resolvida com o mesmo tipo transmitido para o callback.