شرح
از chrome.documentScan API برای پیدا کردن و بازیابی تصاویر از اسکنرهای سند متصلشده استفاده کنید.
Document Scan API بهگونهای طراحی شده است که به برنامهها و افزونهها اجازه میدهد محتوای اسناد کاغذی را در اسکنر سند متصلشده مشاهده کنند.
اجازهها
documentScanدردسترس بودن
مفاهیم و کاربرد
این میانای برنامهسازی کاربردی از دو روش برای اسکن کردن اسناد پشتیبانی میکند. اگر مورد استفاده شما میتواند با هر اسکنری کار کند و نیازی به کنترل پیکربندی ندارد، از روش scan() استفاده کنید. موارد استفاده پیچیدهتر به ترکیبی از روشها نیاز دارند،
که فقط در Chrome نسخه ۱۲۴ و جدیدتر پشتیبانی میشوند.
اسکن کردن ساده
برای موارد استفاده ساده، یعنی مواردی که میتوانند با هر اسکنری کار کنند و نیازی به کنترل پیکربندی ندارند، scan() را فراخوانی کنید. این روش یک شیء
ScanOptions را میگیرد و یک Promise برمیگرداند که با یک شیء ScanResults
حل میشود. قابلیتهای این گزینه به تعداد اسکنها و
انواع MIME که توسط تماسگیرنده پذیرفته میشود محدود است. اسکنها بهصورت نشانی وب برگردانده میشوند
تا در برچسب <img> برای میانای کاربر نمایش داده شوند.
اسکن پیچیده
اسکنهای پیچیده در سه مرحله انجام میشوند که در این بخش توضیح داده شده است. این طرح کلی همه آرگومانهای روش یا همه ویژگیهای برگرداندهشده در پاسخ را شرح نمیدهد. این فقط برای ارائه راهنمای کلی برای نوشتن کد اسکنر است.
Discovery
با
getScannerList()تماس بگیرید. اسکنرهای دردسترس در یک Promise برگردانده میشوند که باGetScannerListResponseحل میشود.- شیء پاسخ حاوی آرایهای از اشیای
ScannerInfoاست. - اگر اسکنر از چند پروتکل یا روش اتصال پشتیبانی کند، آرایه ممکن است حاوی چند ورودی برای یک اسکنر باشد.
- شیء پاسخ حاوی آرایهای از اشیای
اسکنری را از آرایه برگرداندهشده انتخاب کنید و مقدار ویژگی
scannerIdآن را ذخیره کنید.از ویژگیهای اشیای
ScannerInfoتکی برای تشخیص دادن بین چندین شیء برای یک اسکنر استفاده کنید. اشیاء مربوط به یک اسکنر مقدار یکسانی برای ویژگیdeviceUuidخواهند داشت.ScannerInfoهمچنین حاوی ویژگیimageFormatsاست که شامل آرایهای از انواع تصویر پشتیبانیشده است.
پیکربندی اسکنر
با ارسال شناسه اسکنر ذخیرهشده،
openScanner()را فراخوانی کنید. این متد یک Promise برمیگرداند که با یکOpenScannerResponseحل میشود. شیء پاسخ حاوی این موارد است:یک ویژگی
scannerHandleکه باید آن را ذخیره کنید.یک ویژگی گزینهها که حاوی ویژگیهای مختص اسکنر است و باید آن را تنظیم کنید. برای اطلاعات بیشتر، به «بازیابی گزینههای اسکنر» مراجعه کنید.
(اختیاری) اگر لازم است کاربر مقادیری برای گزینههای اسکنر ارائه دهد، یک میانای کاربر بسازید. به گزینههای اسکنر ارائهشده در مرحله قبل نیاز خواهید داشت و باید گروههای گزینههای ارائهشده توسط اسکنر را بازیابی کنید. برای اطلاعات بیشتر، به ساختن میانای کاربر مراجعه کنید.
آرایهای از اشیای
OptionSettingرا بااستفاده از مقادیر برنامهای یا ارائهشده توسط کاربر بسازید. برای اطلاعات بیشتر، به «تنظیم گزینههای اسکنر» مراجعه کنید.آرایه اشیاء
OptionSettingرا بهsetOptions()ارسال کنید تا گزینههای اسکنر را تنظیم کنید. این متد یک Promise برمیگرداند که باSetOptionsResponseحل میشود. این شیء حاوی نسخه بهروزشدهای از گزینههای اسکنر است که در مرحله ۱ پیکربندی اسکنر بازیابی شده است.ازآنجاییکه تغییر یک گزینه میتواند محدودیتهای گزینه دیگری را تغییر دهد، ممکن است لازم باشد این مراحل را چندین بار تکرار کنید.
اسکن کردن
شیء
StartScanOptionsبسازید و آن را بهstartScan()ارسال کنید. این متد یک Promise برمیگرداند که با یکStartScanResponseحل میشود. ویژگیjobآن دستهای است که از آن برای خواندن دادههای اسکن یا لغو اسکن استفاده خواهید کرد.دستگیره کار را به
readScanData()منتقل کنید. این متد یک Promise برمیگرداند که با یک شیءReadScanDataResponseحل میشود. اگر دادهها با موفقیت خوانده شود، ویژگیresultآن برابر باSUCCESSاست و ویژگیdataآن حاویArrayBufferبا بخشی از اسکن است. توجه داشته باشید کهestimatedCompletionحاوی درصد تخمینی از کل دادههایی است که تاکنون تحویل داده شده است.مرحله قبلی را تکرار کنید تا زمانی که ویژگی
resultبرابر باEOFیا خطا شود.
وقتی اسکن به پایان رسید،
closeScanner() را با دسته اسکنر ذخیرهشده در مرحله
۳ فراخوانی کنید. این روش یک Promise برمیگرداند که با
CloseScannerResponse حل میشود. فراخوانی
cancelScan() در هر زمانی پساز ایجاد کار،
اسکن را پایان میدهد.
اشیاء پاسخ
همه روشها یک Promise برمیگردانند که با یک شیء پاسخ از نوعی حل میشود.
بیشتر این موارد حاوی ویژگی result هستند که مقدار آن عضوی از
OperationResult است. برخیاز ویژگیهای اشیای پاسخ
حاوی مقدار نخواهند بود، مگراینکه مقدار result مقدار خاصی داشته باشد. این روابط در مرجع هر شیء پاسخ شرح داده شده است.
برای مثال، OpenScannerResponse.scannerHandle فقط زمانی مقدار خواهد داشت که
OpenScannerResponse.result برابر با SUCCESS باشد.
گزینههای اسکنر
گزینههای اسکنر بسته به دستگاه بسیار متفاوت است. درنتیجه، امکان منعکس کردن گزینههای اسکنر بهطور مستقیم در documentScan API وجود ندارد. برای دور زدن
این مشکل، OpenScannerResponse (بازیابیشده بااستفاده از
openScanner()) و
SetOptionsResponse (شیء پاسخ برای
setOptions()) حاوی ویژگی options هستند که
شیء حاوی گزینههای مختص اسکنر است. هر گزینه یک نگاشت مقدار کلید است
که در آن کلید یک گزینه مختص دستگاه است و مقدار یک نمونه از
ScannerOption است.
ساختار آن معمولاً به این شکل است:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
برای مثال، اسکنری را تصور کنید که گزینههایی با نام «منبع» و
«وضوح» برمیگرداند. ساختار شیء options برگرداندهشده چیزی شبیه به مثال زیر خواهد بود. برای سادگی، فقط بخشی از پاسخهای ScannerOption
نشان داده شده است.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
ساختن واسط کاربر
اگرچه برای استفاده از این میانای برنامهسازی کاربردی الزامی نیست، ممکن است بخواهید کاربر مقدار را برای
گزینه خاصی انتخاب کند. این کار به میانای کاربر نیاز دارد. از
OpenScannerResponse (بازشده توسط
openScanner()) برای بازیابی گزینههای اسکنر
متصلشده استفاده کنید (همانطور که در بخش قبلی توضیح داده شد).
برخیاز اسکنرها گزینهها را بهروشهای مختص دستگاه گروهبندی میکنند. این گروهها بر رفتار گزینهها تأثیر نمیگذارند، اما چون ممکن است در اسناد محصول اسکنر به آنها اشاره شده باشد، باید به کاربر نشان داده شوند. میتوانید این گروهها را با فراخوانی getOptionGroups() بازیابی کنید. این کار یک
Promise برمیگرداند که با یک
شیء GetOptionGroupsResponse حل میشود. ویژگی groups
آن حاوی آرایهای از گروههای مختص اسکنر است. از اطلاعات موجود در این گروهها برای سازماندهی گزینهها در OpenScannerResponse برای نمایش استفاده کنید.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
همانطور که در پیکربندی «اسکنر» ذکر شده است، تغییر یک گزینه میتواند محدودیتهای گزینه دیگری را تغییر دهد. به همین دلیل است که
setOptionsResponse (شیء پاسخ برای
setOptions()) حاوی ویژگی options دیگری است. از این برای بهروزرسانی میانای کاربر استفاده کنید. سپس درصورت نیاز تکرار کنید تا همه گزینهها
تنظیم شوند.
تنظیم گزینههای اسکنر
گزینههای اسکنر را با ارسال آرایهای از اشیای
OptionSetting به
setOptions() تنظیم کنید. برای مثال، بخش اسکن کردن یک صفحه با اندازه Letter را در زیر ببینید.
مثالها
بازیابی صفحه بهعنوان حباب
این مثال یک روش برای بازیابی صفحه از اسکنر بهعنوان حبابک را نشان میدهد و
نحوه استفاده از startScan() و readScanData() را بااستفاده از مقدار
OperationResult نشان میدهد.
async function pageAsBlob(handle) {
let response = await browser.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != browser.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await browser.documentScan.readScanData(job);
while (response.result == browser.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 browser.documentScan.readScanData(job);
}
if (response.result != browser.documentScan.OperationResult.EOF) {
return null;
}
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
}
return new Blob(imgParts, { type: "image/jpeg" });
}
اسکن کردن یک صفحه با اندازه نامه
این مثال نشان میدهد که چگونه اسکنری را انتخاب کنید، گزینههای آن را تنظیم کنید، و آن را باز کنید. سپس
محتوای یک صفحه را بازیابی میکند و اسکنر را میبندد. این فرایند
نحوه استفاده از getScannerList()، openScanner()، setOptions()، و
closeScanner() را نشان میدهد. توجه داشته باشید که محتوای صفحه با فراخوانی
تابع pageAsBlob() از مثال قبلی بازیابی میشود.
async function scan() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.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: browser.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: browser.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: browser.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: browser.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await browser.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await browser.documentScan.closeScanner(handle);
}
نمایش پیکربندی
همانطور که در جای دیگری گفته شد، برای نشان دادن گزینههای پیکربندی اسکنر به کاربر، علاوهبر گزینههای اسکنر که از تماس با openScanner() برگردانده شده است، باید getOptionGroups() فراخوانی شود. این کار برای این است که گزینهها در گروههای تعریفشده توسط سازنده به کاربران نشان داده شود. این مثال نحوه انجام این کار را نشان میدهد.
async function showConfig() {
let response = await browser.documentScan.getScannerList({ secure: true });
let scanner = await browser.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await browser.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");
}
}
}
}
انواع
CancelScanResponse
مشخصات
-
شغل
رشته
همان شناسه کاری را که به
cancelScan()ارسال شده بود ارائه میدهد. -
نتیجه
نتیجه لغو اسکن پسزمینه. اگر نتیجه
OperationResult.SUCCESSیاOperationResult.CANCELLEDباشد، اسکن لغو شده است و اسکنر آماده شروع اسکن جدید است. اگر نتیجهOperationResult.DEVICE_BUSYباشد، اسکنر هنوز درحال پردازش لغو درخواستشده است؛ تماسگیرنده باید کمی صبر کند و دوباره درخواست را امتحان کند. مقادیر نتیجه دیگر نشاندهنده خطای دائمی است که نباید دوباره امتحان شود.
CloseScannerResponse
مشخصات
-
نتیجه
نتیجه بستن اسکنر. حتی اگر این مقدار
SUCCESSنباشد، دسته نامعتبر خواهد بود و نباید برای عملیاتهای بعدی استفاده شود. -
scannerHandle
رشته
همان دسته اسکنر که به
closeScannerارسال شده است.
Configurability
چگونه میتوان گزینهای را تغییر داد.
شمارشی
"NOT_CONFIGURABLE"
گزینه فقط خواندنی است.
«SOFTWARE_CONFIGURABLE»
این گزینه را میتوان در نرمافزار تنظیم کرد.
«HARDWARE_CONFIGURABLE»
این گزینه را کاربر میتواند با تغییر وضعیت یا فشار دادن دکمهای در اسکنر تنظیم کند.
ConnectionType
نشان میدهد اسکنر چگونه به رایانه متصل شده است.
شمارشی
"UNSPECIFIED"
"USB"
«NETWORK»
ConstraintType
نوع داده محدودیت که با OptionConstraint نشان داده میشود.
شمارشی
«INT_RANGE»
محدودیت در دامنهای از مقادیر OptionType.INT. مشخصههای min، max، و quant از OptionConstraint long خواهد بود و مشخصه list آن تنظیمنشده خواهد بود.
«FIXED_RANGE»
محدودیت در دامنهای از مقادیر OptionType.FIXED. مشخصههای min، max، و quant از OptionConstraint برابر با double خواهد بود و مشخصه list آن تنظیمنشده خواهد بود.
«INT_LIST»
محدودیت در فهرست خاصی از مقادیر OptionType.INT. خصوصیت OptionConstraint.list حاوی مقادیر long خواهد بود و خصوصیتهای دیگر تنظیمنشده خواهند بود.
«FIXED_LIST»
محدودیت در فهرست خاصی از مقادیر OptionType.FIXED. خصوصیت OptionConstraint.list حاوی مقادیر double خواهد بود و خصوصیتهای دیگر تنظیمنشده خواهند بود.
«STRING_LIST»
محدودیت در فهرست خاصی از مقادیر OptionType.STRING. خصوصیت OptionConstraint.list حاوی مقادیر DOMString خواهد بود و خصوصیتهای دیگر تنظیمنشده خواهند بود.
DeviceFilter
مشخصات
-
محلی
بولی اختیاری
فقط اسکنرهایی را برگردانید که مستقیماً به رایانه متصل هستند.
-
ایمن کردن
بولی اختیاری
فقط اسکنرهایی را برگردانید که از انتقال امن، مثل USB یا TLS، استفاده میکنند.
GetOptionGroupsResponse
مشخصات
-
گروهها
OptionGroup[] اختیاری
اگر
resultSUCCESSباشد، فهرستی از گروههای گزینهها را بهترتیبی که درایور اسکنر ارائه کرده است ارائه میدهد. -
نتیجه
نتیجه دریافت گروههای گزینه. اگر مقدار این
SUCCESSباشد، خصوصیتgroupsدرج خواهد شد. -
scannerHandle
رشته
همان دسته اسکنر که به
getOptionGroupsارسال شده است.
GetScannerListResponse
مشخصات
-
نتیجه
نتیجه شمارش. توجه داشته باشید که حتی اگر این نشاندهنده خطا باشد، ممکن است نتایج جزئی برگردانده شود.
-
اسکنرها
فهرستی از اسکنرها که احتمالاً خالی است و با
DeviceFilterارائهشده مطابقت دارد.
OpenScannerResponse
مشخصات
-
گزینهها
شیء اختیاری
اگر
resultSUCCESSباشد، نگاشت مقدار کلید را ارائه میدهد که در آن کلید گزینهای مختص دستگاه و مقدار نمونهای ازScannerOptionاست. -
نتیجه
نتیجه باز کردن اسکنر. اگر مقدار این
SUCCESSباشد، داراییهایscannerHandleوoptionsدرج خواهند شد. -
scannerHandle
رشته اختیاری
اگر
resultبرابر باSUCCESSباشد، دستگیرهای برای اسکنر است که میتواند برای عملیات بیشتر استفاده شود. -
scannerId
رشته
شناسه اسکنر به
openScanner()ارسال شد.
OperationResult
یک enum که نتیجه هر عملیات را نشان میدهد.
شمارشی
«نامشخص»
خطای نامشخص یا عمومی رخ داده است.
«SUCCESS»
عملیات با موفقیت انجام شد.
«پشتیبانینشده»
این عملیات پشتیبانی نمیشود.
«لغوشده»
عملیات لغو شد.
«DEVICE_BUSY»
دستگاه مشغول است.
«نامعتبر»
داده یا متغیر مستقل ارسالشده به روش معتبر نیست.
«WRONG_TYPE»
مقدار ارائهشده نوع داده اشتباهی برای گزینه اصلی است.
«EOF»
داده دیگری دردسترس نیست.
«ADF_JAMMED»
تغذیه سند گیر کرده است.
«ADF_EMPTY»
تغذیه سند خالی است.
"COVER_OPEN"
درب اسکنر تخت باز است.
«IO_ERROR»
هنگام برقراری ارتباط با دستگاه خطایی روی داد.
«ACCESS_DENIED»
دستگاه به اصالتسنجی نیاز دارد.
«NO_MEMORY»
حافظه کافی در Chromebook برای تکمیل عملیات دردسترس نیست.
«غیرقابلدسترس»
دستگاه قابلدسترس نیست.
«ناموجود»
اتصال دستگاه قطع است.
«INTERNAL_ERROR»
خطایی در جایی غیراز برنامه فراخواننده روی داده است.
OptionConstraint
مشخصات
-
فهرست
string[] | number[] اختیاری
-
حداکثر
شماره اختیاری
-
دقیقه
شماره اختیاری
-
quant
شماره اختیاری
-
نوع
OptionGroup
مشخصات
-
اعضاء
string[]
آرایهای از نامهای گزینهها به ترتیبی که راننده ارائه کرده است.
-
عنوان
رشته
عنوانی قابلچاپ ارائه میدهد، برای مثال «گزینههای هندسه».
OptionSetting
مشخصات
-
نام
رشته
نام گزینه را برای تنظیم نشان میدهد.
-
نوع
نوع داده گزینه را نشان میدهد. نوع داده درخواستشده باید با نوع داده واقعی گزینه اصلی مطابقت داشته باشد.
-
مقدار
رشته | عدد | بولی | عدد[] اختیاری
مقداری را که باید تنظیم شود نشان میدهد. برای درخواست تنظیم خودکار برای گزینههایی که
autoSettableرا فعال کردهاند، تنظیمنشده باقی بگذارید. نوع داده ارائهشده برایvalueباید باtypeمطابقت داشته باشد.
OptionType
نوع داده یک گزینه.
شمارشی
«UNKNOWN»
نوع داده گزینه ناشناخته است. خصوصیت value لغو تنظیم خواهد شد.
«BOOL»
ویژگی value یکی از truefalse خواهد بود.
«INT»
عدد صحیح ۳۲ بیتی علامتدار. ویژگی value بسته به اینکه گزینه بیشاز یک مقدار داشته باشد یا نه، long یا []long خواهد بود.
«ثابت»
یک عدد اعشاری با دقت مضاعف در محدوده ۳۲۷۶۸- تا ۳۲۷۶۷٫۹۹۹۹ با وضوح ۱/۶۵۵۳۵. ویژگی value بسته به اینکه گزینه بیشاز یک مقدار داشته باشد، double یا double[] خواهد بود. مقادیر دوبرابری که نمیتوانند دقیقاً نشان داده شوند، به محدوده و دقت دردسترس گرد خواهند شد.
«رشته»
دنبالهای از هر بایت بهجز NUL ('\0'). خصوصیت value یک DOMString خواهد بود.
«BUTTON»
گزینهای از این نوع مقدار ندارد. درعوض، تنظیم گزینهای از این نوع باعث ایجاد عارضه جانبی مختص گزینه در درایور اسکنر میشود. برای مثال، یک گزینه از نوع دکمه میتواند توسط یک درایور اسکنر استفاده شود تا وسیلهای برای انتخاب مقادیر پیشفرض یا دستور دادن به یک تغذیهکننده خودکار سند برای رفتن به برگه کاغذ بعدی فراهم کند.
«GROUP»
گزینه گروهبندی. بدون مقدار. این مورد برای سازگاری گنجانده شده است، اما معمولاً در مقادیر ScannerOption برگردانده نمیشود. از getOptionGroups() برای بازیابی فهرست گروهها با گزینههای اعضای آنها استفاده کنید.
OptionUnit
نوع داده را برای ScannerOption.unit نشان میدهد.
شمارشی
«UNITLESS»
مقدار عددی بدون واحد است. برای مثال، میتواند یک آستانه باشد.
«PIXEL»
مقدار تعداد پیکسلها است، برای مثال، ابعاد اسکن.
«BIT»
مقدار تعداد بیتها است، برای مثال، عمق رنگ.
«MM»
مقدار برحسب میلیمتر اندازهگیری میشود، برای مثال، ابعاد اسکن.
«DPI»
این مقدار با نقطه در اینچ اندازهگیری میشود، برای مثال، وضوح.
«PERCENT»
مقدار بهصورت درصد است، مثلاً روشنایی.
«میکروثانیه»
مقدار برحسب میکروثانیه اندازهگیری میشود، برای مثال، زمان نوردهی.
ReadScanDataResponse
مشخصات
-
داده
ArrayBuffer اختیاری
اگر
resultSUCCESSباشد، حاوی بخش بعدی دادههای تصویر اسکنشده است. اگرresultبرابر باEOFباشد، حاوی آخرین بخش از دادههای تصویر اسکنشده است. -
estimatedCompletion
شماره اختیاری
اگر
resultبرابر باSUCCESSباشد، تخمینی از مقدار کل دادههای اسکن که تاکنون تحویل داده شده است، در محدوده ۰ تا ۱۰۰. -
شغل
رشته
دستگیره کار را که به
readScanData()ارسال شده است ارائه میدهد. -
نتیجه
نتیجه خواندن دادهها. اگر مقدار آن
SUCCESSباشد،dataحاوی تکه بعدی (احتمالاً با طول صفر) دادههای تصویر است که برای خواندن آماده است. اگر مقدار آنEOFباشد،dataحاوی آخرین بخش از دادههای تصویر است.
ScannerInfo
مشخصات
-
connectionType
نشان میدهد اسکنر چگونه به رایانه متصل شده است.
-
deviceUuid
رشته
برای مطابقت دادن با سایر ورودیهای
ScannerInfoکه به همان دستگاه فیزیکی اشاره میکنند. -
imageFormats
string[]
آرایهای از انواع MIME که میتوان برای اسکنهای برگرداندهشده درخواست کرد.
-
سازنده
رشته
سازنده اسکنر.
-
مدل
رشته
مدل اسکنر درصورت دردسترس بودن، یا شرحی کلی.
-
نام
رشته
نامی قابلخواندن برای انسان برای اسکنر جهت نمایش در واسط کاربر.
-
protocolType
رشته
شرحی قابلخواندن برای انسان از پروتکل یا درایور مورداستفاده برای دسترسی به اسکنر، مانند Mopria، WSD، یا epsonds. این ویژگی عمدتاً برای این مفید است که اگر دستگاهی از چند پروتکل پشتیبانی میکند، کاربر بتواند بین پروتکلها انتخاب کند.
-
scannerId
رشته
شناسه اسکنر خاص.
-
ایمن کردن
بولی
اگر درست باشد، انتقال اتصال اسکنر نمیتواند توسط شنونده غیرفعال، مانند TLS یا USB، رهگیری شود.
ScannerOption
مشخصات
-
پیکربندیپذیری
نشان میدهد که آیا و چگونه میتوان گزینه را تغییر داد.
-
محدودیت
OptionConstraint اختیاری
OptionConstraintرا در گزینه اسکنر فعلی تعریف میکند. -
description
رشته
توضیح طولانیتر گزینه.
-
isActive
بولی
نشان میدهد که گزینه فعال است و میتوان آن را تنظیم یا بازیابی کرد. اگر نادرست باشد، ویژگی
valueتنظیم نخواهد شد. -
isAdvanced
بولی
نشان میدهد که واسط کاربر نباید این گزینه را بهطور پیشفرض نمایش دهد.
-
isAutoSettable
بولی
میتواند بهطور خودکار توسط درایور اسکنر تنظیم شود.
-
isDetectable
بولی
نشان میدهد که این گزینه را میتوان از نرمافزار شناسایی کرد.
-
isEmulated
بولی
اگر درست باشد، توسط درایور اسکنر شبیهسازی میشود.
-
نام
رشته
نام گزینه بااستفاده از حروف کوچک ASCII، اعداد، و خط تیره. نشانههای زیروزبر مجاز نیست.
-
عنوان
رشته
عنوان یکخطی قابلچاپ.
-
نوع
نوع داده موجود در ویژگی
valueکه برای تنظیم این گزینه لازم است. -
واحد
واحد اندازهگیری این گزینه.
-
مقدار
رشته | عدد | بولی | عدد[] اختیاری
مقدار فعلی گزینه، درصورت مرتبط بودن. توجه داشته باشید که نوع داده این ویژگی باید با نوع داده مشخصشده در
typeمطابقت داشته باشد.
ScanOptions
مشخصات
-
maxImages
شماره اختیاری
تعداد تصاویر اسکنشده مجاز. پیشفرض ۱ است.
-
mimeTypes
رشته[] اختیاری
انواع MIME که تماسگیرنده میپذیرد.
ScanResults
مشخصات
-
dataUrls
string[]
آرایهای از نشانیهای وب تصویر داده در فرمی که میتواند بهعنوان مقدار «src» به برچسب تصویر ارسال شود.
-
mimeType
رشته
نوع MIME
dataUrls.
SetOptionResult
مشخصات
-
نام
رشته
نام گزینهای را که تنظیم شده است نشان میدهد.
-
نتیجه
نتیجه تنظیم گزینه را نشان میدهد.
SetOptionsResponse
مشخصات
-
گزینهها
شیء اختیاری
نگاشت کلید-مقدار بهروزشده از نامهای گزینه به مقادیر
ScannerOptionکه حاوی پیکربندی جدید پساز تلاش برای تنظیم همه گزینههای ارائهشده است. این ساختار مشابهی با ویژگیoptionsدرOpenScannerResponseدارد.این ویژگی حتی اگر برخیاز گزینهها با موفقیت تنظیم نشده باشند تنظیم خواهد شد، اما اگر بازیابی پیکربندی بهروزشده ناموفق باشد (برای مثال، اگر اسکنر در اواسط اسکن قطع شود) تنظیم نخواهد شد.
-
نتایج
آرایهای از نتایج، هرکدام برای هر
OptionSettingارسالشده. -
scannerHandle
رشته
دستگیره اسکنر ارسالشده به
setOptions()را ارائه میدهد.
StartScanOptions
مشخصات
-
قالب
رشته
نوع MIME را برای برگرداندن دادههای اسکنشده مشخص میکند.
-
maxReadSize
شماره اختیاری
اگر مقدار غیرصفر مشخص شده باشد، حداکثر بایتهای اسکنشده برگرداندهشده در یک پاسخ
readScanDataرا به آن مقدار محدود میکند. کوچکترین مقدار مجاز ۳۲۷۶۸ (۳۲ کیلوبایت) است. اگر این ویژگی مشخص نشده باشد، اندازه تکه برگرداندهشده ممکن است بهاندازه کل تصویر اسکنشده باشد.
StartScanResponse
مشخصات
-
شغل
رشته اختیاری
اگر
resultSUCCESSباشد، دستگیرهای ارائه میدهد که میتوان از آن برای خواندن دادههای اسکن یا لغو کردن کار استفاده کرد. -
نتیجه
نتیجه شروع اسکن. اگر مقدار این
SUCCESSباشد، خصوصیتjobدرج خواهد شد. -
scannerHandle
رشته
همان دسته اسکنر را که به
startScan()ارسال شده است ارائه میدهد.
روشها
cancelScan()
browser.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
اسکن شروعشده را لغو میکند و یک Promise برمیگرداند که با شیء CancelScanResponse حل میشود. اگر از فراخوانی برگشتی استفاده شود، شیء بهجای آن به آن منتقل میشود.
پارامترها
-
شغل
رشته
دستگیره کار اسکن فعال قبلاً از تماس با
startScanبرگردانده شده است.
بازگشتیها
-
Promise<CancelScanResponse>
یک Promise برمیگرداند که با نتیجه حل میشود.
closeScanner()
browser.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
اسکنر را با دسته ارسالشده میبندد و یک Promise برمیگرداند که با شیء CloseScannerResponse حل میشود. اگر از فراخوانی برگشتی استفاده شود، شیء بهجای آن به آن منتقل میشود. حتی اگر پاسخ موفقیتآمیز نباشد، دسته ارائهشده نامعتبر میشود و نباید برای عملیات بعدی استفاده شود.
پارامترها
-
scannerHandle
رشته
دستگیره اسکنر بازی را که قبلاً از تماس با
openScannerبرگردانده شده است مشخص میکند.
بازگشتیها
-
Promise<CloseScannerResponse>
یک Promise برمیگرداند که با نتیجه حل میشود.
getOptionGroups()
browser.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
نامهای گروه و گزینههای عضو را از اسکنری که قبلاً توسط openScanner باز شده است دریافت میکند. این روش یک Promise برمیگرداند که با یک شیء GetOptionGroupsResponse حل میشود. اگر فراخوانی متقابل به این تابع منتقل شود، دادههای برگرداندهشده بهجای آن منتقل میشود.
پارامترها
-
scannerHandle
رشته
دستگیره اسکنر بازشده از تماس با
openScannerبرگردانده شد.
بازگشتیها
-
Promise<GetOptionGroupsResponse>
یک Promise برمیگرداند که با نتیجه حل میشود.
getScannerList()
browser.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
فهرست اسکنرهای دردسترس را دریافت میکند و یک Promise برمیگرداند که با شیء GetScannerListResponse حل میشود. اگر فراخوانی متقابل به این تابع منتقل شود، دادههای برگرداندهشده بهجای آن منتقل میشود.
پارامترها
-
فیلتر کردن
DeviceFilterکه نشان میدهد کدام نوع اسکنرها باید برگردانده شوند.
بازگشتیها
-
Promise<GetScannerListResponse>
یک Promise برمیگرداند که با نتیجه و فهرست اسکنرها حل میشود.
openScanner()
browser.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
اسکنری را برای دسترسی انحصاری باز میکند و Promise را که با شیء OpenScannerResponse حل میشود برمیگرداند. اگر فراخوانی متقابل به این تابع منتقل شود، دادههای برگرداندهشده بهجای آن منتقل میشود.
پارامترها
-
scannerId
رشته
شناسه اسکنری که باید باز شود. این مقدار یکی از مقادیر برگرداندهشده از تماس قبلی به
getScannerListاست.
بازگشتیها
-
Promise<OpenScannerResponse>
یک Promise برمیگرداند که با نتیجه حل میشود.
readScanData()
browser.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
بخش بعدی دادههای تصویر دردسترس را از یک دسته کار فعال میخواند و یک Promise برمیگرداند که با یک شیء ReadScanDataResponse حل میشود. اگر از فراخوانی برگشتی استفاده شود، شیء بهجای آن به آن منتقل میشود.
**توجه:**معتبر است که نتیجه پاسخ SUCCESS با عضو data با طول صفر باشد. این یعنی اسکنر هنوز درحال کار است اما هنوز دادههای بیشتری آماده نکرده است. تماسگیرنده باید کمی صبر کند و دوباره امتحان کند.
وقتی کار اسکن تکمیل شود، پاسخ دارای مقدار نتیجه EOF خواهد بود. این پاسخ ممکن است حاوی عضو نهایی غیرصفر data باشد.
پارامترها
-
شغل
رشته
دستگیره کار فعال قبلاً از
startScanبرگردانده شده است.
بازگشتیها
-
Promise<ReadScanDataResponse>
یک Promise برمیگرداند که با نتیجه حل میشود.
scan()
browser.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
سند را اسکن میکند و یک Promise برمیگرداند که با شیء ScanResults حل میشود. اگر فراخوانی متقابل به این تابع منتقل شود، دادههای برگرداندهشده بهجای آن منتقل میشود.
پارامترها
-
گزینهها
شیء حاوی پارامترهای اسکن.
بازگشتیها
-
Promise<ScanResults>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸یک Promise برمیگرداند که با نتایج اسکن حل میشود.
setOptions()
browser.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
گزینهها را در اسکنر مشخصشده تنظیم میکند و یک Promise برمیگرداند که با یک شیء SetOptionsResponse حاوی نتیجه تلاش برای تنظیم هر مقدار به ترتیب شیء OptionSetting ارسالشده حل میشود. اگر از فراخوانی برگشتی استفاده شود، شیء بهجای آن به آن منتقل میشود.
پارامترها
-
scannerHandle
رشته
دستگیره اسکنر برای تنظیم گزینهها. این باید مقداری باشد که قبلاً از تماس با
openScannerبرگردانده شده است. -
گزینهها
فهرستی از
OptionSettingشیء که باید در اسکنر اعمال شود.
بازگشتیها
-
Promise<SetOptionsResponse>
یک Promise برمیگرداند که با نتیجه حل میشود.
startScan()
browser.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
اسکن را در اسکنر مشخصشده شروع میکند و یک Promise برمیگرداند که با StartScanResponse حل میشود. اگر از فراخوانی برگشتی استفاده شود، شیء بهجای آن به آن منتقل میشود. اگر فراخوانی موفقیتآمیز باشد، پاسخ شامل یک دسته کار است که میتواند در فراخوانیهای بعدی برای خواندن دادههای اسکن یا لغو اسکن استفاده شود.
پارامترها
-
scannerHandle
رشته
دستگیره اسکنر باز. این باید مقداری باشد که قبلاً از تماس با
openScannerبرگردانده شده است. -
گزینهها
شیء
StartScanOptionsکه گزینههای مورداستفاده برای اسکن را نشان میدهد. ویژگیStartScanOptions.formatباید با یکی از ورودیهای برگرداندهشده درScannerInfoاسکنر مطابقت داشته باشد.
بازگشتیها
-
Promise<StartScanResponse>
یک Promise برمیگرداند که با نتیجه حل میشود.