الوصف
استخدِم واجهة برمجة التطبيقات chrome.documentScan للعثور على الصور واستردادها من الماسحات الضوئية للمستندات المرفقة.
تم تصميم واجهة برمجة التطبيقات Document Scan API للسماح للتطبيقات والإضافات بعرض محتوى المستندات الورقية على ماسح ضوئي للمستندات المرفقة.
الأذونات
documentScanمدى التوفّر
المفاهيم والاستخدام
تتيح واجهة برمجة التطبيقات هذه طريقتَين لمسح المستندات ضوئيًا. إذا كانت حالة الاستخدام لديك يمكن أن تعمل مع أي ماسح ضوئي ولا تتطلب التحكّم في الإعدادات، استخدِم الإجراء scan(). تتطلّب حالات الاستخدام الأكثر تعقيدًا مجموعة من الطرق،
وهي متاحة فقط في الإصدار 124 من Chrome والإصدارات الأحدث.
المسح الضوئي البسيط
بالنسبة إلى حالات الاستخدام البسيطة، أي تلك التي يمكن أن تعمل مع أي ماسح ضوئي ولا تتطلب التحكّم في الإعدادات، يمكنك استدعاء scan(). يستخدم هذا الإجراء عنصر ScanOptions ويعرض Promise يتم حله باستخدام عنصر ScanResults. تقتصر إمكانات هذا الخيار على عدد عمليات المسح الضوئي
وأنواع MIME التي سيقبلها المتصل. يتم عرض عمليات المسح الضوئي كعناوين URL
لعرضها في علامة <img> لواجهة المستخدم.
المسح الضوئي المعقّد
يتم إنجاز عمليات الفحص المعقّدة على ثلاث مراحل كما هو موضّح في هذا القسم. لا يصف هذا المخطط كل وسيطة طريقة أو كل خاصية يتم عرضها في الرد. والغرض منه هو تقديم دليل عام لكتابة رمز الماسح الضوئي.
استكشاف المحتوى
الاتصال بـ
getScannerList()يتم عرض الماسحات الضوئية المتاحة في Promise يتم حلّه باستخدامGetScannerListResponse.- يحتوي عنصر الاستجابة على مصفوفة من عناصر
ScannerInfo. - قد تحتوي المصفوفة على إدخالات متعددة لماسح ضوئي واحد إذا كان هذا الماسح الضوئي يتوافق مع بروتوكولات أو طرق اتصال متعددة.
- يحتوي عنصر الاستجابة على مصفوفة من عناصر
اختَر ماسحًا ضوئيًا من الصفيف الذي تم عرضه واحفظ قيمة السمة
scannerId.استخدِم سمات عناصر
ScannerInfoالفردية للتمييز بين العناصر المتعددة للماسح الضوئي نفسه. ستكون للكائنات من الماسح الضوئي نفسه القيمة نفسها للسمةdeviceUuid. يحتويScannerInfoأيضًا على سمةimageFormatsتتضمّن مصفوفة من أنواع الصور المتوافقة.
إعدادات الماسح الضوئي
استدعِ
openScanner()، مع إدخال معرّف الماسح الضوئي المحفوظ. وتعرض هذه الطريقة كائن Promise يتم حله باستخدامOpenScannerResponse. يحتوي عنصر الاستجابة على ما يلي:موقع إلكتروني واحد (
scannerHandle) عليك حفظهAn options property containing scanner-specific properties, which you'll need to set. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة "استرداد خيارات الماسح الضوئي".
(اختياري) إذا كنت بحاجة إلى أن يقدّم المستخدم قيمًا لخيارات الماسح الضوئي، يمكنك إنشاء واجهة مستخدم. ستحتاج إلى خيارات الماسح الضوئي التي توفّرها الخطوة السابقة، وستحتاج إلى استرداد مجموعات الخيارات التي يوفّرها الماسح الضوئي. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء واجهة مستخدم.
أنشئ مصفوفة من عناصر
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 }
}
على سبيل المثال، تخيَّل ماسحًا ضوئيًا يعرض خيارات باسم "المصدر" و"درجة الدقة". ستبدو بنية عنصر 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 ضوئيًا أدناه.
أمثلة
استرداد صفحة كملف ثنائي كبير (blob)
يوضّح هذا المثال طريقة واحدة لاسترداد صفحة من الماسح الضوئي كملف ثنائي كبير،
ويوضّح استخدام 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" });
}
مسح صفحة واحدة بحجم Letter ضوئيًا
يوضّح هذا المثال كيفية اختيار ماسح ضوئي وضبط خياراته وفتحه. بعد ذلك، يسترد محتويات صفحة واحدة ويغلق الماسح الضوئي. توضّح هذه العملية كيفية استخدام 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);
}
عرض الإعدادات
كما هو موضّح في مكان آخر، يتطلّب عرض خيارات ضبط الماسح الضوئي للمستخدم استدعاء getOptionGroups() بالإضافة إلى خيارات الماسح الضوئي التي يتم عرضها من استدعاء openScanner(). يتم ذلك حتى يمكن عرض الخيارات للمستخدمين في
المجموعات التي تحددها الشركة المصنعة. يوضّح هذا المثال كيفية إجراء ذلك.
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
كيفية تغيير خيار معيّن
Enum
"NOT_CONFIGURABLE"
الخيار للقراءة فقط.
"SOFTWARE_CONFIGURABLE"
يمكن ضبط الخيار في البرنامج.
"HARDWARE_CONFIGURABLE"
يمكن ضبط الخيار من خلال تبديل المستخدم أو الضغط على زر في الماسح الضوئي.
ConnectionType
يشير إلى كيفية توصيل الماسح الضوئي بالكمبيوتر.
Enum
"UNSPECIFIED"
"USB"
"NETWORK"
ConstraintType
نوع بيانات القيد الذي يمثّله OptionConstraint.
Enum
"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[] اختيارية
إذا كانت قيمة
resultهيSUCCESS، يتم توفير قائمة بمجموعات الخيارات بالترتيب الذي يوفّره برنامج تشغيل الماسح الضوئي. -
نتيجة
نتيجة الحصول على مجموعات الخيارات إذا كانت قيمة هذه السمة هي
SUCCESS، ستتم تعبئة السمةgroups. -
scannerHandle
سلسلة
مؤشر الماسح الضوئي نفسه الذي تم تمريره إلى
getOptionGroups.
GetScannerListResponse
الخصائص
-
نتيجة
نتيجة التعداد يُرجى العِلم أنّه يمكن عرض نتائج جزئية حتى إذا كان ذلك يشير إلى حدوث خطأ.
-
أجهزة المسح الضوئي
قائمة قد تكون فارغة بالماسحات الضوئية التي تتطابق مع
DeviceFilterالمقدَّم.
OpenScannerResponse
الخصائص
-
الخيارات
object اختياري
إذا كانت قيمة
resultهيSUCCESS، يتم توفير عملية ربط بين المفتاح والقيمة حيث يكون المفتاح خيارًا خاصًا بالجهاز وتكون القيمة مثيلاً لـScannerOption. -
نتيجة
نتيجة فتح الماسح الضوئي إذا كانت قيمة هذه السمة هي
SUCCESS، ستتم تعبئة السمتَينscannerHandleوoptions. -
scannerHandle
string اختياري
إذا كانت قيمة
resultهيSUCCESS، يتم عرض مؤشر للماسح الضوئي يمكن استخدامه لإجراء عمليات أخرى. -
scannerId
سلسلة
تم تمرير معرّف الماسح الضوئي إلى
openScanner().
OperationResult
قائمة تعداد تشير إلى نتيجة كل عملية.
Enum
"UNKNOWN"
حدث خطأ غير معروف أو عام.
"SUCCESS"
تمّت العملية بنجاح.
"UNSUPPORTED"
العملية غير متاحة.
"CANCELLED"
تم إلغاء العملية.
"DEVICE_BUSY"
الجهاز مشغول.
"INVALID"
إما البيانات أو الوسيطة التي تم تمريرها إلى الطريقة غير صالحة.
"WRONG_TYPE"
القيمة المقدَّمة هي نوع بيانات غير صحيح للخيار الأساسي.
"EOF"
لا تتوفّر بيانات أخرى.
"ADF_JAMMED"
وحدة تغذية المستندات مليئة بالأوراق.
"ADF_EMPTY"
وحدة التغذية التلقائية بالمستندات فارغة.
"COVER_OPEN"
غطاء الماسحة الضوئية المسطحة مفتوح.
"IO_ERROR"
حدث خطأ أثناء الاتصال بالجهاز.
"ACCESS_DENIED"
يتطلّب الجهاز المصادقة.
"NO_MEMORY"
لا تتوفّر ذاكرة كافية على جهاز Chromebook لإكمال العملية.
"UNREACHABLE"
يتعذّر الوصول إلى الجهاز.
"MISSING"
الجهاز غير متصل.
"INTERNAL_ERROR"
حدث خطأ في مكان آخر غير التطبيق الذي يتم الاتصال به.
OptionConstraint
الخصائص
-
قائمة
string[] | number[] اختيارية
-
الحد الأقصى
number اختيارية
-
دقيقة
number اختيارية
-
quant
number اختيارية
-
النوع
OptionGroup
الخصائص
-
الأعضاء
string[]
مصفوفة من أسماء الخيارات بالترتيب الذي يوفّره السائق
-
title
سلسلة
يوفّر عنوانًا قابلاً للطباعة، مثل "خيارات الهندسة".
OptionSetting
الخصائص
-
الاسم
سلسلة
يشير إلى اسم الخيار المطلوب ضبطه.
-
النوع
يشير إلى نوع بيانات الخيار. يجب أن يتطابق نوع البيانات المطلوب مع نوع البيانات الحقيقي للخيار الأساسي.
-
القيمة
string | number | boolean | number[] اختيارية
تشير إلى القيمة المطلوب ضبطها. اترك هذا الخيار بدون ضبط لطلب الضبط التلقائي للخيارات التي تم تفعيل
autoSettableلها. يجب أن يتطابق نوع البيانات المقدَّم لـ "value" مع "type".
OptionType
نوع بيانات الخيار
Enum
"UNKNOWN"
نوع بيانات الخيار غير معروف. ستتم إزالة سمة value.
"BOOL"
ستكون السمة value إحدى القيمتين truefalse.
"INT"
عدد صحيح موقَّع من 32 بت ستكون السمة value من النوع long أو long[]، استنادًا إلى ما إذا كان الخيار يتطلّب أكثر من قيمة واحدة.
"FIXED"
قيمة مزدوجة في النطاق من -32768 إلى 32767.9999 بدرجة دقة تبلغ 1/65535. ستكون السمة value من النوع double أو double[] استنادًا إلى ما إذا كان الخيار يتطلّب أكثر من قيمة واحدة. سيتم تقريب القيم المزدوجة التي لا يمكن تمثيلها بدقة إلى النطاق والدقة المتاحَين.
"STRING"
تسلسل من أي وحدات بايت باستثناء NUL ('\0'). ستكون السمة value من النوع DOMString.
"BUTTON"
لا يتضمّن الخيار من هذا النوع أي قيمة. بدلاً من ذلك، يؤدي ضبط خيار من هذا النوع إلى حدوث تأثير جانبي خاص بالخيار في برنامج تشغيل الماسح الضوئي. على سبيل المثال، يمكن استخدام خيار من نوع الزر بواسطة برنامج تشغيل الماسح الضوئي لتوفير وسيلة لاختيار القيم التلقائية أو لإعلام وحدة التغذية التلقائية بالمستندات بالانتقال إلى الورقة التالية.
"GROUP"
خيار التجميع. بلا قيمة يتم تضمين هذا الحقل للتوافق، ولكن لن يتم عرضه عادةً في قيم ScannerOption. استخدِم getOptionGroups() لاسترداد قائمة المجموعات مع خيارات الأعضاء.
OptionUnit
يشير إلى نوع البيانات في ScannerOption.unit.
Enum
"UNITLESS"
القيمة هي رقم بدون وحدة. على سبيل المثال، يمكن أن يكون حدًا أدنى.
"PIXEL"
القيمة هي عدد وحدات البكسل، على سبيل المثال، أبعاد المسح الضوئي.
"BIT"
تمثّل القيمة عدد وحدات البت، مثل عمق اللون.
"MM"
يتم قياس القيمة بالملليمتر، على سبيل المثال، أبعاد المسح الضوئي.
"DPI"
يتم قياس القيمة بالنقاط لكل بوصة، على سبيل المثال، الدقة.
"PERCENT"
القيمة هي نسبة مئوية، مثل مستوى السطوع.
"MICROSECOND"
يتم قياس القيمة بالميكرو ثانية، مثل مدة التعرّض.
ReadScanDataResponse
الخصائص
-
البيانات
ArrayBuffer اختياري
إذا كانت قيمة
resultهيSUCCESS، يحتوي هذا الحقل على الجزء التالي من بيانات الصورة الممسوحة ضوئيًا. إذا كانت قيمةresultهيEOF، يحتوي على آخر جزء من بيانات الصورة الممسوحة ضوئيًا. -
estimatedCompletion
number اختيارية
إذا كانت قيمة
resultهيSUCCESS، يتم عرض تقدير لمقدار إجمالي بيانات الفحص التي تم تسليمها حتى الآن، في النطاق من 0 إلى 100. -
وظيفة
سلسلة
توفّر هذه السمة معرّف الوظيفة الذي تم تمريره إلى
readScanData(). -
نتيجة
نتيجة قراءة البيانات إذا كانت قيمتها
SUCCESS، يحتويdataعلى الجزء التالي (ربما يكون طوله صفرًا) من بيانات الصورة الجاهزة للقراءة. إذا كانت قيمتهاEOF، يحتويdataعلى الجزء الأخير من بيانات الصورة.
ScannerInfo
الخصائص
-
connectionType
يشير إلى كيفية توصيل الماسح الضوئي بالكمبيوتر.
-
deviceUuid
سلسلة
للمطابقة مع إدخالات
ScannerInfoالأخرى التي تشير إلى الجهاز الفعلي نفسه -
imageFormats
string[]
مصفوفة من أنواع MIME التي يمكن طلبها لعمليات المسح الضوئي التي يتم عرضها
-
الشركة المصنّعة
سلسلة
الشركة المصنّعة للماسح الضوئي
-
نموذج
سلسلة
طراز الماسح الضوئي إذا كان متاحًا، أو وصف عام
-
الاسم
سلسلة
اسم الماسح الضوئي الذي يمكن لشخص عادي قراءته ليظهر في واجهة المستخدم
-
protocolType
سلسلة
وصف يمكن لشخص عادي قراءته للبروتوكول أو برنامج التشغيل المستخدَم للوصول إلى الماسح الضوئي، مثل Mopria أو WSD أو epsonds ويُعدّ ذلك مفيدًا في المقام الأول للسماح للمستخدم بالاختيار بين البروتوكولات إذا كان الجهاز يتيح بروتوكولات متعددة.
-
scannerId
سلسلة
رقم تعريف ماسح ضوئي معيّن
-
آمن
قيمة منطقية
إذا تم ضبط هذه السياسة على "صحيح"، لا يمكن لمستمع سلبي اعتراض نقل اتصال الماسح الضوئي، مثل بروتوكول أمان طبقة النقل (TLS) أو USB.
ScannerOption
الخصائص
-
إمكانية الضبط
يشير إلى ما إذا كان يمكن تغيير الخيار وكيفية تغييره.
-
شرط
OptionConstraint اختياري
يحدّد هذا الخيار
OptionConstraintفي خيار الماسح الضوئي الحالي. -
الوصف
سلسلة
وصف أطول للخيار
-
isActive
قيمة منطقية
يشير إلى أنّ الخيار نشط ويمكن ضبطه أو استرداده. إذا كانت القيمة "خطأ"، لن يتم ضبط السمة
value. -
isAdvanced
قيمة منطقية
يشير إلى أنّ واجهة المستخدم يجب ألا تعرض هذا الخيار تلقائيًا.
-
isAutoSettable
قيمة منطقية
يمكن ضبطه تلقائيًا بواسطة برنامج تشغيل الماسح الضوئي.
-
isDetectable
قيمة منطقية
يشير إلى أنّه يمكن رصد هذا الخيار من البرنامج.
-
isEmulated
قيمة منطقية
تتم محاكاتها بواسطة برنامج تشغيل الماسح الضوئي إذا كانت القيمة "صحيح".
-
الاسم
سلسلة
اسم الخيار باستخدام أحرف ASCII الصغيرة والأرقام والشرطات لا يُسمح باستخدام علامات التشكيل.
-
title
سلسلة
عنوان من سطر واحد قابل للطباعة
-
النوع
نوع البيانات المضمّن في السمة
value، وهو مطلوب لضبط هذا الخيار. -
الوحدة
وحدة القياس لهذا الخيار
-
القيمة
string | number | boolean | number[] اختيارية
القيمة الحالية للخيار، إذا كانت ذات صلة. يُرجى العِلم أنّ نوع بيانات هذه السمة يجب أن يتطابق مع نوع البيانات المحدّد في
type.
ScanOptions
الخصائص
-
maxImages
number اختيارية
عدد الصور الممسوحة ضوئيًا المسموح بها القيمة التلقائية هي 1.
-
mimeTypes
string[] اختياري
أنواع MIME التي يقبلها المتصل.
ScanResults
الخصائص
-
dataUrls
string[]
مصفوفة من عناوين URL لصور البيانات في نموذج يمكن تمريره كقيمة "src" إلى علامة صورة.
-
mimeType
سلسلة
نوع MIME لـ
dataUrls.
SetOptionResult
الخصائص
-
الاسم
سلسلة
يشير إلى اسم الخيار الذي تم ضبطه.
-
نتيجة
تشير إلى نتيجة ضبط الخيار.
SetOptionsResponse
الخصائص
-
الخيارات
object اختياري
تمثّل هذه السمة عملية ربط معدَّلة بين المفتاح والقيمة من أسماء الخيارات إلى قيم
ScannerOptionالتي تحتوي على الإعدادات الجديدة بعد محاولة ضبط جميع الخيارات المقدَّمة. تتّبع هذه السمة البنية نفسها التي تتّبعها السمةoptionsفيOpenScannerResponse.سيتم ضبط هذه السمة حتى إذا لم يتم ضبط بعض الخيارات بنجاح، ولكن سيتم إلغاء ضبطها في حال تعذّر استرداد الإعدادات المعدَّلة (على سبيل المثال، إذا تم فصل الماسح الضوئي في منتصف عملية المسح الضوئي).
-
النتائج
مصفوفة من النتائج، واحدة لكل
OptionSettingتم تمريره. -
scannerHandle
سلسلة
يوفّر هذا الإذن معرّف الماسح الضوئي الذي تم تمريره إلى
setOptions().
StartScanOptions
الخصائص
-
التنسيق
سلسلة
يحدّد نوع MIME لعرض البيانات الممسوحة ضوئيًا.
-
maxReadSize
number اختيارية
في حال تحديد قيمة غير صفرية، يتم وضع حد أقصى لعدد وحدات البايت التي يتم فحصها في استجابة واحدة من
readScanData. أصغر قيمة مسموح بها هي 32768 (32 كيلوبايت). في حال عدم تحديد هذه السمة، قد يكون حجم الجزء المعروض كبيرًا مثل الصورة الممسوحة ضوئيًا بالكامل.
StartScanResponse
الخصائص
-
وظيفة
string اختياري
إذا كانت قيمة
resultهيSUCCESS، يتم توفير مؤشر يمكن استخدامه لقراءة بيانات المسح الضوئي أو إلغاء المهمة. -
نتيجة
نتيجة بدء عملية فحص إذا كانت قيمة هذه السمة هي
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>
الإصدار 96 من Chrome والإصدارات الأحدث browser.* منذ الإصدار 148 من 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 يتم حله بالنتيجة.