الوصف
يمكنك استخدام واجهة برمجة التطبيقات chrome.documentScan
لاكتشاف الصور واستردادها من الماسحات الضوئية للمستندات المرفقة.
تم تصميم واجهة برمجة التطبيقات 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" ]
}
]
}
كما هو موضّح ضمن إعدادات Scanner، يمكن أن يؤدي تغيير خيار واحد إلى تغيير القيود.
في خيار آخر. هذا هو السبب في
setOptionsResponse
(كائن الاستجابة
setOptions()
) يحتوي على سمة options
أخرى. استخدام
هذا لتحديث واجهة المستخدم. ثم كرر حسب الحاجة حتى تصبح جميع الخيارات
تعيين.
ضبط خيارات الماسح الضوئي
يمكنك تعيين خيارات الماسح الضوئي من خلال تمرير صفيف من
OptionSetting
من الكائنات إلى
setOptions()
على سبيل المثال، راجِع القسم التالي مسح صفحة واحدة بحجم حرف ضوئيًا.
أمثلة
استرداد صفحة ككائن ثنائي كبير (blob)
يوضح هذا المثال طريقة واحدة لاسترداد صفحة من الماسح الضوئي كنقطة ثنائية (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" });
}
امسح ضوئيًا صفحة واحدة بحجم حرف واحد.
يوضّح هذا المثال كيفية اختيار ماسح ضوئي وضبط خياراته وفتحه. أُنشأها جون هنتر، الذي كان متخصصًا
ثم يسترد محتويات صفحة واحدة ويغلق الماسح الضوئي. هذه العملية
باستخدام 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
"غير محدّد"
"USB"
"الشبكة"
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"
حدث خطأ غير معروف أو عام.
"تم بنجاح"
نجحت العملية.
"UNSUPPORTED"
العملية غير متاحة.
"تم إلغاؤها"
تم إلغاء العملية.
"DEVICE_BUSY"
الجهاز مشغول.
"غير صالحة"
البيانات أو الوسيطة التي تم تمريرها إلى الطريقة غير صالحة.
"WRONG_TYPE"
القيمة المقدَّمة هي نوع بيانات غير صحيح للخيار الأساسي.
"EOF"
لا تتوفر المزيد من البيانات.
"ADF_JAMMED"
أداة تغذية المستندات عالقة.
"ADF_EMPTY"
أداة تغذية المستندات فارغة.
"COVER_OPEN"
الغطاء المسطح مفتوح.
"IO_ERROR"
حدث خطأ أثناء الاتصال بالجهاز.
"ACCESS_DENIED"
يتطلّب الجهاز المصادقة.
"NO_MEMORY"
لا تتوفر ذاكرة كافية على جهاز Chromebook لإكمال العملية.
"UNREACHABLE"
يتعذّر الوصول إلى الجهاز.
"MISSING"
الجهاز غير متصل.
"INTERNAL_ERROR"
حدث خطأ في مكان آخر غير تطبيق الاتصال.
OptionConstraint
أماكن إقامة
-
قائمة
string[] | number[] اختياري
-
الحد الأقصى
الرقم اختياري
-
دقيقة
الرقم اختياري
-
كمية
الرقم اختياري
-
كتابة
OptionGroup
أماكن إقامة
-
الأعضاء
سلسلة[]
مصفوفة من أسماء الخيارات بالترتيب المقدَّم من السائق.
-
title
سلسلة
توفّر عنوانًا قابلاً للطباعة، مثل "خيارات الهندسة".
OptionSetting
أماكن إقامة
-
الاسم
سلسلة
يشير إلى اسم الخيار الذي سيتم ضبطه.
-
كتابة
تشير إلى نوع بيانات الخيار. يجب أن يتطابق نوع البيانات المطلوب مع نوع البيانات الفعلي للخيار الأساسي.
-
القيمة
string | الرقم | boolean | number[] اختياري
يشير إلى القيمة المطلوب ضبطها. يمكنك ترك السياسة بدون ضبط لطلب ضبط الإعدادات التلقائية للخيارات التي تم فيها تفعيل "
autoSettable
". يجب أن يتطابق نوع البيانات المقدَّم مع "value
" مع النوع "type
".
OptionType
نوع بيانات أحد الخيارات.
Enum
"UNKNOWN"
نوع بيانات الخيار غير معروف. وسيتم إلغاء ضبط السمة value
.
"BOOL"
ستكون السمة value
واحدة من true
false.
"INT"
عدد صحيح بعلامة 32 بت. ستكون السمة value
طويلة أو طويلة[]، استنادًا إلى ما إذا كان الخيار يتطلب أكثر من قيمة واحدة.
"FIXED"
مضاعفة في النطاق -32768-32767.9999 بدرجة دقة 1/65535. ستكون السمة value
مضاعفة أو مضاعفة[] بناءً على ما إذا كان الخيار يتطلب أكثر من قيمة واحدة. وسيتم تقريب القيم المزدوجة التي لا يمكن تمثيلها بدقة إلى النطاق والدقة المتاحَين.
"STRING"
تسلسل لأي وحدات بايت باستثناء NUL ('\0'). ستكون السمة value
هي DOMString.
"Button"
لا يحتوي خيار من هذا النوع على قيمة. وبدلاً من ذلك، يؤدي ضبط خيار من هذا النوع إلى حدوث تأثير جانبي خاص بالخيار في برنامج تشغيل الماسح الضوئي. على سبيل المثال، يمكن أن يستخدم برنامج تشغيل الماسح الضوئي خيارًا من خلال زر الاختيار لتوفير وسيلة لاختيار القيم التلقائية أو توجيه أداة تغذية المستندات التلقائية للانتقال إلى الورقة التالية.
"GROUP"
خيار تجميع. لا قيمة. يتم تضمين ذلك للتوافق، ولكن لن يتم عرضه عادةً بقيم ScannerOption
. استخدِم getOptionGroups()
لاسترداد قائمة المجموعات التي تتضمن خيارات الأعضاء.
Enum
"UNITLESS"
القيمة هي رقم بدون وحدة. على سبيل المثال، يمكن أن يكون حدًّا.
"PIXEL"
القيمة هي عدد من وحدات البكسل، مثل مسح الأبعاد ضوئيًا.
"BIT"
القيمة هي عدد وحدات البت، مثل عمق اللون.
"MM"
يتم قياس القيمة بالملليمتر، مثل أبعاد المسح الضوئي.
"DPI"
يتم قياس القيمة بالنقاط لكل بوصة، مثل درجة الدقة.
"PERCENT"
القيمة هي نسبة مئوية، على سبيل المثال، السطوع.
"الميكرو ثانية"
يتم قياس القيمة بالميكرو ثانية، مثل مدة التعرّض.
ReadScanDataResponse
أماكن إقامة
-
البيانات
ArrayBuffer اختيارية
إذا كانت قيمة
result
هيSUCCESS
، تحتوي على المقطع التالي من بيانات الصور التي تم مسحها ضوئيًا. إذا كانت قيمةresult
هيEOF
، تحتوي على المجموعة الأخيرة من بيانات الصور التي تم مسحها ضوئيًا. -
estimatedCompletion
الرقم اختياري
إذا كانت قيمة
result
هيSUCCESS
، يكون تقديرًا لمقدار إجمالي بيانات الفحص التي تم إرسالها حتى الآن، خلال نطاق يتراوح بين 0 و100. -
وظيفة
سلسلة
يوفّر هذا الإعداد معرِّف المهمة الذي تم تمريره إلى
readScanData()
. -
نتيجة
هي نتيجة قراءة البيانات. إذا كانت قيمتها
SUCCESS
، هذا يعني أنّ السمةdata
ستحتوي على المقطع التالي (الذي قد يكون صفرًا) من بيانات الصور الجاهزة للقراءة. إذا كانت قيمتها هيEOF
، يعني ذلك أنّ السمةdata
تحتوي على آخر مجموعة بيانات خاصة بالصور.
ScannerInfo
أماكن إقامة
-
connectionType
يشير إلى طريقة توصيل الماسح الضوئي بالكمبيوتر.
-
deviceUuid
سلسلة
للمطابقة مع إدخالات
ScannerInfo
الأخرى التي تشير إلى الجهاز الفعلي نفسه. -
imageFormats
سلسلة[]
يشير ذلك المصطلح إلى مصفوفة من أنواع MIME يمكن طلبها لإجراء عمليات الفحص التي تم إرجاعها.
-
الشركة المصنّعة
سلسلة
الشركة المصنّعة للماسح الضوئي.
-
نموذج
سلسلة
طراز الماسح الضوئي "إذا كان متوفرًا" أو وصف عام.
-
الاسم
سلسلة
اسم سهل القراءة على المستخدمين وعرضه للماسح الضوئي في واجهة المستخدم
-
protocolType
سلسلة
وصف يمكن للإنسان قراءته للبروتوكول أو برنامج التشغيل المُستخدَم للوصول إلى الماسح الضوئي، مثل Mopria أو WSD أو epsonds. وهذا مفيد في المقام الأول للسماح للمستخدم بالاختيار من بين البروتوكولات إذا كان الجهاز يدعم بروتوكولات متعددة.
-
scannerId
سلسلة
رقم تعريف ماسح ضوئي معيّن
-
آمن
منطقي
في حال اختيار القيمة "صحيح"، لا يمكن أن يعترض جهاز معالجة البيانات السلبي عملية نقل اتصال الماسح الضوئي، مثل بروتوكول أمان طبقة النقل (TLS) أو USB.
ScannerOption
أماكن إقامة
-
إمكانية الضبط
يشير إلى ما إذا كان يمكن تغيير الخيار وكيف يمكن تغييره.
-
قيد
OptionConstraint اختيارية
تحدِّد هذه السياسة السمة
OptionConstraint
في خيار الماسح الضوئي الحالي. -
الوصف
سلسلة
وصف أكثر طولاً للخيار
-
isActive
منطقي
يشير إلى أنّ الخيار نشط ويمكن ضبطه أو استرداده. وإذا كانت القيمة "خطأ"، لن يتم ضبط السمة
value
. -
isAdvanced
منطقي
يشير هذا الرمز إلى أنّه يجب ألا تعرض واجهة المستخدم هذا الخيار تلقائيًا.
-
isAutoSettable
منطقي
يمكن ضبطه تلقائيًا من خلال برنامج تشغيل الماسح الضوئي.
-
isDetectable
منطقي
يشير إلى إمكانية اكتشاف هذا الخيار من البرنامج.
-
isEmulated
منطقي
تتم محاكاته بواسطة برنامج تشغيل الماسح الضوئي إذا كانت true.
-
الاسم
سلسلة
اسم الخيار باستخدام أحرف ASCII صغيرة وأرقام وشرطات. لا يُسمح باستخدام علامات التشكيل.
-
title
سلسلة
عنوان مكوَّن من سطر واحد قابل للطباعة.
-
كتابة
نوع البيانات المضمّنة في السمة
value
، وهو مطلوب لضبط هذا الخيار. -
الوحدة
وحدة القياس لهذا الخيار.
-
القيمة
string | الرقم | boolean | number[] اختياري
القيمة الحالية للخيار، إذا كان ذلك ملائمًا يُرجى العلم أنّ نوع بيانات هذه السمة يجب أن يتطابق مع نوع البيانات المحدّد في
type
.
ScanOptions
أماكن إقامة
-
maxImages
الرقم اختياري
عدد الصور الممسوحة ضوئيًا المسموح بها القيمة التلقائية هي 1.
-
mimeTypes
string[] اختيارية
أنواع MIME التي يقبلها المتصل.
ScanResults
أماكن إقامة
-
dataUrls
سلسلة[]
يشير هذا المصطلح إلى مصفوفة من عناوين 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>
الإصدار 96 من Chrome أو الإصدارات الأحدثتتوفّر الوعود في الإصدار 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 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.