توضیحات
از chrome.documentScan API برای کشف و بازیابی تصاویر از اسکنرهای اسناد پیوست شده استفاده کنید.
Document Scan API طوری طراحی شده است که به برنامهها و برنامههای افزودنی اجازه میدهد محتوای اسناد کاغذی را روی یک اسکنر اسناد پیوست شده مشاهده کنند.
مجوزها
documentScanدر دسترس بودن
مفاهیم و کاربرد
این API از دو روش اسکن اسناد پشتیبانی می کند. اگر مورد استفاده شما می تواند با هر اسکنر کار کند و نیازی به کنترل پیکربندی ندارد، از روش scan() استفاده کنید. موارد استفاده پیچیدهتر به ترکیبی از روشها نیاز دارند که فقط در Chrome 124 و جدیدتر پشتیبانی میشوند.
اسکن ساده
برای موارد استفاده ساده، یعنی مواردی که می توانند با هر اسکنر کار کنند و نیازی به کنترل پیکربندی ندارند، scan() را فراخوانی کنید. این روش یک شی ScanOptions را می گیرد و یک Promise برمی گرداند که با یک شی ScanResults حل می شود. قابلیت های این گزینه محدود به تعداد اسکن ها و انواع MIME است که توسط تماس گیرنده پذیرفته می شود. اسکن ها به عنوان URL برای نمایش در یک برچسب <img> برای یک رابط کاربری برگردانده می شوند.
اسکن پیچیده
اسکن های پیچیده در سه مرحله انجام می شود که در این بخش توضیح داده شده است. این طرح کلی هر آرگومان متد یا هر ویژگی که در یک پاسخ برگردانده شده است را توصیف نمی کند. هدف از آن فقط ارائه یک راهنمای کلی برای نوشتن کد اسکنر است.
کشف
با
getScannerList()تماس بگیرید. اسکنرهای موجود در یک Promise برگردانده می شوند که با یکGetScannerListResponseحل می شود.- شی پاسخ حاوی آرایه ای از اشیاء
ScannerInfoاست. - اگر آن اسکنر از چندین پروتکل یا روش اتصال پشتیبانی کند، آرایه ممکن است حاوی چندین ورودی برای یک اسکنر باشد.
- شی پاسخ حاوی آرایه ای از اشیاء
یک اسکنر از آرایه برگشتی انتخاب کنید و مقدار ویژگی
scannerIdآن را ذخیره کنید.از خصوصیات تک تک اشیاء
ScannerInfoبرای تمایز بین چندین شی برای یک اسکنر استفاده کنید. اشیاء از یک اسکنر برای ویژگیdeviceUuidمقدار یکسانی خواهند داشت.ScannerInfoهمچنین دارای ویژگیimageFormatsاست که شامل آرایه ای از انواع تصاویر پشتیبانی شده است.
پیکربندی اسکنر
با ارسال شناسه اسکنر ذخیره شده،
openScanner()فراخوانی کنید. یک Promise برمی گرداند که باOpenScannerResponseحل می شود. شی پاسخ شامل:یک ویژگی
scannerHandleکه باید آن را ذخیره کنید.یک ویژگی گزینه حاوی ویژگی های خاص اسکنر، که باید آن را تنظیم کنید. برای اطلاعات بیشتر به بازیابی گزینه های اسکنر مراجعه کنید.
(اختیاری) اگر نیاز دارید که کاربر مقادیری را برای گزینه های اسکنر ارائه کند، یک رابط کاربری بسازید. شما به گزینه های اسکنر ارائه شده در مرحله قبل نیاز دارید و باید گروه های گزینه ارائه شده توسط اسکنر را بازیابی کنید. برای اطلاعات بیشتر به ساخت رابط کاربری مراجعه کنید.
آرایه ای از اشیاء
OptionSettingبا استفاده از مقادیر برنامه نویسی یا ارائه شده توسط کاربر بسازید. برای اطلاعات بیشتر به تنظیم گزینههای اسکنر مراجعه کنید.آرایه اشیاء
OptionSettingرا بهsetOptions()بفرستید تا گزینهها را برای اسکنر تنظیم کنید. یک Promise برمی گرداند که باSetOptionsResponseحل می شود. این شی حاوی یک نسخه به روز شده از گزینه های اسکنر است که در مرحله 1 پیکربندی اسکنر بازیابی شده است.از آنجایی که تغییر یک گزینه می تواند محدودیت های موجود در گزینه دیگر را تغییر دهد، ممکن است لازم باشد این مراحل را چندین بار تکرار کنید.
اسکن کردن
یک شی
StartScanOptionsبسازید و آن را بهstartScan()ارسال کنید. یک Promise برمی گرداند که باStartScanResponseحل می شود. ویژگیjobآن دسته ای است که از آن برای خواندن داده های اسکن یا لغو اسکن استفاده می کنید.دسته کار را به
readScanData()منتقل کنید. یک Promise برمی گرداند که با یک شیReadScanDataResponseحل می شود. اگر داده با موفقیت خوانده شود، ویژگیresultآن برابر باSUCCESSاست و ویژگیdataآن حاوی یکArrayBufferبا بخشی از اسکن است. توجه داشته باشید کهestimatedCompletionشامل درصد تخمینی از کل دادههایی است که تاکنون تحویل داده شده است.مرحله قبل را تکرار کنید تا ویژگی
resultبرابرEOFیا یک خطا شود.
هنگامی که به پایان اسکن رسید، closeScanner() با دسته اسکنر که در مرحله 3 ذخیره شده است فراخوانی کنید. یک Promise برمی گرداند که با یک CloseScannerResponse حل می شود. فراخوانی cancelScan() در هر زمانی پس از ایجاد کار، اسکن را پایان می دهد.
اشیاء پاسخ
همه متدها یک Promise را برمیگردانند که با یک شی پاسخ حل میشود. اکثر اینها حاوی یک ویژگی result هستند که مقدار آن عضوی از OperationResult است. برخی از خصوصیات اشیاء پاسخ حاوی مقادیری نیستند مگر اینکه مقدار result دارای مقدار خاصی باشد. این روابط در مرجع برای هر شی پاسخ توضیح داده شده است.
به عنوان مثال، OpenScannerResponse.scannerHandle فقط زمانی مقداری خواهد داشت که OpenScannerResponse.result برابر با SUCCESS باشد.
گزینه های اسکنر
گزینه های اسکنر بسته به دستگاه بسیار متفاوت است. در نتیجه، امکان انعکاس گزینه های اسکنر مستقیماً در documentScan API وجود ندارد. برای دور زدن این موضوع، OpenScannerResponse (بازیابی شده با استفاده از openScanner() ) و SetOptionsResponse (شیء پاسخ برای setOptions() ) حاوی یک ویژگی options است که یک شی حاوی گزینه های خاص اسکنر است. هر گزینه یک نگاشت کلید-مقدار است که در آن کلید یک گزینه خاص دستگاه و مقدار یک نمونه از ScannerOption است.
ساختار به طور کلی به این صورت است:
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
برای مثال، اسکنر را تصور کنید که گزینههایی با نامهای «source» و «رزولوشن» را برمیگرداند. ساختار شی options بازگشتی چیزی شبیه به مثال زیر خواهد بود. برای سادگی، فقط پاسخ های ScannerOption جزئی نشان داده می شود.
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
یک رابط کاربری بسازید
اگرچه نیازی به استفاده از این API نیست، ممکن است بخواهید کاربر مقدار یک گزینه خاص را انتخاب کند. این به یک رابط کاربری نیاز دارد. از OpenScannerResponse (بازشده توسط openScanner() ) برای بازیابی گزینههای اسکنر پیوست شده، همانطور که در بخش قبل توضیح داده شد، استفاده کنید.
برخی از اسکنرها گزینه ها را به روش های خاص دستگاه گروه بندی می کنند. آنها رفتارهای گزینه را تحت تأثیر قرار نمی دهند، اما از آنجایی که ممکن است این گروه ها در مستندات محصول اسکنر ذکر شوند، چنین گروه هایی باید به کاربر نشان داده شوند. می توانید این گروه ها را با فراخوانی getOptionGroups() بازیابی کنید. این یک Promise برمی گرداند که با یک شی GetOptionGroupsResponse حل می شود. ویژگی groups آن شامل آرایهای از گروههای مخصوص اسکنر است. از اطلاعات این گروه ها برای سازماندهی گزینه ها در OpenScannerResponse برای نمایش استفاده کنید.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
همانطور که در پیکربندی اسکنر بیان شد، تغییر یک گزینه میتواند محدودیتهای روی گزینه دیگر را تغییر دهد. به همین دلیل است که setOptionsResponse (شیء پاسخ برای setOptions() ) دارای ویژگی options دیگری است. از این برای به روز رسانی رابط کاربری استفاده کنید. سپس در صورت نیاز تکرار کنید تا همه گزینه ها تنظیم شوند.
گزینه های اسکنر را تنظیم کنید
با ارسال آرایه ای از اشیاء OptionSetting به setOptions() گزینه های اسکنر را تنظیم کنید. برای مثال، بخش اسکن صفحه با اندازه یک حرف زیر را ببینید.
نمونه ها
یک صفحه را به صورت حباب بازیابی کنید
این مثال یک راه را برای بازیابی صفحه از اسکنر به عنوان یک حباب نشان می دهد و استفاده از startScan() و readScanData() را با استفاده از مقدار 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" });
}
اسکن یک صفحه به اندازه حرف
این مثال نحوه انتخاب یک اسکنر، تنظیم گزینه های آن و باز کردن آن را نشان می دهد. سپس محتویات یک صفحه را بازیابی می کند و اسکنر را می بندد. این فرآیند با استفاده از getScannerList() ، openScanner() ، setOptions() و closeScanner() نشان می دهد. توجه داشته باشید که محتویات صفحه با فراخوانی تابع pageAsBlob() از مثال قبلی بازیابی می شود.
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);
}
پیکربندی را نشان دهید
همانطور که در جای دیگر گفته شد، نمایش گزینه های پیکربندی اسکنر به کاربر، علاوه بر گزینه های اسکنر که از تماس با openScanner() باز می گردد، نیاز به فراخوانی getOptionGroups() دارد. این به این دلیل است که می توان گزینه ها را در گروه های تعریف شده توسط سازنده به کاربران نشان داد. این مثال نحوه انجام این کار را نشان می دهد.
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");
}
}
}
}
انواع
CancelScanResponse
خواص
- شغل
رشته
همان دسته کار را ارائه می کند که به
cancelScan()منتقل شد. - نتیجه
نتیجه اسکن لغو باطن. اگر نتیجه
OperationResult.SUCCESSیاOperationResult.CANCELLEDباشد، اسکن لغو شده است و اسکنر آماده شروع یک اسکن جدید است. اگر نتیجهOperationResult.DEVICE_BUSYباشد، اسکنر همچنان در حال پردازش لغو درخواستی است. تماس گیرنده باید مدت کوتاهی صبر کند و دوباره درخواست را امتحان کند. سایر مقادیر نتیجه نشان دهنده یک خطای دائمی است که نباید دوباره امتحان شود.
CloseScannerResponse
خواص
- نتیجه
نتیجه بسته شدن اسکنر. حتی اگر این مقدار
SUCCESSنباشد، دسته نامعتبر خواهد بود و نباید برای عملیات بعدی استفاده شود. - اسکنر هندل
رشته
همان دسته اسکنر که به
closeScannerمنتقل شد.
Configurability
چگونه یک گزینه را می توان تغییر داد
Enum
"NOT_CONFIGURABLE" "SOFTWARE_CONFIGURABLE" "HARDWARE_CONFIGURABLE"
گزینه فقط خواندنی است.
این گزینه را می توان در نرم افزار تنظیم کرد.
این گزینه را می توان با تغییر دادن یا فشار دادن دکمه ای روی اسکنر توسط کاربر تنظیم کرد.
ConnectionType
نحوه اتصال اسکنر به رایانه را نشان می دهد.
Enum
"نامشخص" "USB" "شبکه"
Enum
"INT_RANGE" "FIXED_RANGE" "INT_LIST" "FIXED_LIST" "STRING_LIST"
محدودیت در محدوده ای از مقادیر OptionType.INT . ویژگیهای min ، max و quant OptionConstraint long خواهد بود و ویژگی list آن تنظیم نخواهد شد.
محدودیت در محدوده ای از مقادیر OptionType.FIXED . ویژگیهای min ، max و quant OptionConstraint double میشود و ویژگی list آن تنظیم نمیشود.
محدودیت در لیست خاصی از مقادیر OptionType.INT . ویژگی OptionConstraint.list حاوی مقادیر long خواهد بود و سایر ویژگی ها تنظیم نمی شوند.
محدودیت در لیست خاصی از مقادیر OptionType.FIXED . ویژگی OptionConstraint.list حاوی مقادیر double خواهد بود و سایر ویژگی ها تنظیم نمی شوند.
محدودیت در لیست خاصی از مقادیر OptionType.STRING . ویژگی OptionConstraint.list حاوی مقادیر DOMString خواهد بود و سایر ویژگی ها تنظیم نمی شوند.
DeviceFilter
خواص
- محلی
بولی اختیاری
فقط اسکنرهایی را برگردانید که مستقیماً به رایانه متصل هستند.
- امن
بولی اختیاری
فقط اسکنرهایی را برگردانید که از حمل و نقل ایمن مانند USB یا TLS استفاده می کنند.
GetOptionGroupsResponse
خواص
- گروه ها
OptionGroup [] اختیاری است
اگر
resultSUCCESSباشد، فهرستی از گروه های گزینه را به ترتیب ارائه شده توسط درایور اسکنر ارائه می دهد. - نتیجه
نتیجه گرفتن گروه های گزینه. اگر مقدار این
SUCCESSباشد، ویژگیgroupsپر می شود. - اسکنر هندل
رشته
همان دسته اسکنر که به
getOptionGroupsمنتقل شد.
GetScannerListResponse
خواص
- نتیجه
نتیجه شمارش توجه داشته باشید که نتایج جزئی ممکن است برگردانده شوند حتی اگر این نشان دهنده یک خطا باشد.
- اسکنرها
ScannerInfo []
فهرستی احتمالاً خالی از اسکنرهایی که با
DeviceFilterارائه شده مطابقت دارند.
OpenScannerResponse
خواص
- گزینه ها
شی اختیاری
اگر
resultSUCCESSباشد، یک نگاشت کلید-مقدار ارائه می دهد که در آن کلید یک گزینه خاص دستگاه است و مقدار نمونه ای ازScannerOptionاست. - نتیجه
نتیجه باز کردن اسکنر. اگر مقدار این
SUCCESSباشد، ویژگیscannerHandleوoptionsپر می شود. - اسکنر هندل
رشته اختیاری
اگر
resultSUCCESSباشد، دستگیره ای برای اسکنر است که می تواند برای عملیات بعدی استفاده شود. - شناسه اسکنر
رشته
شناسه اسکنر به
openScanner()منتقل شد.
OperationResult
یک عدد که نتیجه هر عملیات را نشان می دهد.
Enum
"ناشناخته" "موفقیت" "بدون حمایت" "لغو شد" "DEVICE_BUSY" "نامعتبر" "WRONG_TYPE" "EOF" "ADF_JAMMED" "ADF_EMPTY" "COVER_OPEN" "IO_ERROR" "ACCESS_DENIED" "NO_MEMORY" "دست نیافتنی" "گمشده" "INTERNAL_ERROR"
یک شکست ناشناخته یا عمومی رخ داد.
عملیات موفق شد.
عملیات پشتیبانی نمی شود.
عملیات لغو شد.
دستگاه مشغول است.
داده یا آرگومان ارسال شده به متد معتبر نیست.
مقدار ارائه شده نوع داده اشتباهی برای گزینه زیرساختی است.
داده دیگری در دسترس نیست.
تغذیه کننده سند گیر کرده است.
تغذیه کننده سند خالی است.
روکش تخت باز است.
هنگام برقراری ارتباط با دستگاه خطایی روی داد.
دستگاه نیاز به احراز هویت دارد.
حافظه کافی برای تکمیل عملیات در Chromebook موجود نیست.
دستگاه قابل دسترسی نیست.
دستگاه قطع شده است.
در جایی غیر از برنامه فراخوانی خطایی رخ داده است.
OptionConstraint
خواص
- فهرست
رشته[] | شماره[] اختیاری
- حداکثر
شماره اختیاری
- دقیقه
شماره اختیاری
- مقدار
شماره اختیاری
- نوع
OptionGroup
خواص
- اعضا
رشته[]
آرایه ای از نام گزینه ها به ترتیب ارائه شده توسط راننده.
- عنوان
رشته
یک عنوان قابل چاپ ارائه می دهد، به عنوان مثال "گزینه های هندسه".
OptionSetting
خواص
- نام
رشته
نام گزینه تنظیم را نشان می دهد.
- نوع
نوع داده گزینه را نشان می دهد. نوع داده درخواستی باید با نوع داده واقعی گزینه اصلی مطابقت داشته باشد.
- ارزش
رشته | شماره | بولی | شماره[] اختیاری
مقدار مورد نظر را نشان می دهد. برای درخواست تنظیمات خودکار برای گزینههایی که
autoSettableفعال کردهاند، تنظیم نشده را رها کنید. نوع داده ارائه شده برایvalueباید باtypeمطابقت داشته باشد.
OptionType
نوع داده یک گزینه
Enum
"ناشناخته" "بول" "INT" "تثبیت شده" "STRING" "دکمه" "گروه"
نوع داده این گزینه ناشناخته است. ویژگی value تنظیم نخواهد شد.
ویژگی value یکی از true false خواهد بود.
یک عدد صحیح 32 بیتی امضا شده. بسته به اینکه این گزینه بیش از یک مقدار را بگیرد، ویژگی value طولانی یا طولانی خواهد بود.
یک دوبل در محدوده -32768-32767.9999 با وضوح 1/65535. بسته به اینکه گزینه بیش از یک مقدار بگیرد، ویژگی value دو یا دو برابر خواهد بود. مقادیر دوگانه ای که نمی توانند دقیقاً نمایش داده شوند به محدوده و دقت موجود گرد می شوند.
دنباله ای از هر بایت به جز NUL ('\0'). ویژگی value یک DOMString خواهد بود.
گزینه ای از این نوع ارزش ندارد. در عوض، تنظیم گزینه ای از این نوع باعث ایجاد یک اثر جانبی خاص در درایور اسکنر می شود. به عنوان مثال، یک گزینه با دکمه تایپ می تواند توسط یک درایور اسکنر استفاده شود تا وسیله ای برای انتخاب مقادیر پیش فرض فراهم کند یا به یک تغذیه کننده خودکار اسناد بگوید که به صفحه کاغذ بعدی پیش رود.
گزینه گروه بندی بدون ارزش این برای سازگاری گنجانده شده است، اما معمولاً در مقادیر ScannerOption بازگردانده نمی شود. از getOptionGroups() برای بازیابی لیست گروه ها با گزینه های عضوشان استفاده کنید.
Enum
"بی واحد" "PIXEL" "بیت" "MM" "DPI" "PERCENT" "میکروس ثانیه"
مقدار یک عدد بدون واحد است. به عنوان مثال، می تواند یک آستانه باشد.
مقدار تعدادی پیکسل است، به عنوان مثال، ابعاد اسکن.
مقدار تعداد بیت ها است، به عنوان مثال، عمق رنگ.
مقدار در میلی متر اندازه گیری می شود، به عنوان مثال، ابعاد اسکن.
مقدار در نقطه در اینچ اندازه گیری می شود، به عنوان مثال، وضوح.
مقدار یک درصد است، به عنوان مثال، روشنایی.
مقدار در میکروثانیه اندازه گیری می شود، به عنوان مثال، زمان قرار گرفتن در معرض.
ReadScanDataResponse
خواص
- داده ها
ArrayBuffer اختیاری است
اگر
resultSUCCESSباشد، حاوی تکه بعدی داده های تصویر اسکن شده است. اگرresultEOFباشد، حاوی آخرین تکه داده تصویر اسکن شده است. - تکمیل برآورد شده
شماره اختیاری
اگر
resultSUCCESSباشد، تخمینی از میزان کل دادههای اسکن تا کنون ارائه شده است، در محدوده 0 تا 100. - شغل
رشته
دسته کار ارسال شده به
readScanData()را ارائه می دهد. - نتیجه
نتیجه خواندن داده ها اگر مقدار آن
SUCCESSباشد،dataشامل قطعه بعدی (احتمالاً با طول صفر) از داده های تصویر است که برای خواندن آماده است. اگر مقدار آنEOFباشد،dataحاوی آخرین تکه داده تصویر است.
ScannerInfo
خواص
- نوع اتصال
نحوه اتصال اسکنر به رایانه را نشان می دهد.
- deviceUuid
رشته
برای تطبیق با سایر ورودیهای
ScannerInfoکه به یک دستگاه فیزیکی اشاره میکنند. - فرمت های تصویر
رشته[]
آرایه ای از انواع MIME که می توان برای اسکن های برگشتی درخواست کرد.
- سازنده
رشته
سازنده اسکنر
- مدل
رشته
مدل اسکنر در صورت موجود بودن، یا توضیحات عمومی.
- نام
رشته
یک نام قابل خواندن برای اسکنر برای نمایش در رابط کاربری.
- نوع پروتکل
رشته
شرح قابل خواندن توسط انسان از پروتکل یا درایور مورد استفاده برای دسترسی به اسکنر، مانند Mopria، WSD، یا epsonds. این در درجه اول برای اجازه دادن به کاربر برای انتخاب بین پروتکل ها مفید است اگر دستگاهی از چندین پروتکل پشتیبانی می کند.
- شناسه اسکنر
رشته
شناسه یک اسکنر خاص
- امن
بولی
اگر درست باشد، انتقال اتصال اسکنر توسط یک شنونده غیرفعال مانند TLS یا USB قابل رهگیری نیست.
ScannerOption
خواص
- قابلیت پیکربندی
نشان می دهد که آیا و چگونه می توان گزینه را تغییر داد.
- محدودیت
OptionConstraint اختیاری است
OptionConstraintروی گزینه اسکنر فعلی تعریف می کند. - توضیحات
رشته
توضیحات طولانی تر از گزینه.
- فعال است
بولی
نشان می دهد که گزینه فعال است و می توان آن را تنظیم یا بازیابی کرد. اگر false باشد، ویژگی
valueتنظیم نخواهد شد. - پیشرفته است
بولی
نشان می دهد که UI نباید این گزینه را به طور پیش فرض نمایش دهد.
- isAutoSettable
بولی
می تواند به طور خودکار توسط درایور اسکنر تنظیم شود.
- قابل تشخیص است
بولی
نشان می دهد که این گزینه از طریق نرم افزار قابل شناسایی است.
- شبیه سازی شده است
بولی
اگر درست باشد توسط درایور اسکنر شبیه سازی شده است.
- نام
رشته
نام گزینه با استفاده از حروف کوچک اسکی، اعداد و خط تیره. دیاکریتیک مجاز نیست.
- عنوان
رشته
عنوان تک خطی قابل چاپ
- نوع
نوع داده موجود در ویژگی
valueکه برای تنظیم این گزینه مورد نیاز است. - واحد
واحد اندازه گیری این گزینه
- ارزش
رشته | شماره | بولی | شماره[] اختیاری
مقدار فعلی گزینه، در صورت مرتبط بودن. توجه داشته باشید که نوع داده این ویژگی باید با نوع داده مشخص شده در
typeمطابقت داشته باشد.
ScanOptions
خواص
- حداکثر تصاویر
شماره اختیاری
تعداد تصاویر اسکن شده مجاز است. پیش فرض 1 است.
- mimeTypes
رشته[] اختیاری است
انواع MIME که توسط تماس گیرنده پذیرفته می شود.
ScanResults
خواص
- dataUrls
رشته[]
آرایه ای از URL های تصویر داده به شکلی که می تواند به عنوان مقدار "src" به یک تگ تصویر ارسال شود.
- mimeType
رشته
نوع MIME
dataUrls.
SetOptionResult
خواص
- نام
رشته
نام گزینه ای که تنظیم شده را نشان می دهد.
- نتیجه
نتیجه تنظیم گزینه را نشان می دهد.
SetOptionsResponse
خواص
- گزینه ها
شی اختیاری
یک نگاشت کلید-مقدار به روز شده از نام گزینه ها تا مقادیر
ScannerOptionحاوی پیکربندی جدید پس از تلاش برای تنظیم همه گزینه های ارائه شده. این ساختار مشابه ویژگیoptionsدرOpenScannerResponseاست.حتی اگر برخی از گزینهها با موفقیت تنظیم نشده باشند، این ویژگی تنظیم میشود، اما اگر بازیابی پیکربندی بهروز نشد (به عنوان مثال، اگر اسکنر در وسط اسکن قطع شود) تنظیم نمیشود.
- نتایج
آرایه ای از نتایج، هر کدام برای هر
OptionSettingتصویب شده. - اسکنر هندل
رشته
دسته اسکنر را به
setOptions()ارائه می دهد.
StartScanOptions
خواص
- قالب
رشته
نوع MIME را برای برگرداندن داده های اسکن شده مشخص می کند.
- maxReadSize
شماره اختیاری
اگر مقدار غیر صفر مشخص شده باشد، حداکثر بایت های اسکن شده بازگردانده شده در یک پاسخ
readScanDataرا به آن مقدار محدود می کند. کوچکترین مقدار مجاز 32768 (32 کیلوبایت) است. اگر این ویژگی مشخص نشده باشد، اندازه یک تکه برگشتی ممکن است به بزرگی کل تصویر اسکن شده باشد.
StartScanResponse
خواص
- شغل
رشته اختیاری
اگر
resultSUCCESSباشد، دسته ای را ارائه می دهد که می تواند برای خواندن داده های اسکن یا لغو کار استفاده شود. - نتیجه
نتیجه شروع اسکن. اگر مقدار این
SUCCESSباشد، ویژگیjobپر می شود. - اسکنر هندل
رشته
همان دسته اسکنر را ارائه می دهد که به
startScan()منتقل شد.
روش ها
cancelScan()
chrome.documentScan.cancelScan(
job: string,
): Promise<CancelScanResponse>
یک اسکن شروع شده را لغو می کند و یک Promise را برمی گرداند که با یک شی CancelScanResponse حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.
پارامترها
- شغل
رشته
دسته یک کار اسکن فعال که قبلاً از تماس با
startScanبرگردانده شده است.
برمی گرداند
Promise< CancelScanResponse >
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
): Promise<CloseScannerResponse>
اسکنر را با دسته عبور میبندد و یک Promise را برمیگرداند که با یک شی CloseScannerResponse حل میشود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود. حتی اگر پاسخ موفقیت آمیز نباشد، دسته ارائه شده نامعتبر می شود و نباید برای عملیات بعدی استفاده شود.
پارامترها
- اسکنر هندل
رشته
دسته یک اسکنر باز را که قبلاً از یک تماس به
openScannerبرگردانده شده بود را مشخص می کند.
برمی گرداند
Promise< CloseScannerResponse >
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
): Promise<GetOptionGroupsResponse>
نام گروه و گزینه های اعضا را از اسکنر که قبلاً توسط openScanner باز شده است دریافت می کند. این متد یک Promise برمی گرداند که با یک شی GetOptionGroupsResponse حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- اسکنر هندل
رشته
دسته یک اسکنر باز از یک تماس به
openScannerبازگشت.
برمی گرداند
Promise< GetOptionGroupsResponse >
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
): Promise<GetScannerListResponse>
لیستی از اسکنرهای موجود را دریافت می کند و یک Promise برمی گرداند که با یک شی GetScannerListResponse حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- فیلتر
یک
DeviceFilterکه نشان می دهد چه نوع اسکنرهایی باید برگردانده شوند.
برمی گرداند
Promise< GetScannerListResponse >
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
): Promise<OpenScannerResponse>
یک اسکنر را برای دسترسی انحصاری باز می کند و یک Promise را برمی گرداند که با یک شی OpenScannerResponse حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- شناسه اسکنر
رشته
شناسه یک اسکنر که باید باز شود. این مقدار یک مقدار است که از تماس قبلی با
getScannerListبرگردانده شده است.
برمی گرداند
Promise< OpenScannerResponse >
readScanData()
chrome.documentScan.readScanData(
job: string,
): Promise<ReadScanDataResponse>
تکه بعدی داده های تصویر موجود را از یک دسته کار فعال می خواند و یک Promise برمی گرداند که با یک شی ReadScanDataResponse حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.
**توجه:**برای نتیجه پاسخ SUCCESS با عضو data با طول صفر معتبر است. این بدان معنی است که اسکنر هنوز کار می کند اما هنوز داده های اضافی آماده نیست. تماس گیرنده باید مدت کوتاهی صبر کند و دوباره تلاش کند.
هنگامی که کار اسکن کامل شد، پاسخ مقدار نتیجه EOF را خواهد داشت. این پاسخ ممکن است حاوی یک عضو data نهایی غیر صفر باشد.
پارامترها
- شغل
رشته
دسته کار فعال که قبلاً از
startScanبرگردانده شده است.
برمی گرداند
Promise< ReadScanDataResponse >
scan()
chrome.documentScan.scan(
options: ScanOptions,
): Promise<ScanResults>
یک اسکن سند را انجام می دهد و یک Promise را برمی گرداند که با یک شی ScanResults حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- گزینه ها
یک شی حاوی پارامترهای اسکن.
برمی گرداند
Promise< نتایج اسکن >
Chrome 96+
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
): Promise<SetOptionsResponse>
گزینهها را روی اسکنر مشخص شده تنظیم میکند و یک Promise برمیگرداند که با یک شی SetOptionsResponse حل میشود که حاوی نتیجه تلاش برای تنظیم هر مقدار به ترتیب شی OptionSetting است. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.
پارامترها
- اسکنر هندل
رشته
دسته اسکنر برای تنظیم گزینه ها. این باید مقداری باشد که قبلاً از تماس با
openScannerبازگردانده شده است. - گزینه ها
فهرستی از اشیاء
OptionSettingکه باید روی اسکنر اعمال شوند.
برمی گرداند
Promise< SetOptionsResponse >
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
): Promise<StartScanResponse>
اسکن را روی اسکنر مشخص شده شروع می کند و یک Promise را برمی گرداند که با StartScanResponse حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود. اگر تماس موفقیت آمیز بود، پاسخ شامل یک دسته کار است که می تواند در تماس های بعدی برای خواندن داده های اسکن یا لغو اسکن استفاده شود.
پارامترها
- اسکنر هندل
رشته
دسته یک اسکنر باز. این باید مقداری باشد که قبلاً از تماس با
openScannerبازگردانده شده است. - گزینه ها
یک شی
StartScanOptionsکه گزینه های مورد استفاده برای اسکن را نشان می دهد. ویژگیStartScanOptions.formatباید با یکی از ورودی های بازگردانده شده درScannerInfoاسکنر مطابقت داشته باشد.
برمی گرداند
Promise< StartScanResponse >