توضیحات
از 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 [] اختیاری است
اگر
result
SUCCESS
باشد، فهرستی از گروه های گزینه را به ترتیب ارائه شده توسط درایور اسکنر ارائه می دهد. - نتیجه
نتیجه گرفتن گروه های گزینه. اگر مقدار این
SUCCESS
باشد، ویژگیgroups
پر می شود. - اسکنر هندل
رشته
همان دسته اسکنر که به
getOptionGroups
منتقل شد.
GetScannerListResponse
خواص
- نتیجه
نتیجه شمارش توجه داشته باشید که نتایج جزئی ممکن است برگردانده شوند حتی اگر این نشان دهنده یک خطا باشد.
- اسکنرها
ScannerInfo []
فهرستی احتمالاً خالی از اسکنرهایی که با
DeviceFilter
ارائه شده مطابقت دارند.
OpenScannerResponse
خواص
- گزینه ها
شی اختیاری
اگر
result
SUCCESS
باشد، یک نگاشت کلید-مقدار ارائه می دهد که در آن کلید یک گزینه خاص دستگاه است و مقدار نمونه ای ازScannerOption
است. - نتیجه
نتیجه باز کردن اسکنر. اگر مقدار این
SUCCESS
باشد، ویژگیscannerHandle
وoptions
پر می شود. - اسکنر هندل
رشته اختیاری
اگر
result
SUCCESS
باشد، دستگیره ای برای اسکنر است که می تواند برای عملیات بعدی استفاده شود. - شناسه اسکنر
رشته
شناسه اسکنر به
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 اختیاری است
اگر
result
SUCCESS
باشد، حاوی تکه بعدی داده های تصویر اسکن شده است. اگرresult
EOF
باشد، حاوی آخرین تکه داده تصویر اسکن شده است. - تکمیل برآورد شده
شماره اختیاری
اگر
result
SUCCESS
باشد، تخمینی از میزان کل دادههای اسکن تا کنون ارائه شده است، در محدوده 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
خواص
- شغل
رشته اختیاری
اگر
result
SUCCESS
باشد، دسته ای را ارائه می دهد که می تواند برای خواندن داده های اسکن یا لغو کار استفاده شود. - نتیجه
نتیجه شروع اسکن. اگر مقدار این
SUCCESS
باشد، ویژگیjob
پر می شود. - دسته اسکنر
رشته
همان دسته اسکنر را ارائه می دهد که به
startScan()
منتقل شد.
روش ها
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
یک اسکن شروع شده را لغو می کند و یک Promise را برمی گرداند که با یک شی CancelScanResponse
حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.
پارامترها
- شغل
رشته
دسته یک کار اسکن فعال که قبلاً از تماس با
startScan
برگردانده شده است. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: CancelScanResponse) => void
- پاسخ
برمی گرداند
Promise< CancelScanResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
اسکنر را با دسته عبور میبندد و یک Promise را برمیگرداند که با یک شی CloseScannerResponse
حل میشود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود. حتی اگر پاسخ موفقیت آمیز نباشد، دسته ارائه شده نامعتبر می شود و نباید برای عملیات بعدی استفاده شود.
پارامترها
- اسکنر هندل
رشته
دسته یک اسکنر باز را که قبلاً از یک تماس به
openScanner
برگردانده شده بود را مشخص می کند. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: CloseScannerResponse) => void
- پاسخ
برمی گرداند
Promise< CloseScannerResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
نام گروه و گزینه های اعضا را از اسکنر که قبلاً توسط openScanner
باز شده است دریافت می کند. این متد یک Promise برمی گرداند که با یک شی GetOptionGroupsResponse
حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- دسته اسکنر
رشته
دسته یک اسکنر باز از یک تماس به
openScanner
بازگشت. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: GetOptionGroupsResponse) => void
برمی گرداند
Promise< GetOptionGroupsResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
لیستی از اسکنرهای موجود را دریافت می کند و یک Promise برمی گرداند که با یک شی GetScannerListResponse
حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- فیلتر
یک
DeviceFilter
که نشان می دهد چه نوع اسکنرهایی باید برگردانده شوند. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: GetScannerListResponse) => void
برمی گرداند
Promise< GetScannerListResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
یک اسکنر را برای دسترسی انحصاری باز می کند و یک Promise را برمی گرداند که با یک شی OpenScannerResponse
حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- شناسه اسکنر
رشته
شناسه یک اسکنر که باید باز شود. این مقدار یک مقدار است که از تماس قبلی با
getScannerList
برگردانده شده است. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: OpenScannerResponse) => void
- پاسخ
برمی گرداند
Promise< OpenScannerResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
تکه بعدی داده های تصویر موجود را از یک دسته کار فعال می خواند و یک Promise برمی گرداند که با یک شی ReadScanDataResponse
حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.
**توجه:**برای نتیجه پاسخ SUCCESS
با عضو data
با طول صفر معتبر است. این بدان معنی است که اسکنر هنوز کار می کند اما هنوز داده های اضافی آماده نیست. تماس گیرنده باید مدت کوتاهی صبر کند و دوباره تلاش کند.
هنگامی که کار اسکن کامل شد، پاسخ مقدار نتیجه EOF
را خواهد داشت. این پاسخ ممکن است حاوی یک عضو data
نهایی غیر صفر باشد.
پارامترها
- شغل
رشته
دسته کار فعال که قبلاً از
startScan
برگردانده شده است. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: ReadScanDataResponse) => void
- پاسخ
برمی گرداند
Promise< ReadScanDataResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
یک اسکن سند را انجام می دهد و یک Promise را برمی گرداند که با یک شی ScanResults
حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.
پارامترها
- گزینه ها
یک شی حاوی پارامترهای اسکن.
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(result: ScanResults) => void
- نتیجه
برمی گرداند
Promise< نتایج اسکن >
Chrome 96+Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
گزینهها را روی اسکنر مشخص شده تنظیم میکند و یک Promise برمیگرداند که با یک شی SetOptionsResponse
حل میشود که حاوی نتیجه تلاش برای تنظیم هر مقدار به ترتیب شی OptionSetting
. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.
پارامترها
- دسته اسکنر
رشته
دسته اسکنر برای تنظیم گزینه ها. این باید مقداری باشد که قبلاً از تماس با
openScanner
بازگردانده شده است. - گزینه ها
فهرستی از اشیاء
OptionSetting
که باید روی اسکنر اعمال شوند. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: SetOptionsResponse) => void
- پاسخ
برمی گرداند
Promise< SetOptionsResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
اسکن را روی اسکنر مشخص شده شروع می کند و یک Promise را برمی گرداند که با StartScanResponse
حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود. اگر تماس موفقیت آمیز بود، پاسخ شامل یک دسته کار است که می تواند در تماس های بعدی برای خواندن داده های اسکن یا لغو اسکن استفاده شود.
پارامترها
- اسکنر هندل
رشته
دسته یک اسکنر باز. این باید مقداری باشد که قبلاً از تماس با
openScanner
بازگردانده شده است. - گزینه ها
یک شی
StartScanOptions
که گزینه های مورد استفاده برای اسکن را نشان می دهد. ویژگیStartScanOptions.format
باید با یکی از ورودی های بازگردانده شده درScannerInfo
اسکنر مطابقت داشته باشد. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: StartScanResponse) => void
- پاسخ
برمی گرداند
Promise< StartScanResponse >
Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.