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
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
Panggil
getScannerList()
. Pemindai yang tersedia adalah yang ditampilkan di Promise yang di-resolve denganGetScannerListResponse
- 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.
- Objek respons berisi array
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 propertideviceUuid
.ScannerInfo
juga berisi propertiimageFormats
yang berisi array jenis gambar yang didukung.
Konfigurasi pemindai
Panggil
openScanner()
, dengan meneruskan ID pemindai yang tersimpan. Metode ini menampilkan Promise yang di-resolve denganOpenScannerResponse
. 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.
(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.
Membuat array objek
OptionSetting
menggunakan terprogram atau nilai yang diberikan pengguna. Lihat Menyetel opsi pemindai untuk informasi selengkapnya tidak akurat atau tidak sesuai.Teruskan array objek
OptionSetting
kesetOptions()
untuk menyetel opsi bagi pemindai. Ini menampilkan Promise yang di-resolve denganSetOptionsResponse
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
Membuat objek
StartScanOptions
dan meneruskannya kestartScan()
. Metode ini menampilkan Promise yang me-resolve denganStartScanResponse
. Propertijob
-nya sebuah {i>handle<i} yang akan Anda gunakan untuk membaca data pemindaian atau membatalkan pemindaian itu.Teruskan nama sebutan channel ke
readScanData()
. Metode ini mengembalikan Promise yang diselesaikan dengan ObjekReadScanDataResponse
. Jika data telah dibaca berhasil, propertiresult
-nya sama denganSUCCESS
dan propertidata
berisiArrayBuffer
pada sebagian pemindaian. Perhatikan bahwaestimatedCompletion
berisi estimasi dari total data yang telah dikirim sejauh ini.Ulangi langkah sebelumnya hingga properti
result
sama denganEOF
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
Properti
-
tugas
string
Memberikan handle tugas yang sama yang diteruskan ke
cancelScan()
. -
hasil
Hasil pemindaian pembatalan backend. Jika hasilnya adalah
OperationResult.SUCCESS
atauOperationResult.CANCELLED
, pemindaian telah dibatalkan dan pemindai siap memulai pemindaian baru. Jika hasilnya adalahOperationResult.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
Properti
-
hasil
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
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
Menunjukkan bagaimana pemindai terhubung ke komputer.
Enum
"UNSPECIFIED"
"USB"
"JARINGAN"
ConstraintType
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
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
Properti
-
yang dilacak
OptionGroup[] opsional
Jika
result
adalahSUCCESS
, daftar ini akan memberikan daftar grup opsi dalam urutan yang disediakan oleh driver pemindai. -
hasil
Hasil dari mendapatkan grup opsi. Jika nilai ini adalah
SUCCESS
, propertigroups
akan diisi. -
scannerHandle
string
Tuas pemindai yang sama seperti yang diteruskan ke
getOptionGroups
.
GetScannerListResponse
Properti
-
hasil
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
Properti
-
opsi
objek opsional
Jika
result
adalahSUCCESS
, memberikan pemetaan nilai kunci dengan kuncinya adalah opsi khusus perangkat dan nilainya adalah instanceScannerOption
. -
hasil
Hasil membuka pemindai. Jika nilai ini adalah
SUCCESS
, propertiscannerHandle
danoptions
akan diisi. -
scannerHandle
string opsional
Jika
result
adalahSUCCESS
, tuas ke pemindai yang dapat digunakan untuk operasi lebih lanjut. -
scannerId
string
ID pemindai diteruskan ke
openScanner()
.
OperationResult
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
Properti
-
list
string[] | number[] opsional
-
maks
angka opsional
-
mnt
angka opsional
-
kuantitas
angka opsional
-
jenis
OptionGroup
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
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 untukvalue
harus cocok dengantype
.
OptionType
Jenis data opsi.
Enum
"UNKNOWN"
Jenis data opsi tidak diketahui. Penetapan properti value
akan dibatalkan.
"BOOL"
Properti value
akan berupa salah satu dari true
false.
"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.
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
Properti
-
data
ArrayBuffer opsional
Jika
result
adalahSUCCESS
, berisi bagian berikutnya dari data gambar yang dipindai. Jikaresult
adalahEOF
, berisi bagian terakhir dari data gambar yang dipindai. -
estimatedCompletion
angka opsional
Jika
result
adalahSUCCESS
, 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
Hasil pembacaan data. Jika nilainya adalah
SUCCESS
, makadata
berisi potongan data gambar berikutnya (mungkin dengan panjang nol) yang siap untuk dibaca. Jika nilainya adalahEOF
,data
berisi potongan data gambar terakhir.
ScannerInfo
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
Properti
-
kemampuan konfigurasi
Menunjukkan apakah dan bagaimana opsi dapat diubah.
-
batasan
OptionConstraint opsional
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
Properti
-
nama
string
Menunjukkan nama opsi yang telah ditetapkan.
-
hasil
Menunjukkan hasil penyetelan opsi.
SetOptionsResponse
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 propertioptions
diOpenScannerResponse
.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
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
Properti
-
tugas
string opsional
Jika
result
adalahSUCCESS
, memberikan handle yang dapat digunakan untuk membaca data pemindaian atau membatalkan tugas. -
hasil
Hasil dari memulai pemindaian. Jika nilai ini adalah
SUCCESS
, propertijob
akan diisi. -
scannerHandle
string
Menyediakan handle pemindai yang sama dengan yang diteruskan ke
startScan()
.
Metode
cancelScan()
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
-
respons
-
Hasil
-
Promise<CancelScanResponse>
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()
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
-
respons
-
Hasil
-
Promise<CloseScannerResponse>
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()
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
-
scannerHandle
string
Tuas pemindai terbuka yang ditampilkan dari panggilan ke
openScanner
. -
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(response: GetOptionGroupsResponse) => void
-
respons
-
Hasil
-
Promise<GetOptionGroupsResponse>
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()
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
-
filter
DeviceFilter
yang menunjukkan jenis pemindai yang harus ditampilkan. -
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(response: GetScannerListResponse) => void
-
respons
-
Hasil
-
Promise<GetScannerListResponse>
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()
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
-
respons
-
Hasil
-
Promise<OpenScannerResponse>
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()
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
-
tugas
string
Handle tugas aktif yang sebelumnya ditampilkan dari
startScan
. -
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(response: ReadScanDataResponse) => void
-
respons
-
Hasil
-
Promise<ReadScanDataResponse>
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()
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
-
opsi
Objek yang berisi parameter pemindaian.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(result: ScanResults) => void
-
hasil
-
Hasil
-
Promise<ScanResults>
Chrome 96 dan yang lebih baruPromise 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()
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
-
respons
-
Hasil
-
Promise<SetOptionsResponse>
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()
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
. -
opsi
Objek
StartScanOptions
yang menunjukkan opsi yang akan digunakan untuk pemindaian. PropertiStartScanOptions.format
harus cocok dengan salah satu entri yang ditampilkan dalamScannerInfo
pemindai. -
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(response: StartScanResponse) => void
-
respons
-
Hasil
-
Promise<StartScanResponse>
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.