chrome.documentScan

Deskripsi

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

Document Scan API dirancang untuk memungkinkan aplikasi dan ekstensi melihat konten dokumen kertas pada pemindai dokumen yang terpasang.

Izin

documentScan

Ketersediaan

Chrome 44+ Khusus ChromeOS
Ketersediaan untuk anggota API yang ditambahkan nanti akan ditampilkan dengan anggota tersebut.

Konsep dan penggunaan

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

Pemindaian yang mudah

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

Pemindaian kompleks

Pemindaian kompleks dilakukan dalam tiga fase seperti yang dijelaskan di bagian ini. Garis besar ini tidak menjelaskan setiap argumen metode atau setiap properti yang ditampilkan dalam respons. Panduan ini hanya dimaksudkan untuk memberikan panduan umum dalam menulis kode pemindai.

Discovery

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

    • Objek respons berisi array objek ScannerInfo.
    • Array dapat berisi beberapa entri untuk satu pemindai jika pemindai tersebut mendukung beberapa protokol atau metode koneksi.
  2. Pilih pemindai dari array yang ditampilkan, lalu simpan nilai properti scannerId-nya.

    Gunakan properti setiap objek ScannerInfo untuk membedakan beberapa objek untuk 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 harus Anda tetapkan. Lihat opsi Mengambil pemindai untuk informasi selengkapnya.

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

  3. Buat array objek OptionSetting menggunakan nilai terprogram atau nilai yang diberikan pengguna. Lihat opsi Setel pemindai untuk informasi selengkapnya.

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

    Karena mengubah satu opsi dapat mengubah batasan pada opsi lainnya, Anda mungkin perlu mengulangi langkah-langkah ini beberapa kali.

Memindai

  1. Buat objek StartScanOptions dan teruskan ke startScan(). Metode ini menampilkan Promise yang di-resolve dengan StartScanResponse. Properti job-nya adalah handle yang akan Anda gunakan untuk membaca data pemindaian atau membatalkan pemindaian.

  2. Teruskan handle tugas ke readScanData(). Metode ini menampilkan Promise yang di-resolve dengan objek ReadScanDataResponse. Jika data berhasil dibaca, properti result-nya sama dengan SUCCESS dan properti data-nya berisi ArrayBuffer dengan bagian dari pemindaian. Perlu diperhatikan bahwa estimatedCompletion berisi perkiraan persentase total data yang telah dikirimkan sejauh ini.

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

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

Objek respons

Semua metode menampilkan Promise yang me-resolve dengan jenis objek respons tertentu. Sebagian besar properti berisi properti result yang nilainya adalah anggota OperationResult. Beberapa properti objek respons tidak akan berisi nilai kecuali jika nilai result memiliki nilai tertentu. Hubungan ini 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, Anda tidak dapat menampilkan opsi pemindai secara langsung dalam documentScan API. Untuk mengatasi hal 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 kuncinya adalah opsi khusus perangkat dan nilainya adalah instance ScannerOption.

Strukturnya umumnya terlihat seperti ini:

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

Misalnya, bayangkan pemindai yang menampilkan opsi bernama "sumber" dan "resolusi". Struktur objek options yang ditampilkan akan terlihat seperti contoh berikut. Agar lebih mudah, hanya respons ScannerOption sebagian yang ditampilkan.

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

Membangun antarmuka pengguna

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

Beberapa pemindai mengelompokkan opsi dengan cara khusus perangkat. Perubahan ini tidak memengaruhi perilaku opsi, tetapi karena grup ini dapat disebutkan dalam dokumentasi produk pemindai, grup tersebut harus ditampilkan kepada pengguna. Anda dapat mengambil grup ini dengan memanggil getOptionGroups(). Tindakan ini akan menampilkan Promise yang di-resolve dengan objek GetOptionGroupsResponse. Properti groups-nya berisi array grup khusus pemindai. Gunakan informasi dalam grup ini untuk mengatur opsi dalam OpenScannerResponse untuk tampilan.

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

Seperti yang dinyatakan di bagian konfigurasi Scanner, mengubah satu opsi dapat mengubah batasan pada opsi lainnya. Itulah sebabnya setOptionsResponse (objek respons untuk setOptions()) berisi properti options lain. Gunakan ini untuk mengupdate antarmuka pengguna. Kemudian ulangi sesuai kebutuhan sampai semua opsi ditetapkan.

Setel opsi pemindai

Tetapkan opsi pemindai dengan meneruskan array objek OptionSetting ke setOptions(). Sebagai contoh, lihat bagian Memindai halaman berukuran satu huruf berikut.

Contoh

Mengambil halaman sebagai blob

Contoh ini menunjukkan satu cara untuk mengambil halaman 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" });
}

Pindai halaman berukuran satu huruf

Contoh ini menunjukkan cara memilih pemindai, menyetel opsinya, dan membukanya. Kemudian, server ini mengambil konten dari satu halaman dan menutup pemindai. Proses ini menunjukkan penggunaan 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 tempat lain, untuk menampilkan opsi konfigurasi pemindai kepada pengguna, Anda harus memanggil getOptionGroups() selain opsi pemindai yang ditampilkan dari panggilan ke openScanner(). Hal ini bertujuan agar opsi dapat ditampilkan kepada pengguna dalam grup yang ditentukan oleh 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

Tertunda

Properti

  • tugas

    string

    Memberikan handle tugas yang sama dengan 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 akan menunggu beberapa saat dan mencoba permintaan lagi. Nilai hasil lainnya menunjukkan error permanen yang tidak boleh dicoba lagi.

CloseScannerResponse

Tertunda

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

Tertunda

Cara mengubah opsi.

Enum

"NOT_CONFIGURABLE"
Opsinya hanya-baca.

"SOFTWARE_CONFIGURABLE"
Opsi ini dapat disetel di software.

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

ConnectionType

Tertunda

Menunjukkan cara pemindai terhubung ke komputer.

Enum

"USB"

ConstraintType

Tertunda

Jenis data batasan yang direpresentasikan 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 tidak akan ditetapkan.

"FIXED_RANGE"
Batasan pada rentang nilai OptionType.FIXED. Properti min, max, dan quant dari OptionConstraint akan menjadi double, dan properti list miliknya tidak akan ditetapkan.

"INT_LIST"
Batasan pada daftar spesifik dari nilai OptionType.INT. Properti OptionConstraint.list akan berisi nilai long, dan properti lainnya tidak akan ditetapkan.

"FIXED_LIST"
Batasan pada daftar spesifik dari OptionType.FIXED nilai. Properti OptionConstraint.list akan berisi nilai double, dan properti lainnya tidak akan ditetapkan.

"STRING_LIST"
Batasan pada daftar spesifik dari OptionType.STRING nilai. Properti OptionConstraint.list akan berisi nilai DOMString, dan properti lainnya tidak akan ditetapkan.

DeviceFilter

Tertunda

Properti

  • local

    boolean opsional

    Hanya kembalikan pemindai yang langsung terpasang ke komputer.

  • aman

    boolean opsional

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

GetOptionGroupsResponse

Tertunda

Properti

  • grup

    OptionGroup[] opsional

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

  • Hasil mendapatkan grup opsi. Jika nilainya adalah SUCCESS, properti groups akan diisi.

  • scannerHandle

    string

    Tuas pemindai yang sama seperti yang diteruskan ke getOptionGroups.

GetScannerListResponse

Tertunda

Properti

  • Hasil enumerasi. Perhatikan bahwa hasil sebagian dapat ditampilkan meskipun ini menunjukkan error.

  • pemindai

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

OpenScannerResponse

Tertunda

Properti

  • opsi

    objek opsional

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

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

  • scannerHandle

    string opsional

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

  • scannerId

    string

    ID pemindai diteruskan ke openScanner().

OperationResult

Tertunda

Enum yang menunjukkan hasil setiap operasi.

Enum

"UNKNOWN"
Terjadi error tidak dikenal atau umum.

"SUCCESS"
Operasi berhasil.

"UNSUPPORTED"
Operasi ini tidak didukung.

"CANCELLED"
Operasi dibatalkan.

"DEVICE_BUSY"
Perangkat 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 lagi data yang tersedia.

"ADF_JAMMED"
Pengumpan dokumen macet.

"ADF_EMPTY"
Pengumpan dokumen kosong.

"COVER_OPEN"
Penutup tempat tidur datar terbuka.

"IO_ERROR"
Terjadi error saat berkomunikasi dengan perangkat.

"ACCESS_DENIED"
Perangkat memerlukan autentikasi.

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

"TIDAK DAPAT DIJANGKAU"
Perangkat tidak dapat dijangkau.

"TIDAK ADA"
Koneksi perangkat terputus.

"INTERNAL_ERROR"
Error terjadi di tempat lain selain aplikasi panggilan.

OptionConstraint

Tertunda

Properti

  • list

    string[]|number[] optional

  • maks.

    nomor opsional

  • mnt

    nomor opsional

  • kuantitas

    nomor opsional

OptionGroup

Tertunda

Properti

  • anggota

    string[]

    Array nama opsi dalam urutan yang diberikan driver.

  • title

    string

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

OptionSetting

Tertunda

Properti

  • name

    string

    Menunjukkan nama opsi yang akan ditetapkan.

  • tipe

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

  • value

    string|number|boolean|number[] optional

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

OptionType

Tertunda

Jenis data opsi.

Enum

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

"BOOL"
Properti value akan menjadi salah satu truefalse.

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

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

"STRING"
Urutan semua byte 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 pada driver pemindai. Misalnya, opsi pengetikan tombol dapat digunakan oleh driver pemindai untuk memilih nilai default atau memberi tahu feeder dokumen otomatis untuk maju 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

Tertunda

Menunjukkan jenis data untuk ScannerOption.unit.

Enum

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

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

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

"MM"
Nilainya diukur dalam milimeter, misalnya, dimensi pindai.

"DPI"
Nilainya diukur dalam titik per inci, misalnya, resolusi.

"PERCENT"
Nilainya adalah persen, misalnya, kecerahan.

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

ReadScanDataResponse

Tertunda

Properti

  • data

    ArrayBuffer opsional

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

  • estimatedCompletion

    nomor 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 SUCCESS, maka data berisi bagian data gambar berikutnya (mungkin panjang nol) yang siap dibaca. Jika nilainya adalah EOF, data akan berisi bagian terakhir dari data gambar.

ScannerInfo

Tertunda

Properti

  • connectionType

    Menunjukkan cara pemindai terhubung ke komputer.

  • deviceUuid

    string

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

  • imageFormats

    string[]

    Array jenis MIME yang dapat diminta untuk pemindaian yang ditampilkan.

  • produsen

    string

    Produsen pemindai.

  • model

    string

    Model pemindai jika tersedia, atau deskripsi umum.

  • name

    string

    Nama yang dapat dibaca manusia agar pemindai ditampilkan di UI.

  • protocolType

    string

    Deskripsi protokol atau driver yang dapat dibaca manusia yang digunakan untuk mengakses pemindai, seperti Mopria, WSD, atau epsonds. Fungsi ini sangat berguna agar pengguna dapat 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

Tertunda

Properti

  • kemampuan konfigurasi

    Menunjukkan apakah opsi dapat diubah dan bagaimana caranya.

  • 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 nilainya salah, properti value tidak akan ditetapkan.

  • isAdvanced

    boolean

    Menunjukkan bahwa UI tidak boleh menampilkan opsi ini secara default.

  • isAutoSettable

    boolean

    Dapat disetel otomatis oleh driver pemindai.

  • isDetectable

    boolean

    Menunjukkan bahwa opsi ini dapat dideteksi dari software.

  • isEmulated

    boolean

    Diemulasikan oleh driver pemindai jika true (benar).

  • name

    string

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

  • title

    string

    Judul satu baris yang dapat dicetak.

  • tipe

    Jenis data yang terdapat di properti value, yang diperlukan untuk menetapkan opsi ini.

  • satuan

    Satuan ukur untuk opsi ini.

  • value

    string|number|boolean|number[] optional

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

ScanOptions

Properti

  • maxImages

    nomor opsional

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

  • mimeTypes

    string[] opsional

    Jenis MIME yang diterima oleh pemanggil.

ScanResults

Properti

  • dataUrls

    string[]

    Array URL gambar data dalam formulir yang dapat diteruskan sebagai nilai "src" ke tag gambar.

  • mimeType

    string

    Jenis MIME dataUrls.

SetOptionResult

Tertunda

Properti

  • name

    string

    Menunjukkan nama opsi yang ditetapkan.

  • Menunjukkan hasil setelan opsi.

SetOptionsResponse

Tertunda

Properti

  • opsi

    objek opsional

    Pemetaan nilai kunci yang diperbarui dari nama opsi ke 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 akan dibatalkan penetapannya jika pengambilan konfigurasi yang diperbarui gagal (misalnya, jika pemindai terputus saat sedang memindai).

  • hasil

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

  • scannerHandle

    string

    Menyediakan tuas pemindai yang diteruskan ke setOptions().

StartScanOptions

Tertunda

Properti

  • format

    string

    Menentukan jenis MIME yang akan menampilkan data yang dipindai.

  • maxReadSize

    nomor opsional

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

StartScanResponse

Tertunda

Properti

  • tugas

    string opsional

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

  • Hasil memulai pemindaian. Jika nilainya adalah SUCCESS, properti job akan diisi.

  • scannerHandle

    string

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

Metode

cancelScan()

Promise Tertunda
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

Membatalkan pemindaian yang dimulai dan menampilkan Promise yang di-resolve dengan objek CancelScanResponse. Jika callback digunakan, objek akan diteruskan ke callback 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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

closeScanner()

Promise Tertunda
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

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

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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

getOptionGroups()

Promise Tertunda
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 ini.

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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

getScannerList()

Promise Tertunda
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 ini.

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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

openScanner()

Promise Tertunda
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 ini.

Parameter

  • scannerId

    string

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

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    (response: OpenScannerResponse)=>void

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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

readScanData()

Promise Tertunda
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

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

**Catatan:**Hasil respons yang valid adalah SUCCESS dengan anggota data dengan panjang nol. Hal ini berarti pemindai masih berfungsi, tetapi belum menyiapkan data tambahan. Penelepon akan menunggu beberapa saat dan mencoba lagi.

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

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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

scan()

Promise
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:

    (result: ScanResults)=>void

Hasil

  • Promise<ScanResults>

    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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

setOptions()

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

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

Parameter

  • scannerHandle

    string

    Tuas pemindai untuk mengaktifkan opsi. 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:

    (response: SetOptionsResponse)=>void

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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

startScan()

Promise Tertunda
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 akan diteruskan ke callback tersebut. Jika panggilan berhasil, responsnya mencakup handle tugas yang dapat digunakan dalam panggilan berikutnya untuk membaca data pemindaian atau membatalkan pemindaian.

Parameter

  • scannerHandle

    string

    Gagang pemindai terbuka. 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:

    (response: StartScanResponse)=>void

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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.