chrome.documentScan

Deskripsi

Gunakan chrome.documentScan API untuk menemukan dan mengambil gambar dari pemindai dokumen yang terlampir.

Document Scan API didesain untuk memungkinkan aplikasi dan ekstensi melihat isi dokumen kertas pada pemindai dokumen yang dilampirkan.

Izin

documentScan

Ketersediaan

Chrome 44 dan yang lebih baru Khusus ChromeOS
Ketersediaan untuk anggota API yang ditambahkan nanti akan ditampilkan bersama anggota tersebut.

Konsep dan penggunaan

API ini mendukung dua cara memindai dokumen. Jika kasus penggunaan Anda dapat dengan pemindai apa pun dan tidak memerlukan kontrol konfigurasi, gunakan metode Metode scan(). Kasus penggunaan yang lebih rumit memerlukan kombinasi metode, yang hanya didukung di Chrome 124 dan yang lebih baru.

Pemindaian sederhana

Untuk kasus penggunaan sederhana, artinya dapat bekerja dengan pemindai apa pun dan tidak memerlukan kontrol konfigurasi, panggil scan(). Metode ini memerlukan ScanOptions dan menampilkan Promise yang di-resolve dengan ScanResults . Kemampuan opsi ini terbatas pada jumlah pemindaian dan jenis MIME yang akan diterima oleh pemanggil. Pemindaian ditampilkan sebagai URL agar ditampilkan dalam tag <img> untuk antarmuka pengguna.

Pemindaian kompleks

Pemindaian kompleks dilakukan dalam tiga fase sebagaimana dijelaskan dalam bagian ini. Garis besar ini tidak menjelaskan setiap argumen metode atau setiap properti yang ditampilkan dalam sebuah respons. Aplikasi ini hanya dimaksudkan untuk memberikan panduan umum tentang cara menulis pemindai pada kode sumber.

Discovery

  1. Panggil getScannerList(). Pemindai yang tersedia adalah yang ditampilkan di Promise yang di-resolve dengan GetScannerListResponse

    • Objek respons berisi array ScannerInfo objek terstruktur dalam jumlah besar.
    • {i>Array<i} dapat berisi beberapa entri untuk satu pemindai jika pemindai tersebut mendukung beberapa protokol atau metode koneksi.
  2. Pilih pemindai dari himpunan (array) yang ditampilkan dan simpan nilai pemindaiannya scannerId.

    Menggunakan properti setiap objek ScannerInfo untuk membedakan beberapa objek pada pemindai yang sama. Objek dari pemindai yang sama akan memiliki nilai yang sama untuk properti deviceUuid. ScannerInfo juga berisi properti imageFormats yang berisi array jenis gambar yang didukung.

Konfigurasi pemindai

  1. Panggil openScanner(), dengan meneruskan ID pemindai yang tersimpan. Metode ini menampilkan Promise yang di-resolve dengan OpenScannerResponse. Objek respons berisi:

    • Properti scannerHandle, yang harus Anda simpan.

    • Properti opsi yang berisi properti khusus pemindai, yang akan perlu diatur. Lihat Mengambil opsi pemindai untuk informasi selengkapnya.

  2. (Opsional) Jika Anda ingin pengguna memberikan nilai opsi pemindai, membangun antarmuka pengguna. Anda memerlukan opsi pemindai yang disediakan oleh di langkah sebelumnya, dan Anda harus mengambil grup opsi yang disediakan oleh pemindai. Lihat Membuat antarmuka pengguna untuk informasi selengkapnya.

  3. Membuat array objek OptionSetting menggunakan terprogram atau nilai yang diberikan pengguna. Lihat Menyetel opsi pemindai untuk informasi selengkapnya tidak akurat atau tidak sesuai.

  4. Teruskan array objek OptionSetting ke setOptions() untuk menyetel opsi bagi pemindai. Ini menampilkan Promise yang di-resolve dengan SetOptionsResponse Objek ini berisi versi terbaru opsi pemindai yang diambil di langkah 1 pemindai konfigurasi Anda.

    Sejak mengubah satu dapat mengubah batasan pada opsi lain, Anda mungkin perlu mengulanginya langkah beberapa kali.

Memindai

  1. Membuat objek StartScanOptions dan meneruskannya ke startScan(). Metode ini menampilkan Promise yang me-resolve dengan StartScanResponse. Properti job-nya sebuah {i>handle<i} yang akan Anda gunakan untuk membaca data pemindaian atau membatalkan pemindaian itu.

  2. Teruskan nama sebutan channel ke readScanData(). Metode ini mengembalikan Promise yang diselesaikan dengan Objek ReadScanDataResponse. Jika data telah dibaca berhasil, properti result-nya sama dengan SUCCESS dan properti data berisi ArrayBuffer pada sebagian pemindaian. Perhatikan bahwa estimatedCompletion berisi estimasi dari total data yang telah dikirim sejauh ini.

  3. Ulangi langkah sebelumnya hingga properti result sama dengan EOF atau mengalami error.

Saat mencapai akhir pemindaian, panggil closeScanner() dengan tuas pemindai disimpan di langkah 3. Metode ini menampilkan Promise yang di-resolve dengan CloseScannerResponse Menelepon cancelScan() kapan saja setelah tugas dibuat akan pemindaian akhir.

Objek respons

Semua metode menampilkan Promise yang di-resolve dengan semacam objek respons. Sebagian besar berisi properti result yang nilainya adalah anggota OperationResult. Beberapa properti objek respons tidak akan berisi nilai kecuali nilai result memiliki nilai tertentu. Ini hubungan dijelaskan dalam referensi untuk setiap objek respons.

Misalnya, OpenScannerResponse.scannerHandle hanya akan memiliki nilai jika OpenScannerResponse.result sama dengan SUCCESS.

Opsi pemindai

Opsi pemindai sangat bervariasi menurut perangkat. Akibatnya, tidak mungkin untuk mencerminkan opsi pemindai secara langsung di dalam documentScan API. Untuk bepergian ini, OpenScannerResponse (diambil menggunakan openScanner()) dan SetOptionsResponse (objek respons untuk setOptions()) berisi properti options yang merupakan objek yang berisi opsi khusus pemindai. Setiap opsi adalah pemetaan nilai kunci dengan kunci berupa opsi khusus perangkat dan nilainya adalah instance ScannerOption

Strukturnya umumnya terlihat seperti ini:

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

Misalnya, bayangkan ada pemindai yang menampilkan opsi bernama "sumber" dan "resolusi". Struktur objek options yang ditampilkan akan terlihat seperti ini seperti contoh berikut. Untuk mempermudah, hanya sebagian ScannerOption respons ditampilkan.

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

Membuat antarmuka pengguna

Meskipun tidak diwajibkan untuk menggunakan API ini, Anda mungkin menginginkan pengguna untuk memilih nilai untuk opsi tertentu. Hal ini memerlukan antarmuka pengguna. Gunakan OpenScannerResponse (dibuka oleh openScanner()) untuk mengambil opsi lampiran seperti yang dijelaskan di bagian sebelumnya.

Beberapa pemindai mengelompokkan opsi dengan cara khusus perangkat. Setelan ini tidak memengaruhi opsi yang berbeda, namun karena kelompok ini mungkin disebutkan dalam produk pemindai dokumentasi lain, grup tersebut harus ditampilkan kepada pengguna. Anda dapat mengambil data ini grup dengan memanggil getOptionGroups(). Ini akan mengembalikan Promise yang diselesaikan dengan Objek GetOptionGroupsResponse. groups berisi array grup khusus pemindai. Gunakan informasi di kelompok ini untuk mengatur opsi dalam OpenScannerResponse untuk display.

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

Seperti yang dinyatakan di bagian Konfigurasi pemindai, mengubah satu opsi dapat mengubah batasan pada opsi lain. Inilah sebabnya setOptionsResponse (objek respons untuk setOptions()) berisi properti options lain. Gunakan ini untuk memperbarui antarmuka pengguna. Kemudian ulangi sesuai kebutuhan sampai semua pilihan atur.

Menyetel opsi pemindai

Atur opsi pemindai dengan meneruskan array Objek OptionSetting ke setOptions(). Sebagai contoh, lihat bagian Memindai halaman ukuran huruf berikut.

Contoh

Mengambil halaman sebagai blob

Contoh ini menunjukkan salah satu cara untuk mengambil laman dari pemindai sebagai blob dan menunjukkan penggunaan startScan() dan readScanData() menggunakan nilai 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" });
}

Memindai halaman berukuran huruf

Contoh ini menunjukkan cara memilih pemindai, menyetel opsinya, dan membukanya. Ini kemudian mengambil isi dari satu laman dan menutup pemindai. Proses ini menunjukkan menggunakan getScannerList(), openScanner(), setOptions(), dan closeScanner(). Perhatikan bahwa konten halaman diambil dengan memanggil fungsi pageAsBlob() dari contoh sebelumnya.

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

Menampilkan konfigurasi

Seperti yang dinyatakan di bagian lain, menunjukkan opsi konfigurasi pemindai kepada pengguna memerlukan memanggil getOptionGroups() selain opsi pemindai yang ditampilkan dari panggilan ke openScanner(). Ini dimaksudkan agar opsi dapat ditampilkan kepada pengguna di grup yang ditentukan produsen. Contoh ini menunjukkan cara melakukannya.

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

Jenis

CancelScanResponse

Chrome 125 dan yang lebih baru

Properti

  • tugas

    string

    Memberikan handle tugas yang sama yang diteruskan ke cancelScan().

  • Hasil pemindaian pembatalan backend. Jika hasilnya adalah OperationResult.SUCCESS atau OperationResult.CANCELLED, pemindaian telah dibatalkan dan pemindai siap memulai pemindaian baru. Jika hasilnya adalah OperationResult.DEVICE_BUSY , pemindai masih memproses pembatalan yang diminta; pemanggil harus menunggu beberapa saat dan mencoba permintaan lagi. Nilai hasil lainnya menunjukkan error permanen yang tidak boleh dicoba lagi.

CloseScannerResponse

Chrome 125 dan yang lebih baru

Properti

  • Hasil dari penutupan pemindai. Meskipun nilai ini bukan SUCCESS, handle tidak akan valid dan tidak boleh digunakan untuk operasi lebih lanjut.

  • scannerHandle

    string

    Tuas pemindai yang sama seperti yang diteruskan ke closeScanner.

Configurability

Chrome 125 dan yang lebih baru

Cara mengubah opsi.

Enum

"NOT_CONFIGURABLE"
Opsi ini bersifat hanya baca.

"SOFTWARE_CONFIGURABLE"
Opsi ini dapat disetel di software.

"HARDWARE_CONFIGURABLE"
Opsi ini dapat disetel oleh pengguna yang mengalihkan atau menekan tombol di pemindai.

ConnectionType

Chrome 125 dan yang lebih baru

Menunjukkan bagaimana pemindai terhubung ke komputer.

Enum

"UNSPECIFIED"

"USB"

"JARINGAN"

ConstraintType

Chrome 125 dan yang lebih baru

Jenis data batasan yang diwakili oleh OptionConstraint.

Enum

"INT_RANGE"
Batasan pada rentang nilai OptionType.INT. Properti min, max, dan quant dari OptionConstraint akan menjadi long, dan properti list-nya akan dibatalkan penetapannya.

"FIXED_RANGE"
Batasan pada rentang nilai OptionType.FIXED. Properti min, max, dan quant dari OptionConstraint akan menjadi double, dan properti list-nya akan dibatalkan penetapannya.

"INT_LIST"
Batasan pada daftar nilai OptionType.INT tertentu. Properti OptionConstraint.list akan berisi nilai long, dan properti lainnya akan dibatalkan penetapannya.

"FIXED_LIST"
Batasan pada daftar nilai OptionType.FIXED tertentu. Properti OptionConstraint.list akan berisi nilai double, dan properti lainnya akan dibatalkan penetapannya.

"STRING_LIST"
Batasan pada daftar nilai OptionType.STRING tertentu. Properti OptionConstraint.list akan berisi nilai DOMString, dan properti lainnya akan dibatalkan penetapannya.

DeviceFilter

Chrome 125 dan yang lebih baru

Properti

  • lokal

    boolean opsional

    Hanya kembalikan pemindai yang terpasang langsung ke komputer.

  • aman

    boolean opsional

    Hanya tampilkan pemindai yang menggunakan transport aman, seperti USB atau TLS.

GetOptionGroupsResponse

Chrome 125 dan yang lebih baru

Properti

  • yang dilacak

    OptionGroup[] opsional

    Jika result adalah SUCCESS, daftar ini akan memberikan daftar grup opsi dalam urutan yang disediakan oleh driver pemindai.

  • Hasil dari mendapatkan grup opsi. Jika nilai ini adalah SUCCESS, properti groups akan diisi.

  • scannerHandle

    string

    Tuas pemindai yang sama seperti yang diteruskan ke getOptionGroups.

GetScannerListResponse

Chrome 125 dan yang lebih baru

Properti

  • Hasil enumerasi. Perhatikan bahwa hasil parsial dapat dikembalikan meskipun ini mengindikasikan adanya error.

  • pemindai

    Daftar pemindai yang mungkin kosong dan cocok dengan DeviceFilter yang diberikan.

OpenScannerResponse

Chrome 125 dan yang lebih baru

Properti

  • opsi

    objek opsional

    Jika result adalah SUCCESS, memberikan pemetaan nilai kunci dengan kuncinya adalah opsi khusus perangkat dan nilainya adalah instance ScannerOption.

  • Hasil membuka pemindai. Jika nilai ini adalah SUCCESS, properti scannerHandle dan options akan diisi.

  • scannerHandle

    string opsional

    Jika result adalah SUCCESS, tuas ke pemindai yang dapat digunakan untuk operasi lebih lanjut.

  • scannerId

    string

    ID pemindai diteruskan ke openScanner().

OperationResult

Chrome 125 dan yang lebih baru

Enum yang menunjukkan hasil dari setiap operasi.

Enum

"UNKNOWN"
Terjadi error yang tidak diketahui atau umum.

"SUCCESS"
Operasi berhasil.

"UNSUPPORTED"
Operasi tidak didukung.

"CANCELLED"
Operasi dibatalkan.

"DEVICE_BUSY"
Perangkat sedang sibuk.

"INVALID"
Data atau argumen yang diteruskan ke metode tidak valid.

"WRONG_TYPE"
Nilai yang diberikan adalah jenis data yang salah untuk opsi pokok.

"EOF"
Tidak ada data lagi yang tersedia.

"ADF_JAMMED"
Pengumpan dokumen macet.

"ADF_EMPTY"
Pengumpan dokumen kosong.

"COVER_OPEN"
Penutup kasur datar terbuka.

"IO_ERROR"
Terjadi error saat berkomunikasi dengan perangkat.

"ACCESS_DENIED"
Perangkat memerlukan autentikasi.

"NO_MEMORY"
Memori tidak cukup di Chromebook untuk menyelesaikan operasi.

"UNREACHABLE"
Perangkat tidak dapat dijangkau.

"MISSING"
Perangkat terputus.

"INTERNAL_ERROR"
Terjadi error selain di aplikasi panggilan.

OptionConstraint

Chrome 125 dan yang lebih baru

Properti

  • list

    string[] | number[] opsional

  • maks

    angka opsional

  • mnt

    angka opsional

  • kuantitas

    angka opsional

OptionGroup

Chrome 125 dan yang lebih baru

Properti

  • anggota

    {i>string<i}[]

    Array nama opsi dalam urutan yang diberikan oleh driver.

  • judul

    string

    Memberikan judul yang dapat dicetak, misalnya "Opsi geometri".

OptionSetting

Chrome 125 dan yang lebih baru

Properti

  • nama

    string

    Menunjukkan nama opsi yang akan ditetapkan.

  • jenis

    Menunjukkan jenis data opsi. Jenis data yang diminta harus cocok dengan jenis data sebenarnya dari opsi pokok.

  • nilai

    string | angka | boolean | number[] opsional

    Menunjukkan nilai yang akan ditetapkan. Jangan disetel untuk meminta setelan otomatis bagi opsi yang mengaktifkan autoSettable. Jenis data yang diberikan untuk value harus cocok dengan type.

OptionType

Chrome 125 dan yang lebih baru

Jenis data opsi.

Enum

"UNKNOWN"
Jenis data opsi tidak diketahui. Penetapan properti value akan dibatalkan.

"BOOL"
Properti value akan berupa salah satu dari truefalse.

"INT"
Bilangan bulat 32-bit yang ditandatangani. Properti value akan panjang atau panjang[], bergantung pada apakah opsi tersebut memerlukan lebih dari satu nilai.

"FIXED"
Dua dalam rentang -32768-32767,9999 dengan resolusi 1/65535. Properti value akan menjadi double atau double[] bergantung pada apakah opsi tersebut memerlukan lebih dari satu nilai. Nilai ganda yang tidak dapat direpresentasikan secara tepat akan dibulatkan ke rentang dan presisi yang tersedia.

"STRING"
Urutan byte apa pun kecuali NUL ('\0'). Properti value akan menjadi DOMString.

"BUTTON"
Opsi jenis ini tidak memiliki nilai. Sebaliknya, menyetel opsi jenis ini akan menyebabkan efek samping khusus opsi di driver pemindai. Misalnya, opsi jenis tombol dapat digunakan oleh driver pemindai untuk menyediakan cara guna memilih nilai default atau memberi tahu pengumpan dokumen otomatis untuk melanjutkan ke lembar kertas berikutnya.

"GROUP"
Opsi pengelompokan. Tidak ada nilai. Ini disertakan untuk kompatibilitas, tetapi biasanya tidak akan ditampilkan dalam nilai ScannerOption. Gunakan getOptionGroups() untuk mengambil daftar grup dengan opsi anggotanya.

OptionUnit

Chrome 125 dan yang lebih baru

Menunjukkan jenis data untuk ScannerOption.unit.

Enum

"UNITLESS"
Nilainya adalah angka tanpa unit. Misalnya, nilai minimum dapat berupa nilai minimum.

"PIXEL"
Nilainya adalah jumlah piksel, misalnya, dimensi pemindaian.

"BIT"
Nilainya adalah jumlah bit, misalnya, kedalaman warna.

"MM"
Nilai ini diukur dalam milimeter, misalnya, dimensi pemindaian.

"DPI"
Nilai ini diukur dalam titik per inci, misalnya, resolusi.

"PERCENT"
Nilainya adalah persen, misalnya, kecerahan.

"MICROSECOND"
Nilainya diukur dalam mikrodetik, misalnya, waktu eksposur.

ReadScanDataResponse

Chrome 125 dan yang lebih baru

Properti

  • data

    ArrayBuffer opsional

    Jika result adalah SUCCESS, berisi bagian berikutnya dari data gambar yang dipindai. Jika result adalah EOF, berisi bagian terakhir dari data gambar yang dipindai.

  • estimatedCompletion

    angka opsional

    Jika result adalah SUCCESS, perkiraan jumlah total data pemindaian yang telah dikirimkan sejauh ini, dalam rentang 0 hingga 100.

  • tugas

    string

    Menyediakan handle tugas yang diteruskan ke readScanData().

  • Hasil pembacaan data. Jika nilainya adalah SUCCESS, maka data berisi potongan data gambar berikutnya (mungkin dengan panjang nol) yang siap untuk dibaca. Jika nilainya adalah EOF, data berisi potongan data gambar terakhir.

ScannerInfo

Chrome 125 dan yang lebih baru

Properti

  • connectionType

    Menunjukkan bagaimana pemindai terhubung ke komputer.

  • deviceUuid

    string

    Untuk pencocokan dengan entri ScannerInfo lain yang mengarah ke perangkat fisik yang sama.

  • imageFormats

    {i>string<i}[]

    Array jenis MIME yang dapat diminta untuk pemindaian yang ditampilkan.

  • produsen

    string

    Produsen pemindai.

  • model

    string

    Model pemindai jika tersedia, atau deskripsi umum.

  • nama

    string

    Nama yang dapat dibaca manusia untuk ditampilkan oleh pemindai di UI.

  • protocolType

    string

    Deskripsi protokol atau driver yang dapat dibaca manusia yang digunakan untuk mengakses pemindai, seperti Mopria, WSD, atau epsonds. Ini terutama berguna untuk memungkinkan pengguna memilih di antara protokol jika perangkat mendukung beberapa protokol.

  • scannerId

    string

    ID pemindai tertentu.

  • aman

    boolean

    Jika true (benar), transport koneksi pemindai tidak dapat dicegat oleh pemroses pasif, seperti TLS atau USB.

ScannerOption

Chrome 125 dan yang lebih baru

Properti

  • kemampuan konfigurasi

    Menunjukkan apakah dan bagaimana opsi dapat diubah.

  • batasan

    Menentukan OptionConstraint pada opsi pemindai saat ini.

  • deskripsi

    string

    Deskripsi opsi yang lebih panjang.

  • isActive

    boolean

    Menunjukkan bahwa opsi aktif dan dapat ditetapkan atau diambil. Jika salah, properti value tidak akan ditetapkan.

  • isAdvanced

    boolean

    Menunjukkan bahwa UI tidak boleh menampilkan opsi ini secara default.

  • isAutoSettable

    boolean

    Dapat disetel secara otomatis oleh driver pemindai.

  • isDetectable

    boolean

    Menunjukkan bahwa opsi ini dapat dideteksi dari software.

  • isEmulated

    boolean

    Diemulasikan oleh driver pemindai jika true.

  • nama

    string

    Nama opsi yang menggunakan huruf ASCII kecil, angka, dan tanda pisah. Diakritik tidak diizinkan.

  • judul

    string

    Judul satu baris yang dapat dicetak.

  • jenis

    Jenis data yang ada dalam properti value, yang diperlukan untuk menetapkan opsi ini.

  • satuan

    Satuan pengukuran untuk opsi ini.

  • nilai

    string | angka | boolean | number[] opsional

    Nilai opsi saat ini, jika relevan. Perhatikan bahwa jenis data properti ini harus cocok dengan jenis data yang ditentukan di type.

ScanOptions

Properti

  • maxImages

    angka opsional

    Jumlah gambar yang dipindai yang diizinkan. Nilai defaultnya adalah 1.

  • mimeTypes

    string[] opsional

    Jenis MIME yang diterima oleh pemanggil.

ScanResults

Properti

  • dataUrls

    {i>string<i}[]

    Array URL gambar data dalam bentuk yang dapat diteruskan sebagai "src" ke tag image.

  • mimeType

    string

    Jenis MIME dataUrls.

SetOptionResult

Chrome 125 dan yang lebih baru

Properti

  • nama

    string

    Menunjukkan nama opsi yang telah ditetapkan.

  • Menunjukkan hasil penyetelan opsi.

SetOptionsResponse

Chrome 125 dan yang lebih baru

Properti

  • opsi

    objek opsional

    Pemetaan nilai kunci yang diperbarui dari nama opsi menjadi nilai ScannerOption yang berisi konfigurasi baru setelah mencoba menetapkan semua opsi yang disediakan. Properti ini memiliki struktur yang sama dengan properti options di OpenScannerResponse.

    Properti ini akan disetel meskipun beberapa opsi tidak berhasil disetel, tetapi tidak akan disetel jika pengambilan konfigurasi yang diperbarui gagal (misalnya, jika pemindai terputus di tengah pemindaian).

  • hasil

    Array hasil, masing-masing satu untuk setiap OptionSetting yang diteruskan.

  • scannerHandle

    string

    Menyediakan handle pemindai yang diteruskan ke setOptions().

StartScanOptions

Chrome 125 dan yang lebih baru

Properti

  • format

    string

    Menentukan jenis MIME untuk menampilkan data yang dipindai.

  • maxReadSize

    angka opsional

    Jika nilai bukan nol ditentukan, akan membatasi byte terpindai maksimum yang ditampilkan dalam satu respons readScanData ke nilai tersebut. Nilai terkecil yang diizinkan adalah 32768 (32 KB). Jika properti ini tidak ditentukan, ukuran potongan yang dikembalikan mungkin sebesar keseluruhan gambar yang dipindai.

StartScanResponse

Chrome 125 dan yang lebih baru

Properti

  • tugas

    string opsional

    Jika result adalah SUCCESS, memberikan handle yang dapat digunakan untuk membaca data pemindaian atau membatalkan tugas.

  • Hasil dari memulai pemindaian. Jika nilai ini adalah SUCCESS, properti job akan diisi.

  • scannerHandle

    string

    Menyediakan handle pemindai yang sama dengan yang diteruskan ke startScan().

Metode

cancelScan()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Membatalkan pemindaian yang dimulai dan menampilkan Promise yang di-resolve dengan objek CancelScanResponse. Jika callback digunakan, objek tersebut akan diteruskan ke callback tersebut.

Parameter

  • tugas

    string

    Tuas tugas pemindaian aktif yang sebelumnya ditampilkan dari panggilan ke startScan.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (response: CancelScanResponse) => void

Hasil

  • Promise&lt;CancelScanResponse&gt;

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

closeScanner()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

Menutup pemindai dengan handle yang diteruskan dan menampilkan Promise yang di-resolve dengan objek CloseScannerResponse. Jika callback digunakan, objek tersebut akan diteruskan ke callback tersebut. Meskipun respons tidak berhasil, handle yang disediakan menjadi tidak valid dan tidak boleh digunakan untuk operasi lebih lanjut.

Parameter

  • scannerHandle

    string

    Menentukan handle pemindai terbuka yang sebelumnya ditampilkan dari panggilan ke openScanner.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (response: CloseScannerResponse) => void

Hasil

  • Promise&lt;CloseScannerResponse&gt;

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

getOptionGroups()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

Mendapatkan nama grup dan opsi anggota dari pemindai yang sebelumnya dibuka oleh openScanner. Metode ini menampilkan Promise yang di-resolve dengan objek GetOptionGroupsResponse. Jika callback diteruskan ke fungsi ini, data yang ditampilkan akan diteruskan ke fungsi tersebut.

Parameter

Hasil

  • Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

getScannerList()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

Mendapatkan daftar pemindai yang tersedia dan menampilkan Promise yang di-resolve dengan objek GetScannerListResponse. Jika callback diteruskan ke fungsi ini, data yang ditampilkan akan diteruskan ke fungsi tersebut.

Parameter

Hasil

  • Promise&lt;GetScannerListResponse&gt;

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

openScanner()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

Membuka pemindai untuk akses eksklusif dan menampilkan Promise yang di-resolve dengan objek OpenScannerResponse. Jika callback diteruskan ke fungsi ini, data yang ditampilkan akan diteruskan ke fungsi tersebut.

Parameter

  • scannerId

    string

    ID pemindai yang akan dibuka. Nilai ini adalah salah satu yang ditampilkan dari panggilan sebelumnya ke getScannerList.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (response: OpenScannerResponse) => void

Hasil

  • Promise&lt;OpenScannerResponse&gt;

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

readScanData()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

Membaca bagian berikutnya dari data gambar yang tersedia dari handle tugas aktif, dan menampilkan Promise yang di-resolve dengan objek ReadScanDataResponse. Jika callback digunakan, objek tersebut akan diteruskan ke callback tersebut.

**Catatan:**hasil respons adalah SUCCESS dengan anggota data berdurasi nol. Ini berarti pemindai masih bekerja tetapi belum memiliki data tambahan yang siap. Penelepon akan menunggu beberapa saat dan mencoba lagi.

Setelah tugas pemindaian selesai, respons akan memiliki nilai hasil EOF. Respons ini dapat berisi anggota akhir data yang bukan nol.

Parameter

Hasil

  • Promise&lt;ReadScanDataResponse&gt;

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

scan()

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

Melakukan pemindaian dokumen dan menampilkan Promise yang di-resolve dengan objek ScanResults. Jika callback diteruskan ke fungsi ini, data yang ditampilkan akan diteruskan ke fungsi tersebut.

Parameter

  • Objek yang berisi parameter pemindaian.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (result: ScanResults) => void

Hasil

  • Promise&lt;ScanResults&gt;

    Chrome 96 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

setOptions()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

Menetapkan opsi pada pemindai yang ditentukan dan menampilkan Promise yang di-resolve dengan objek SetOptionsResponse berisi hasil dari percobaan menetapkan setiap nilai sesuai urutan objek OptionSetting yang diteruskan. Jika callback digunakan, objek tersebut akan diteruskan ke callback tersebut.

Parameter

  • scannerHandle

    string

    Tuas pemindai untuk menyetel opsi. Nilai ini harus berupa nilai yang sebelumnya ditampilkan dari panggilan ke openScanner.

  • opsi

    Daftar objek OptionSetting yang akan diterapkan ke pemindai.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (response: SetOptionsResponse) => void

Hasil

  • Promise&lt;SetOptionsResponse&gt;

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

startScan()

Janji Chrome 125 dan yang lebih baru
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

Memulai pemindaian pada pemindai yang ditentukan dan menampilkan Promise yang di-resolve dengan StartScanResponse. Jika callback digunakan, objek tersebut akan diteruskan ke callback tersebut. Jika panggilan berhasil, respons akan menyertakan handle tugas yang dapat digunakan dalam panggilan berikutnya untuk membaca data pemindaian atau membatalkan pemindaian.

Parameter

  • scannerHandle

    string

    Gagang pemindai terbuka. Nilai ini harus berupa nilai yang sebelumnya ditampilkan dari panggilan ke openScanner.

  • Objek StartScanOptions yang menunjukkan opsi yang akan digunakan untuk pemindaian. Properti StartScanOptions.format harus cocok dengan salah satu entri yang ditampilkan dalam ScannerInfo pemindai.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (response: StartScanResponse) => void

Hasil

  • Promise&lt;StartScanResponse&gt;

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.