chrome.documentScan

Descrição

Use a API chrome.documentScan para descobrir e recuperar imagens dos scanners de documentos anexados.

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

Permissões

documentScan

Disponibilidade

Chrome 44+ Apenas no ChromeOS
A disponibilidade para membros da API adicionados posteriormente é mostrada com eles.

Conceitos e uso

Essa API é compatível com duas formas de verificar documentos. Caso seu caso de uso funcione com qualquer scanner e não exija controle da configuração, use o método scan(). Os casos de uso mais complicados exigem uma combinação de métodos, com suporte apenas no Chrome 124 e versões mais recentes.

Verificação 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> para uma interface do usuário.

Verificação complexa

Verificações complexas são realizadas em três fases, conforme descrito nesta seção. Esse esboço não descreve todos os argumentos de método ou todas as propriedades retornadas em uma resposta. O objetivo dele é apenas fornecer um guia geral sobre como escrever o código do scanner.

Discovery

  1. Chame getScannerList(). Os verificadores 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 caso ele seja compatível com vários protocolos ou métodos de conexão.
  2. Selecione um scanner da 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. 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 compatíveis.

Configuração do scanner

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

    • Uma propriedade scannerHandle, que você precisará salvar.

    • Uma propriedade de opções contendo propriedades específicas do scanner, que você precisará definir. Consulte Recuperar opções do scanner para obter mais informações.

  2. (Opcional) Se for necessário que o usuário forneça valores para as opções do verificador, crie uma interface do usuário. Você precisará das opções do scanner fornecidas pela etapa anterior e recuperar os grupos de opções fornecidos pelo scanner. Consulte Construir 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() a fim de 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 de configuração do scanner.

    Como mudar 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 o transmita para startScan(). Ela retorna uma promessa que é resolvida com um StartScanResponse. A propriedade job é um handle que você usará para ler os dados ou cancelar a verificação.

  2. Transmita o identificador do job para readScanData(). Ela retorna uma promessa que é resolvida com um objeto ReadScanDataResponse. Se os dados forem lidos com êxito, a propriedade result é igual a SUCCESS e a propriedade data contém um ArrayBuffer com parte da verificação. Observe que estimatedCompletion contém uma porcentagem estimada do total de dados enviados até o momento.

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

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

Objetos de resposta

Todos os métodos retornam uma promessa que é resolvida com um objeto de resposta de algum tipo. A maioria deles contém uma propriedade result cujo valor é membro de OperationResult. Algumas propriedades de objetos de resposta não conterão valores, a menos que o valor de result tenha um valor específico. Essas relações 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 de scanner variam consideravelmente 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 contendo 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.

Em geral, a estrutura é assim:

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

Por exemplo, imagine um scanner que retorne opções chamadas "origem" e "resolução". A estrutura do objeto options retornado será semelhante ao exemplo a seguir. Para simplificar, apenas respostas ScannerOption parciais são mostradas.

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

Criar uma interface do usuário

Embora não seja obrigatório para usar essa API, é recomendável que o 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 recuperar as opções do scanner anexado, conforme descrito na seção anterior.

Alguns scanners agrupam opções de maneiras específicas do dispositivo. Eles não afetam o comportamento das opções, mas, como esses grupos podem ser mencionados na documentação de um scanner, esses grupos devem ser mostrados ao usuário. Chame getOptionGroups() para recuperar esses grupos. Isso retorna uma promessa que é resolvida com um objeto GetOptionGroupsResponse. A propriedade groups contém uma matriz de grupos específica do verificador. Use as informações nesses grupos para organizar as opções no OpenScannerResponse para exibição.

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

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

Definir opções do leitor

Defina as opções do scanner transmitindo uma matriz de objetos OptionSetting para setOptions(). Veja um exemplo na seção Digitalizar uma página com uma letra.

Exemplos

Recuperar uma página como um blob

Este exemplo mostra uma maneira de recuperar 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 com uma letra

Este exemplo mostra como selecionar um scanner, definir as opções e abri-lo. 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 mencionado em outro lugar, para mostrar as opções de configuração de um scanner a um usuário, é preciso chamar getOptionGroups(), além das opções do scanner retornadas de uma chamada para openScanner(). Dessa forma, as opções podem ser exibidas 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

Pendente

Propriedades

  • job

    string

    Fornece o mesmo identificador do 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, isso significa que a verificação foi cancelada e o scanner está pronto para iniciar uma nova verificação. Se o resultado for OperationResult.DEVICE_BUSY , isso significa que o scanner ainda está processando o cancelamento solicitado. O autor da chamada deve aguardar um pouco e tentar a solicitação novamente. Outros valores de resultado indicam um erro permanente que não deve ser repetido.

CloseScannerResponse

Pendente

Propriedades

  • resultado

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

  • scannerHandle

    string

    O mesmo identificador do scanner que foi transmitido para closeScanner.

Configurability

Pendente

Como uma opção pode ser alterada.

Tipo enumerado

"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 pressionando ou pressionando um botão no scanner.

ConnectionType

Pendente

Indica como o scanner está conectado ao computador.

Tipo enumerado

"USB"

ConstraintType

Pendente

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

Tipo enumerado

"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 delas não será definida.

"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 delas não será definida.

"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

Pendente

Propriedades

  • Local

    booleano opcional

    Devolva apenas scanners que estejam diretamente conectados ao computador.

  • seguro

    booleano opcional

    Devolva apenas scanners que usam um transporte seguro, como USB ou TLS.

GetOptionGroupsResponse

Pendente

Propriedades

  • grupos

    OptionGroup[] opcional

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

  • resultado

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

  • scannerHandle

    string

    O mesmo identificador do scanner que foi transmitido para getOptionGroups.

GetScannerListResponse

Pendente

Propriedades

  • resultado

    O resultado da enumeração. Resultados parciais podem ser retornados mesmo que isso indique um erro.

  • scanners

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

OpenScannerResponse

Pendente

Propriedades

  • do modelo.

    objeto opcional

    Se result for SUCCESS, vai fornecer 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 identificador para o scanner que pode ser usado em outras operações.

  • scannerId

    string

    O ID do scanner transmitido para openScanner().

OperationResult

Pendente

Um enum que indica o resultado de cada operação.

Tipo enumerado

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

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

"INCOMPATÍVEL"
A operação não é aceita.

"CANCELLED"
A operação foi cancelada.

"DEVICE_BUSY"
O dispositivo está ocupado.

"INVALID"
Os dados ou um argumento passados para o método não são válidos.

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

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

"ADF_JAMMED"
O alimentador de documentos está trancado.

"ADF_EMPTY"
O alimentador de documentos está vazio.

"COVER_OPEN"
A capa da cama plana 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 disponível no Chromebook para concluir a operação.

INALCENTE
O dispositivo está inacessível.

AUSENTE
O dispositivo está desconectado.

"INTERNAL_ERROR"
Ocorreu um erro além do aplicativo de chamada.

OptionConstraint

Pendente

Propriedades

  • lista

    string[]|number[] optional

  • max

    número opcional

  • min

    número opcional

  • quant.

    número opcional

OptionGroup

Pendente

Propriedades

  • membros

    string[]

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

  • title

    string

    Fornece um título para impressão, por exemplo, "Opções de geometria".

OptionSetting

Pendente

Propriedades

  • name

    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 subjacente.

  • valor

    string|number|boolean|number[] optional

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

OptionType

Pendente

O tipo de dados de uma opção.

Tipo enumerado

"UNKNOWN"
O tipo de dados da opção é desconhecido. A propriedade value será deixada sem definição.

"BOOL"
A propriedade value será truefalsa.

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

"FIXED"
Um duplo no intervalo -32768-32767.9999 com uma resolução de 1/65535. A propriedade value será dupla ou dupla[] se a opção assumir mais de um valor. Valores duplos que não podem ser representados exatamente serã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.

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

"GROUP"
Opção de agrupamento. Nenhum valor. Isso está 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 membros.

OptionUnit

Pendente

Indica o tipo de dados de ScannerOption.unit.

Tipo enumerado

"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 verificaçã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 leitura.

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

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

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

ReadScanDataResponse

Pendente

Propriedades

  • dados

    ArrayBuffer opcional

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

  • estimatedCompletion

    número opcional

    Se result for SUCCESS, é uma estimativa de quantos dados totais da verificação foram entregues até o momento, no intervalo de 0 a 100.

  • job

    string

    Fornece o identificador do job transmitido para readScanData().

  • resultado

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

ScannerInfo

Pendente

Propriedades

  • connectionType

    Indica como o scanner 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 pode ser solicitada para verificações retornadas.

  • fabricante

    string

    O fabricante do scanner.

  • model

    string

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

  • name

    string

    Um nome legível para o scanner a exibir na interface.

  • protocolType

    string

    Uma descrição legível 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 oferecer suporte a vários deles.

  • scannerId

    string

    O ID de um scanner específico.

  • seguro

    boolean

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

ScannerOption

Pendente

Propriedades

  • configurabilidade

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

  • restrição

    Define OptionConstraint na opção atual do leitor.

  • description

    string

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

  • isActive

    boolean

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

  • isAdvanced

    boolean

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

  • isAutoSettable

    boolean

    Pode ser definido automaticamente pelo driver do scanner.

  • isDetectable

    boolean

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

  • isEmulated

    boolean

    Emulado pelo driver do scanner, se verdadeiro.

  • name

    string

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

  • title

    string

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

  • Tipo

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

  • unidade

    A unidade de medida da opção.

  • valor

    string|number|boolean|number[] optional

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

ScanOptions

Propriedades

  • maxImages

    número opcional

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

  • mimeTypes

    string[] opcional

    Os tipos MIME que são aceitos pelo autor da chamada.

ScanResults

Propriedades

  • dataUrls

    string[]

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

  • mimeType

    string

    O tipo MIME do dataUrls.

SetOptionResult

Pendente

Propriedades

  • name

    string

    Indica o nome da opção definida.

  • resultado

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

SetOptionsResponse

Pendente

Propriedades

  • do modelo.

    objeto opcional

    Um mapeamento de chave-valor atualizado dos nomes de opções para valores ScannerOption contendo a nova configuração depois de tentar definir todas as opções fornecidas. Ele tem a mesma estrutura da propriedade options no OpenScannerResponse.

    Essa propriedade será definida mesmo que algumas opções não sejam definidas corretamente, mas não será definida se a recuperação da configuração atualizada falhar (por exemplo, se o scanner estiver desconectado no meio da verificação).

  • resultados

    Uma matriz de resultados, um para cada OptionSetting transmitido.

  • scannerHandle

    string

    Fornece o identificador do scanner transmitido para setOptions().

StartScanOptions

Pendente

Propriedades

  • formato

    string

    Especifica o tipo MIME para retornar os dados verificados.

  • maxReadSize

    número opcional

    Se um valor diferente de zero for especificado, limitará a esse valor o número máximo de bytes verificados retornados em uma única resposta readScanData. O menor valor permitido é 32768 (32 KB). Se essa propriedade não for especificada, o tamanho da parte retornada poderá ser tão grande quanto a imagem inteira digitalizada.

StartScanResponse

Pendente

Propriedades

  • job

    string opcional

    Se result for SUCCESS, fornece 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 Pendente
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á passado 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 optional

    O parâmetro callback tem esta aparência:

    (response: CancelScanResponse)=>void

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

closeScanner()

Promessa Pendente
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á passado a ele. Mesmo que a resposta não seja bem-sucedida, o identificador fornecido se torna inválido e não deve ser usado em 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 optional

    O parâmetro callback tem esta aparência:

    (response: CloseScannerResponse)=>void

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

getOptionGroups()

Promessa Pendente
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

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

Parâmetros

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

getScannerList()

Promessa Pendente
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

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

Parâmetros

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

openScanner()

Promessa Pendente
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 passado para essa função, os dados retornados serão transmitidos a ela.

Parâmetros

  • scannerId

    string

    O ID de um scanner a ser aberto. Esse valor é aquele retornado de uma chamada anterior para getScannerList.

  • callback

    função optional

    O parâmetro callback tem esta aparência:

    (response: OpenScannerResponse)=>void

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

readScanData()

Promessa Pendente
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

**Observação**: o resultado de uma resposta pode ser SUCCESS com um membro data de tamanho zero. Isso significa que o scanner ainda está funcionando, mas não tem dados adicionais prontos. O autor da chamada precisa aguardar e tentar novamente.

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

Parâmetros

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

scan()

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

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

Parâmetros

  • do modelo.

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

  • callback

    função optional

    O parâmetro callback tem esta aparência:

    (result: ScanResults)=>void

Retorna

  • Promise<ScanResults>

    Chrome 96 ou mais recente

    Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

setOptions()

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

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

Parâmetros

  • scannerHandle

    string

    A alça do scanner em que as opções serão definidas. Precisa ser um valor retornado anteriormente de uma chamada para openScanner.

  • do modelo.

    Uma lista de objetos OptionSetting a serem aplicados ao scanner.

  • callback

    função optional

    O parâmetro callback tem esta aparência:

    (response: SetOptionsResponse)=>void

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.

startScan()

Promessa Pendente
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á passado a ele. Se a chamada for bem-sucedida, a resposta incluirá um identificador de job que pode ser usado em chamadas subsequentes para ler os dados da verificação ou cancelar uma verificação.

Parâmetros

  • scannerHandle

    string

    A alça de um scanner aberto. Precisa ser um valor retornado anteriormente de uma chamada para openScanner.

  • do modelo.

    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 optional

    O parâmetro callback tem esta aparência:

    (response: StartScanResponse)=>void

Retorna

  • Promessas são compatíveis com o Manifest V3 e versões mais recentes, mas 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 que é passado para o callback.