الوصف
استخدِم واجهة برمجة التطبيقات chrome.documentScan
API لاكتشاف الصور واستردادها من الماسحات الضوئية للمستندات المرفقة.
تم تصميم واجهة برمجة التطبيقات Document Scan API للسماح للتطبيقات والإضافات بعرض محتوى المستندات الورقية على ماسح ضوئي للمستندات مرفق.
الأذونات
documentScan
مدى التوفّر
المفاهيم وطريقة الاستخدام
تتيح واجهة برمجة التطبيقات هذه طريقتَين لمسح المستندات ضوئيًا. إذا كان استخدامك يمكن أن يعمل
مع أيّ ماسح ضوئي ولا يتطلّب التحكّم في الإعدادات، استخدِم scan()
. تتطلّب حالات الاستخدام الأكثر تعقيدًا استخدام مجموعة من الطرق،
التي لا تتوفّر إلا في الإصدار 124 من Chrome والإصدارات الأحدث.
المسح الضوئي البسيط
بالنسبة إلى حالات الاستخدام البسيطة، أي تلك التي يمكنها العمل مع أي ماسحة ضوئية ولا تحتاج إلى التحكّم في الإعدادات، يُرجى الاتصال بالرقم scan()
. تأخذ هذه الطريقة عنصرًا من نوع
ScanOptions
وتُعرِض وعدًا يتم حلّه باستخدام عنصر ScanResults
. تقتصر إمكانات هذا الخيار على عدد عمليات الفحص و
أنواع MIME التي سيقبلها المتصل. يتم عرض عمليات المسح كعناوين URL
لعرضها في علامة <img>
لواجهة مستخدم.
المسح المعقد
يتم إجراء عمليات الفحص المعقدة على ثلاث مراحل كما هو موضّح في هذا القسم. لا يصف هذا المخطّط كل وسيطة طريقة أو كلّ خاصيّة يتمّ عرضها في ردّ. والهدف منه هو تقديم دليل عام لكتابة رمز برمجي لجهاز الماسح الضوئي.
الاكتشاف
يُرجى الاتصال على
getScannerList()
. يتم عرض الماسح الضوئي المتاح فيGetScannerListResponse
.- يحتوي عنصر الاستجابة على صفيف من عناصر
ScannerInfo
. - قد تحتوي الصفيف على إدخالات متعددة لماسحة ضوئية واحدة إذا كانت هذه الماسح الضوئي تتوافق مع بروتوكولات أو طرق اتصال متعددة.
- يحتوي عنصر الاستجابة على صفيف من عناصر
اختَر ماسحًا ضوئيًا من الصفيف المعروض واحفظ قيمة سمة
scannerId
.استخدِم سمات عناصر
ScannerInfo
الفردية للتمييز بين عناصر متعددة في الماسح الضوئي نفسه. ستحتوي الأجسام من الماسح الضوئي نفسه على القيمة نفسها لسمةdeviceUuid
. يحتويScannerInfo
أيضًا على سمةimageFormats
تحتوي على صفيف من أنواع الصور المتوافقة.
إعدادات الماسح الضوئي
اتصل بـ
openScanner()
مع إدخال رقم تعريف الماسح الضوئي المحفوظ. ويعرِض وعدًا يتم حلّه باستخدامOpenScannerResponse
. يحتوي عنصر الاستجابة على ما يلي:سمة
scannerHandle
التي عليك حفظهاخاصية خيارات تحتوي على خصائص خاصة بالماسح الضوئي، والتي تحتاج إلى ضبطها. راجِع خيارات استرداد بيانات الماسح الضوئي للحصول على مزيد من المعلومات.
(اختياري) إذا كنت بحاجة إلى أن يقدّم المستخدم قيمًا لخيارات الماسح الضوئي، أنشئ واجهة مستخدم. ستحتاج إلى خيارات الماسح الضوئي المقدَّمة من الخطوة السابقة، وستحتاج إلى استرداد مجموعات الخيارات المقدَّمة من الماسح الضوئي. اطّلِع على إنشاء واجهة مستخدم للحصول على مزيد من المعلومات.
أنشئ مصفوفة من عناصر
OptionSetting
باستخدام قيم آلية أو قيم يقدّمها المستخدم. اطّلِع على مقالة "ضبط خيارات الماسح الضوئي" للحصول على مزيد من المعلومات.نقْل صفيف عناصر
OptionSetting
إلىsetOptions()
لضبط خيارات الماسح الضوئي. ويؤدي ذلك إلى عرض وعد يتم حلّه باستخدامSetOptionsResponse
. يحتوي هذا العنصر على إصدار معدَّل من خيارات الماسح الضوئي التي تم استرجاعها في الخطوة 1 من عملية إعداد الماسح الضوئي.بما أنّ تغيير أحد الخيارات يمكن أن يؤدي إلى تغيير القيود المفروضة على خيار آخر، قد تحتاج إلى تكرار هذه الخطوات عدة مرات.
جارٍ البحث
أنشئ عنصر
StartScanOptions
وأرسِله إلىstartScan()
. ويعرض وعدًا يتم حلّه باستخدامStartScanResponse
. السمةjob
هي اسم معرِّف ستستخدمه لقراءة بيانات المسح الضوئي أو إلغاء عملية المسح.نقْل اسم الوظيفة إلى
readScanData()
. ويعرِض وعدًا يتم حلّه باستخدام عنصرReadScanDataResponse
. إذا تم قراءة البيانات بنجاح، تساوي سمةresult
SUCCESS
وتتضمّن سمةdata
ArrayBuffer
جزءًا من عملية المسح. يُرجى العِلم أنّestimatedCompletion
يحتوي على نسبته مقدَّرة من إجمالي البيانات التي تم إرسالها حتى الآن.كرِّر الخطوة السابقة إلى أن يساوي الحقل
result
الحقلEOF
أو يظهر خطأ.
عند بلوغ نهاية عملية المسح الضوئي، اتصل على الرقم
closeScanner()
باستخدام الاسم المعرِّف للماسح الضوئي المحفوظ في الخطوة
3. ويعرِض وعدًا يتم حلّه باستخدام
CloseScannerResponse
. سيؤدي الاتصال بالرقم
cancelScan()
في أي وقت بعد إنشاء المهمة إلى
إنهاء عملية الفحص.
عناصر الاستجابة
تعرض جميع الطرق وعدًا يتم حلّه باستخدام عنصر استجابة من نوع ما.
تحتوي معظم هذه العناصر على سمة 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()
. يعرِض هذا الإجراء وعدًا يتم حلّه باستخدام عنصر
GetOptionGroupsResponse
. يحتوي الحقل groups
على صفيف من المجموعات خاص بالماسح الضوئي. استخدِم المعلومات الواردة في
هذه المجموعات لتنظيم الخيارات في
OpenScannerResponse
لعرضها.
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
كما هو موضّح ضمن إعدادات الماسح الضوئي، يمكن أن يؤدي تغيير خيار واحد إلى تغيير القيود المفروضة على خيار آخر. لهذا السبب، يحتوي
setOptionsResponse
(كائن الاستجابة لمحاولة
setOptions()
) على خاصية options
أخرى. استخدِم
هذا الإجراء لتعديل واجهة المستخدم. كرِّر هذه الخطوات حسب الحاجة إلى أن يتم ضبط جميع الخيارات.
ضبط خيارات الماسح الضوئي
اضبط خيارات الماسح الضوئي من خلال تمرير مصفوفة من عناصر
OptionSetting
إلى
setOptions()
. على سبيل المثال، اطّلِع على قسم مسح صفحة واحدة بحجم A4 ضوئيًا التالي.
أمثلة
استرداد صفحة كعنصر blob
يعرض هذا المثال طريقة واحدة لاسترداد صفحة من الماسح الضوئي ككتلة بيانات ويشرح استخدام 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" });
}
مسح صفحة واحدة بحجم A4 ضوئيًا
يوضِّح هذا المثال كيفية اختيار أداة فحص وضبط خياراتها وفتحها. ثم يتم retrievingاسترداد محتوى صفحة واحدة وإغلاق الماسح الضوئي. توضِّح هذه العملية استخدام 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);
}
عرض الإعدادات
كما هو موضّح في مكان آخر، يتطلب عرض خيارات ضبط الماسح الضوئي للمستخدم
طلب getOptionGroups()
بالإضافة إلى خيارات الماسح الضوئي التي يتم عرضها من
طلب openScanner()
. يُرجى العِلم أنّ هذا الإجراء ضروري لعرض الخيارات للمستخدمين في
المجموعات التي يحدّدها المصنّع. يوضّح هذا المثال كيفية إجراء ذلك.
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
، سيكون الاسم المعرِّف غير صالح ويجب عدم استخدامه لإجراء أي عمليات أخرى. -
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
أماكن إقامة
-
local
منطقي اختياري
لا تعرض سوى الماسح الضوئي المتصل مباشرةً بالكمبيوتر.
-
آمن
منطقي اختياري
عرض الماسح الضوئي الذي يستخدم نقلاً آمنًا فقط، مثل USB أو بروتوكول أمان طبقة النقل (TLS)
GetOptionGroupsResponse
أماكن إقامة
-
مجموعات
OptionGroup[] اختياري
إذا كان
result
هوSUCCESS
، يتم توفير قائمة بمجموعات الخيارات بالترتيب الذي يقدّمه برنامج تشغيل الماسح الضوئي. -
نتيجة
نتيجة الحصول على مجموعات الخيارات إذا كانت قيمة هذا العنصر هي
SUCCESS
، ستتم تعبئة السمةgroups
. -
scannerHandle
سلسلة
الاسم المعرِّف نفسه للمسح الضوئي الذي تم تمريره إلى
getOptionGroups
.
GetScannerListResponse
أماكن إقامة
-
نتيجة
نتيجة التعداد. يُرجى العِلم أنّه يمكن عرض نتائج جزئية حتى إذا كان ذلك يشير إلى خطأ.
-
أجهزة المسح الضوئي
قائمة قد تكون فارغة من أدوات الفحص التي تتطابق مع
DeviceFilter
المقدَّمة.
OpenScannerResponse
أماكن إقامة
-
الخيارات
العنصر اختياري
إذا كان
result
هوSUCCESS
، يجب توفير تعيين مفتاح/قيمة يكون فيه المفتاح خيارًا خاصًا بالجهاز والقيمة مثيلًا منScannerOption
. -
نتيجة
نتيجة فتح الماسح الضوئي إذا كانت قيمة هذا الحقل هي
SUCCESS
، ستتم تعبئة السمتَينscannerHandle
وoptions
. -
scannerHandle
سلسلة اختيارية
إذا كان
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"
يتعذّر الوصول إلى الجهاز.
"غير متوفّر"
تم قطع اتصال الجهاز.
"INTERNAL_ERROR"
حدث خطأ في مكان آخر غير تطبيق الاتصال.
OptionConstraint
أماكن إقامة
-
قائمة
سلسلة | عدد اختياري
-
الحد الأقصى
رقم اختياري
-
دقيقة
رقم اختياري
-
quant
رقم اختياري
-
كتابة
OptionGroup
أماكن إقامة
-
الأعضاء
string[]
صفيف من أسماء الخيارات بالترتيب الذي يقدّمه السائق
-
title
سلسلة
يوفّر عنوانًا قابلاً للطباعة، مثل "خيارات الشكل الهندسي".
OptionSetting
أماكن إقامة
-
الاسم
سلسلة
يشير إلى اسم الخيار المطلوب ضبطه.
-
كتابة
يشير إلى نوع بيانات الخيار. يجب أن يتطابق نوع البيانات المطلوب مع نوع البيانات الفعلي للخيار الأساسي.
-
القيمة
سلسلة | عدد | قيمة منطقية | عدد[] اختياري
يشير إلى القيمة المطلوب ضبطها. اترك الخيار غير محدّد لطلب الإعداد التلقائي للخيارات التي تم تفعيل
autoSettable
فيها. يجب أن يتطابق نوع البيانات المقدَّم لسمةvalue
معtype
.
OptionType
نوع بيانات خيار معيّن
Enum
"UNKNOWN"
نوع بيانات الخيار غير معروف. سيتم إلغاء ضبط السمة value
.
"BOOL"
تكون قيمة السمة value
إحدى القيمتَين true
false.
"INT"
عدد صحيح موقَّت 32 بت ستكون السمة value
طويلة أو طويلة[]، وذلك استنادًا إلى ما إذا كان الخيار يقبل أكثر من قيمة واحدة.
"FIXED"
عدد مزدوج في النطاق -32768-32767.9999 بدقة 1/65535. سيكون سمة value
double أو double[] بناءً على ما إذا كان الخيار يقبل أكثر من قيمة واحدة. سيتم تقريب القيم المزدوجة التي لا يمكن تمثيلها بدقة إلى النطاق والدقة المتاحَين.
"STRING"
تسلسل من أي وحدات بايت باستثناء NUL ('\0'). ستكون سمة value
عبارة عن DOMString.
"BUTTON"
لا يحتوي الخيار من هذا النوع على قيمة. بدلاً من ذلك، يؤدي ضبط خيار من هذا النوع إلى حدوث تأثير جانبي خاص بالخيار في برنامج تشغيل الماسح الضوئي. على سبيل المثال، يمكن أن يستخدم برنامج تشغيل الماسح الضوئي خيارًا من النوع زر لتوفير وسيلة لاختيار القيم التلقائية أو لطلب تقدُّم وحدة تغذية المستندات التلقائية إلى ورقة الورق التالية.
"GROUP"
خيار التجميع لا قيمة. يتم تضمين هذا الإجراء من أجل التوافق، ولكن لن يتم عادةً إرجاعه في قيم ScannerOption
. استخدِم getOptionGroups()
لاسترداد قائمة المجموعات مع خيارات الأعضاء.
Enum
"UNITLESS"
القيمة هي رقم بدون وحدة. على سبيل المثال، يمكن أن يكون حدًا أدنى.
"PIXEL"
القيمة هي عدد من البكسل، مثل سمات المسح الضوئي.
"BIT"
القيمة هي عدد البتات، على سبيل المثال، عمق اللون.
"MM"
يتم قياس القيمة بالمليمتر، على سبيل المثال، سمات المسح الضوئي.
"DPI"
يتم قياس القيمة بالنقاط لكل بوصة، مثل الدقة.
"PERCENT"
القيمة هي نسبة مئوية، مثل السطوع.
"MICROSECOND"
يتم قياس القيمة بالميكرو ثانية، مثل وقت التعرّض.
ReadScanDataResponse
أماكن إقامة
-
البيانات
ArrayBuffer اختياري
إذا كان
result
يساويSUCCESS
، يحتوي على الجزء التالي من بيانات الصورة الممسوحة ضوئيًا. إذا كانresult
هوEOF
، يحتوي على الجزء المتأخر من بيانات الصورة الممسوحة ضوئيًا. -
estimatedCompletion
رقم اختياري
إذا كان
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
، وهو مطلوب لضبط هذا الخيار. -
الوحدة
وحدة قياس هذا الخيار.
-
القيمة
سلسلة | عدد | قيمة منطقية | عدد[] اختياري
القيمة الحالية للخيار، إذا كان ذلك منطبقًا يُرجى العِلم أنّ نوع البيانات لهذه السمة يجب أن يتطابق مع نوع البيانات المحدّد في
type
.
ScanOptions
أماكن إقامة
-
maxImages
رقم اختياري
عدد الصور الممسوحة ضوئيًا المسموح به القيمة التلقائية هي 1.
-
mimeTypes
سلسلة اختيارية
أنواع MIME التي يقبلها المتصل
ScanResults
أماكن إقامة
-
dataUrls
string[]
صفيف من عناوين URL لصور البيانات بتنسيق يمكن تمريره كقيمة "src" إلى علامة صورة.
-
mimeType
سلسلة
نوع MIME الخاص بال
dataUrls
SetOptionResult
أماكن إقامة
-
الاسم
سلسلة
يشير إلى اسم الخيار الذي تم ضبطه.
-
نتيجة
يشير إلى نتيجة ضبط الخيار.
SetOptionsResponse
أماكن إقامة
-
الخيارات
العنصر اختياري
تعيين مفتاح/قيمة معدَّل من أسماء الخيارات إلى قيم
ScannerOption
التي تحتوي على الإعدادات الجديدة بعد محاولة ضبط جميع الخيارات المقدَّمة. تتّبع هذه السمة البنية نفسها لسمةoptions
فيOpenScannerResponse
.سيتم ضبط هذه السمة حتى إذا لم يتم ضبط بعض الخيارات بنجاح، ولكن سيتم إلغاء ضبطها في حال تعذّر استرداد الإعدادات المعدَّلة (على سبيل المثال، إذا انقطع الاتصال بالماسح الضوئي أثناء عملية المسح).
-
النتائج
صفيف من النتائج، كلّ نتيجة لكلّ
OptionSetting
تم تمريرها -
scannerHandle
سلسلة
يوفّر معرّف الماسح الضوئي الذي تم تمريره إلى
setOptions()
.
StartScanOptions
أماكن إقامة
-
التنسيق
سلسلة
تُستخدَم لتحديد نوع MIME لعرض البيانات الممسوحة ضوئيًا.
-
maxReadSize
رقم اختياري
في حال تحديد قيمة غير صفرية، يتم الحد من الحد الأقصى للبايتات التي تم فحصها والتي يتم عرضها في استجابة
readScanData
واحدة لهذه القيمة. أصغر قيمة مسموح بها هي 32768 (32 كيلوبايت). في حال عدم تحديد هذه السمة، قد يكون حجم الجزء الذي يتم إرجاعه كبيرًا مثل حجم الصورة الممسوحة ضوئيًا بالكامل.
StartScanResponse
أماكن إقامة
-
وظيفة
سلسلة اختيارية
إذا كان
result
هوSUCCESS
، قدِّم اسمًا معرِّفًا يمكن استخدامه لقراءة بيانات المسح الضوئي أو إلغاء المهمة. -
نتيجة
نتيجة بدء عملية فحص إذا كانت قيمة هذا العنصر هي
SUCCESS
، ستتم تعبئة السمةjob
. -
scannerHandle
سلسلة
يوفّر الاسم المعرِّف نفسه للمسح الضوئي الذي تم تمريره إلى
startScan()
.
الطُرق
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
تلغي عملية مسح ضوئي بدأت وتُرجع وعدًا يتم حلّه باستخدام عنصر CancelScanResponse
. في حال استخدام دالة استدعاء، يتم تمرير الكائن إليها بدلاً من ذلك.
المعلمات
-
وظيفة
سلسلة
الاسم المعرِّف لمهمة فحص نشطة تم إرجاعه سابقًا من طلب إلى
startScan
. -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: CancelScanResponse) => void
المرتجعات
-
Promise<CancelScanResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
يغلق الماسح الضوئي باستخدام المعرّف الذي تم تمريره ويعرض وعدًا يتم حلّه باستخدام عنصر CloseScannerResponse
. في حال استخدام دالة استدعاء، يتم تمرير الكائن إليها بدلاً من ذلك. حتى إذا لم يكن الردّ ناجحًا، يصبح الاسم المعرِّف المقدَّم غير صالح ويجب عدم استخدامه لإجراء المزيد من العمليات.
المعلمات
-
scannerHandle
سلسلة
تُحدِّد هذه السمة الاسم المعرِّف لآلة مسح ضوئي مفتوحة تم عرضها سابقًا من طلب إلى
openScanner
. -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: CloseScannerResponse) => void
المرتجعات
-
Promise<CloseScannerResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
تحصل على أسماء المجموعات وخيارات الأعضاء من أداة مسح ضوئي فتحها openScanner
في السابق. تُعرِض هذه الطريقة وعدًا يتم حلّه باستخدام عنصر GetOptionGroupsResponse
. في حال تمّ تمرير دالة ردّ اتصال إلى هذه الدالة، يتمّ تمرير البيانات المعروضة إليها بدلاً من ذلك.
المعلمات
-
scannerHandle
سلسلة
تم عرض الاسم المعرِّف لأحد الماسح الضوئي المفتوحة بعد تلقّي مكالمة من
openScanner
. -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: GetOptionGroupsResponse) => void
المرتجعات
-
Promise<GetOptionGroupsResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
تحصل على قائمة بأجهزة المسح الضوئي المتاحة وتُرجع وعدًا يتم حلّه باستخدام عنصر GetScannerListResponse
. في حال تمّ تمرير دالة ردّ اتصال إلى هذه الدالة، يتمّ تمرير البيانات المعروضة إليها بدلاً من ذلك.
المعلمات
-
تصفية
رمز
DeviceFilter
يشير إلى أنواع الماسح الضوئي التي يجب إرجاعها -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: GetScannerListResponse) => void
المرتجعات
-
Promise<GetScannerListResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
يفتح الماسح الضوئي للوصول الحصري ويعرض وعدًا يتم حلّه باستخدام عنصر OpenScannerResponse
. في حال تمّ تمرير دالة ردّ اتصال إلى هذه الدالة، يتمّ تمرير البيانات المعروضة إليها بدلاً من ذلك.
المعلمات
-
scannerId
سلسلة
رقم تعريف الماسح الضوئي المطلوب فتحه هذه القيمة هي قيمة تم عرضها من طلب سابق إلى
getScannerList
. -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: OpenScannerResponse) => void
المرتجعات
-
Promise<OpenScannerResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
تقرأ هذه الدالة الجزء التالي من بيانات الصورة المتاحة من معرّف مهمة نشط، وتُرجع وعدًا يتم حلّه باستخدام عنصر ReadScanDataResponse
. في حال استخدام دالة استدعاء، يتم تمرير الكائن إليها بدلاً من ذلك.
**ملاحظة:**يُعدّ SUCCESS
مع عنصر data
بطول صفري نتيجة ردّ صالحة. يعني ذلك أنّ الماسح الضوئي لا يزال يعمل ولكنّه لم يُعدّ بعد بيانات إضافية. على المتصل الانتظار لفترة قصيرة وإعادة المحاولة.
عند اكتمال مهمة الفحص، سيكون للردّ قيمة النتيجة EOF
. قد يحتوي هذا الردّ على عضو نهائي في data
بقيمة غير صفرية.
المعلمات
-
وظيفة
سلسلة
الاسم المعرِّف للوظيفة النشطة الذي تم إرجاعه سابقًا من
startScan
. -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: ReadScanDataResponse) => void
المرتجعات
-
Promise<ReadScanDataResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
تُجري عملية مسح ضوئي للمستند وتُرجع وعدًا يتم حلّه باستخدام عنصر ScanResults
. في حال تمّ تمرير دالة ردّ اتصال إلى هذه الدالة، يتمّ تمرير البيانات المعروضة إليها بدلاً من ذلك.
المعلمات
-
الخيارات
عنصر يحتوي على مَعلمات المسح
-
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(result: ScanResults) => void
-
نتيجة
-
المرتجعات
-
Promise<ScanResults>
Chrome 96 والإصدارات الأحدثتتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
تضبط الخيارات على الماسح الضوئي المحدّد وتُرجع وعدًا يتم حلّه باستخدام عنصر SetOptionsResponse
يحتوي على نتيجة محاولة ضبط كل قيمة بترتيب عنصر OptionSetting
الذي تم تمريره. في حال استخدام دالة استدعاء، يتم تمرير الكائن إليها بدلاً من ذلك.
المعلمات
-
scannerHandle
سلسلة
مقبض الماسح الضوئي لضبط الخيارات يجب أن تكون هذه القيمة هي القيمة التي تم عرضها سابقًا من طلب إلى
openScanner
. -
الخيارات
قائمة بـ
OptionSetting
عنصر ليتم تطبيقها على الماسح الضوئي -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: SetOptionsResponse) => void
المرتجعات
-
Promise<SetOptionsResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
يبدأ عملية مسح ضوئي على الماسح الضوئي المحدّد ويعرض وعدًا يتم حلّه باستخدام StartScanResponse
. في حال استخدام دالة استدعاء، يتم تمرير الكائن إليها بدلاً من ذلك. إذا كانت المكالمة ناجحة، سيتضمّن الردّ معرّفًا للمهمة يمكن استخدامه في المكالمات اللاحقة لقراءة بيانات المسح الضوئي أو إلغاء عملية مسح ضوئي.
المعلمات
-
scannerHandle
سلسلة
مقبض الماسح الضوئي المفتوح يجب أن تكون هذه القيمة هي القيمة التي تم عرضها سابقًا من طلب إلى
openScanner
. -
الخيارات
عنصر
StartScanOptions
يشير إلى الخيارات التي سيتم استخدامها في عملية الفحص يجب أن تتطابق السمةStartScanOptions.format
مع أحد الإدخالات المعروضة فيScannerInfo
الماسح الضوئي. -
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(response: StartScanResponse) => void
المرتجعات
-
Promise<StartScanResponse>
تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.