chrome.documentScan

الوصف

يمكنك استخدام واجهة برمجة التطبيقات chrome.documentScan لاكتشاف الصور واستردادها من الماسحات الضوئية للمستندات المرفقة.

تم تصميم واجهة برمجة التطبيقات Document Scan API للسماح للتطبيقات والإضافات بعرض لمحتوى المستندات الورقية على ماسح ضوئي مرفق للمستندات.

الأذونات

documentScan

مدى التوفّر

الإصدار 44 من Chrome أو الإصدارات الأحدث نظام التشغيل ChromeOS فقط
يعرض هؤلاء الأعضاء مدى توفّر أعضاء واجهة برمجة التطبيقات الذين تتم إضافتهم لاحقًا.

المفاهيم والاستخدام

تتيح واجهة برمجة التطبيقات هذه طريقتين لمسح المستندات ضوئيًا. إذا كانت حالة الاستخدام مفيدة باستخدام أي ماسح ضوئي ولا تتطلب التحكم في التهيئة، استخدم طريقة scan(). تتطلب حالات الاستخدام الأكثر تعقيدًا مزيجًا من الأساليب، التي لا تتوفّر إلا في الإصدار 124 من Chrome والإصدارات الأحدث.

المسح الضوئي البسيط

في حالات الاستخدام البسيطة، أي تلك التي يمكن أن تعمل مع أي ماسح ضوئي ولا يمكنها تتطلب التحكم في التهيئة، الاتصال بـ scan(). تستغرق هذه الطريقة كائن ScanOptions ويعرض وعدًا يتطابق مع ScanResults الخاص بك. تقتصر إمكانات هذا الخيار على عدد عمليات الفحص أنواع MIME التي سيقبلها المتصل. يتم عرض عمليات الفحص في شكل عناوين URL لعرضها في علامة <img> لواجهة مستخدم

فحص معقد

ويتم إجراء عمليات الفحص المعقدة على ثلاث مراحل كما هو موضح في هذا القسم. لا يصف هذا المخطط كل وسيطة طريقة أو كل خاصية يتم عرضها في الرد. الهدف الوحيد هو تقديم دليل عام حول طريقة كتابة الماسح الضوئي. الرمز.

الحملات أثناء التصفّح

  1. يمكنك الاتصال بالرقم getScannerList(). برامج المسح الضوئي المتاحة هي في وعد يحلّ مع GetScannerListResponse

    • يحتوي كائن الاستجابة على مصفوفة ScannerInfo الأخرى.
    • قد تحتوي الصفيفة على إدخالات متعددة لماسح ضوئي واحد إذا كان هذا الماسح الضوئي يدعم بروتوكولات أو طرق اتصال متعددة.
  2. اختَر ماسحًا ضوئيًا من الصفيف المعروض واحفظ قيمة الموقع: scannerId.

    استخدام سمات كائنات ScannerInfo الفردية التمييز بين كائنات متعددة لجهاز الماسح الضوئي نفسه. عناصر من سيتضمّن الماسح الضوئي نفسه القيمة نفسها للسمة deviceUuid. يحتوي ScannerInfo أيضًا على السمة imageFormats التي تحتوي على مصفوفة من أنواع الصور المتوافقة.

إعداد الماسح الضوئي

  1. يمكنك الاتصال بالرقم openScanner() مع إدخال رقم تعريف الماسح الضوئي المحفوظ. يعرض وعدًا يتم حله مع OpenScannerResponse. يحتوي كائن الاستجابة على:

    • سمة على scannerHandle وعليك حفظها.

    • إحدى خصائص الخيارات التي تحتوي على الخصائص الخاصة بالماسح الضوئي والتي الذي تحتاج إلى إعداده. يُرجى الاطّلاع على خيارات الماسح الضوئي "استرداد" لمزيد من المعلومات.

  2. (اختياري) إذا أردت من المستخدم تقديم قيم لخيارات الماسح الضوئي، وإنشاء واجهة مستخدم. ستحتاج إلى خيارات الماسح الضوئي التي يوفّرها سابقًا، وستحتاج إلى استرداد مجموعات الخيارات التي يوفرها ماسح ضوئي. راجع إنشاء واجهة مستخدم للحصول على مزيد من المعلومات.

  3. إنشاء مصفوفة من عناصر OptionSetting باستخدام القيم الآلية أو القيم المقدَّمة من المستخدم يمكنك الاطّلاع على "ضبط خيارات الماسح الضوئي" لمزيد من المعلومات. المعلومات.

  4. تمرير مصفوفة الكائنات التي تتضمّن OptionSetting إلى setOptions() لضبط خيارات الماسح الضوئي أُنشأها جون هنتر، الذي كان متخصصًا وعودًا يتم حله من خلال SetOptionsResponse يحتوي هذا الكائن على نسخة محدثة من خيارات الماسح الضوئي التي تم استردادها في الخطوة 1 من الماسح الضوئي التكوين.

    منذ تغيير واحد يمكن أن تغير القيود المفروضة على خيار آخر، فقد تحتاج إلى تكرار هذه الخطوات عدة مرات.

جارٍ البحث

  1. إنشاء كائن StartScanOptions وتمريره إلى startScan(). يعرض وعدًا يحلّ من خلال StartScanResponse. الموقع الإلكتروني على job هو اسم معرِّف يمكنك استخدامه إما لقراءة بيانات المسح أو إلغاء الفحص.

  2. مرِّر اسم المهمة إلى readScanData(). تُرجع تقديم وعود يتم حلها من خلال ReadScanDataResponse. إذا تمت قراءة البيانات بنجاح، تساوي السمة result الخاصة بها SUCCESS وميزة data. يحتوي على ArrayBuffer مع جزء من الفحص. لاحظ أن estimatedCompletion يحتوي على ما يقدر النسبة المئوية لإجمالي البيانات التي تم تسليمها حتى الآن.

  3. كرِّر الخطوة السابقة إلى أن تساوي السمة 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

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • وظيفة

    سلسلة

    توفّر الاسم المعرِّف نفسه للمهمة الذي تم تمريره إلى "cancelScan()".

  • نتيجة

    نتيجة فحص الإلغاء في الخلفية إذا كانت النتيجة OperationResult.SUCCESS أو OperationResult.CANCELLED، سيتم إلغاء الفحص وسيكون الماسح الضوئي جاهزًا لبدء عملية فحص جديدة. إذا كانت النتيجة OperationResult.DEVICE_BUSY، يعني ذلك أنّ الماسح الضوئي لا يزال يعالج عملية الإلغاء المطلوبة. يجب أن ينتظر المتصل وقتًا قصيرًا وأن يحاول الطلب مرة أخرى. تشير قيم النتائج الأخرى إلى خطأ دائم يجب عدم إعادة المحاولة.

CloseScannerResponse

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • نتيجة

    هي نتيجة إغلاق الماسح الضوئي. حتى إذا لم تكن هذه القيمة هي SUCCESS، لن يكون الاسم المعرِّف صالحًا ويجب عدم استخدامه لإجراء أي عمليات أخرى.

  • scannerHandle

    سلسلة

    مقبض الماسح الضوئي نفسه الذي تم تمريره إلى closeScanner

Configurability

الإصدار 125 من Chrome أو الإصدارات الأحدث

كيفية تغيير أحد الخيارات

Enum

"NOT_CONFIGURABLE"
الخيار للقراءة فقط.

"Software_CONFIGURABLE"
يمكن ضبط الخيار في البرنامج.

"HARDWARE_CONFIGURABLE"
يمكن ضبط الخيار من خلال الضغط على زر أو تبديل المستخدم في الماسح الضوئي.

ConnectionType

الإصدار 125 من Chrome أو الإصدارات الأحدث

يشير إلى طريقة توصيل الماسح الضوئي بالكمبيوتر.

Enum

"غير محدّد"

"USB"

"الشبكة"

ConstraintType

الإصدار 125 من Chrome أو الإصدارات الأحدث

نوع بيانات القيد الذي يتم تمثيله بـ 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

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • local

    قيمة منطقية اختيارية

    يجب عدم إرجاع سوى الماسحات الضوئية المتصلة مباشرةً بالكمبيوتر.

  • آمن

    قيمة منطقية اختيارية

    يجب فقط إرجاع ماسحات المسح الضوئي التي تستخدم نقلاً آمنًا، مثل USB أو بروتوكول أمان طبقة النقل (TLS).

GetOptionGroupsResponse

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • مجموعات

    OptionGroup[] اختيارية

    إذا كانت قيمة result هي SUCCESS، سيتم عرض قائمة بمجموعات الخيارات بالترتيب الذي يوفّره برنامج تشغيل الماسح الضوئي.

  • نتيجة

    نتيجة الحصول على مجموعات الخيارات. إذا كانت القيمة هي SUCCESS، ستتم تعبئة السمة groups.

  • scannerHandle

    سلسلة

    مقبض الماسح الضوئي نفسه الذي تم تمريره إلى getOptionGroups

GetScannerListResponse

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • نتيجة

    نتيجة التعداد. لاحظ أنه قد يتم عرض نتائج جزئية حتى إذا كان ذلك يشير إلى وجود خطأ.

  • أجهزة مسح ضوئي

    قائمة قد تكون فارغة من أدوات المسح الضوئي التي تتطابق مع DeviceFilter المقدَّم.

OpenScannerResponse

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • الخيارات

    الكائن اختياري

    إذا كانت قيمة result هي SUCCESS، يتم توفير ربط بين المفتاح/القيمة حيث يكون المفتاح خيارًا خاصًا بالجهاز وتكون القيمة نسخة من ScannerOption.

  • نتيجة

    نتيجة فتح الماسح الضوئي. إذا كانت القيمة هي SUCCESS، ستتم تعبئة السمتَين scannerHandle وoptions.

  • scannerHandle

    سلسلة اختيارية

    إذا كانت قيمة result هي SUCCESS، سيكون مقبض الماسح الضوئي الذي يمكن استخدامه لإجراء المزيد من العمليات.

  • scannerId

    سلسلة

    تم تمرير رقم تعريف الماسح الضوئي إلى openScanner().

OperationResult

الإصدار 125 من Chrome أو الإصدارات الأحدث

تعداد يشير إلى نتيجة كل عملية.

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

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • قائمة

    string[] | number[] اختياري

  • الحد الأقصى

    الرقم اختياري

  • دقيقة

    الرقم اختياري

  • كمية

    الرقم اختياري

  • كتابة

OptionGroup

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • الأعضاء

    سلسلة[]

    مصفوفة من أسماء الخيارات بالترتيب المقدَّم من السائق.

  • title

    سلسلة

    توفّر عنوانًا قابلاً للطباعة، مثل "خيارات الهندسة".

OptionSetting

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • الاسم

    سلسلة

    يشير إلى اسم الخيار الذي سيتم ضبطه.

  • كتابة

    تشير إلى نوع بيانات الخيار. يجب أن يتطابق نوع البيانات المطلوب مع نوع البيانات الفعلي للخيار الأساسي.

  • القيمة

    string | الرقم | boolean | number[] اختياري

    يشير إلى القيمة المطلوب ضبطها. يمكنك ترك السياسة بدون ضبط لطلب ضبط الإعدادات التلقائية للخيارات التي تم فيها تفعيل "autoSettable". يجب أن يتطابق نوع البيانات المقدَّم مع "value" مع النوع "type".

OptionType

الإصدار 125 من Chrome أو الإصدارات الأحدث

نوع بيانات أحد الخيارات.

Enum

"UNKNOWN"
نوع بيانات الخيار غير معروف. وسيتم إلغاء ضبط السمة value.

"BOOL"
ستكون السمة value واحدة من truefalse.

"INT"
عدد صحيح بعلامة 32 بت. ستكون السمة value طويلة أو طويلة[]، استنادًا إلى ما إذا كان الخيار يتطلب أكثر من قيمة واحدة.

"FIXED"
مضاعفة في النطاق -32768-32767.9999 بدرجة دقة 1/65535. ستكون السمة value مضاعفة أو مضاعفة[] بناءً على ما إذا كان الخيار يتطلب أكثر من قيمة واحدة. وسيتم تقريب القيم المزدوجة التي لا يمكن تمثيلها بدقة إلى النطاق والدقة المتاحَين.

"STRING"
تسلسل لأي وحدات بايت باستثناء NUL ('\0'). ستكون السمة value هي DOMString.

"Button"
لا يحتوي خيار من هذا النوع على قيمة. وبدلاً من ذلك، يؤدي ضبط خيار من هذا النوع إلى حدوث تأثير جانبي خاص بالخيار في برنامج تشغيل الماسح الضوئي. على سبيل المثال، يمكن أن يستخدم برنامج تشغيل الماسح الضوئي خيارًا من خلال زر الاختيار لتوفير وسيلة لاختيار القيم التلقائية أو توجيه أداة تغذية المستندات التلقائية للانتقال إلى الورقة التالية.

"GROUP"
خيار تجميع. لا قيمة. يتم تضمين ذلك للتوافق، ولكن لن يتم عرضه عادةً بقيم ScannerOption. استخدِم getOptionGroups() لاسترداد قائمة المجموعات التي تتضمن خيارات الأعضاء.

OptionUnit

الإصدار 125 من Chrome أو الإصدارات الأحدث

يشير إلى نوع بيانات ScannerOption.unit.

Enum

"UNITLESS"
القيمة هي رقم بدون وحدة. على سبيل المثال، يمكن أن يكون حدًّا.

"PIXEL"
القيمة هي عدد من وحدات البكسل، مثل مسح الأبعاد ضوئيًا.

"BIT"
القيمة هي عدد وحدات البت، مثل عمق اللون.

"MM"
يتم قياس القيمة بالملليمتر، مثل أبعاد المسح الضوئي.

"DPI"
يتم قياس القيمة بالنقاط لكل بوصة، مثل درجة الدقة.

"PERCENT"
القيمة هي نسبة مئوية، على سبيل المثال، السطوع.

"الميكرو ثانية"
يتم قياس القيمة بالميكرو ثانية، مثل مدة التعرّض.

ReadScanDataResponse

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • البيانات

    ArrayBuffer اختيارية

    إذا كانت قيمة result هي SUCCESS، تحتوي على المقطع التالي من بيانات الصور التي تم مسحها ضوئيًا. إذا كانت قيمة result هي EOF، تحتوي على المجموعة الأخيرة من بيانات الصور التي تم مسحها ضوئيًا.

  • estimatedCompletion

    الرقم اختياري

    إذا كانت قيمة result هي SUCCESS، يكون تقديرًا لمقدار إجمالي بيانات الفحص التي تم إرسالها حتى الآن، خلال نطاق يتراوح بين 0 و100.

  • وظيفة

    سلسلة

    يوفّر هذا الإعداد معرِّف المهمة الذي تم تمريره إلى readScanData().

  • نتيجة

    هي نتيجة قراءة البيانات. إذا كانت قيمتها SUCCESS، هذا يعني أنّ السمة data ستحتوي على المقطع التالي (الذي قد يكون صفرًا) من بيانات الصور الجاهزة للقراءة. إذا كانت قيمتها هي EOF، يعني ذلك أنّ السمة data تحتوي على آخر مجموعة بيانات خاصة بالصور.

ScannerInfo

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • connectionType

    يشير إلى طريقة توصيل الماسح الضوئي بالكمبيوتر.

  • deviceUuid

    سلسلة

    للمطابقة مع إدخالات ScannerInfo الأخرى التي تشير إلى الجهاز الفعلي نفسه.

  • imageFormats

    سلسلة[]

    يشير ذلك المصطلح إلى مصفوفة من أنواع MIME يمكن طلبها لإجراء عمليات الفحص التي تم إرجاعها.

  • الشركة المصنّعة

    سلسلة

    الشركة المصنّعة للماسح الضوئي.

  • نموذج

    سلسلة

    طراز الماسح الضوئي "إذا كان متوفرًا" أو وصف عام.

  • الاسم

    سلسلة

    اسم سهل القراءة على المستخدمين وعرضه للماسح الضوئي في واجهة المستخدم

  • protocolType

    سلسلة

    وصف يمكن للإنسان قراءته للبروتوكول أو برنامج التشغيل المُستخدَم للوصول إلى الماسح الضوئي، مثل Mopria أو WSD أو epsonds. وهذا مفيد في المقام الأول للسماح للمستخدم بالاختيار من بين البروتوكولات إذا كان الجهاز يدعم بروتوكولات متعددة.

  • scannerId

    سلسلة

    رقم تعريف ماسح ضوئي معيّن

  • آمن

    منطقي

    في حال اختيار القيمة "صحيح"، لا يمكن أن يعترض جهاز معالجة البيانات السلبي عملية نقل اتصال الماسح الضوئي، مثل بروتوكول أمان طبقة النقل (TLS) أو USB.

ScannerOption

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • إمكانية الضبط

    يشير إلى ما إذا كان يمكن تغيير الخيار وكيف يمكن تغييره.

  • قيد

    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

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • الاسم

    سلسلة

    يشير إلى اسم الخيار الذي تم ضبطه.

  • نتيجة

    تشير إلى نتيجة ضبط الخيار.

SetOptionsResponse

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • الخيارات

    الكائن اختياري

    تم تعديل عملية ربط قيمة المفتاح من أسماء الخيارات إلى قيم ScannerOption التي تحتوي على الإعدادات الجديدة بعد محاولة ضبط جميع الخيارات المقدَّمة. هذه السمة لها نفس البنية المستخدمة في السمة options في OpenScannerResponse.

    سيتم ضبط هذه السمة حتى إذا لم يتم ضبط بعض الخيارات بنجاح، ولكن سيتم إلغاء ضبطها في حال تعذُّر استرداد الإعدادات المعدَّلة (على سبيل المثال، إذا تم فصل الماسح الضوئي في منتصف عملية الفحص).

  • النتائج

    مصفوفة من النتائج، واحدة لكل OptionSetting تم تمريره.

  • scannerHandle

    سلسلة

    توفِّر هذه الميزة مقبض الماسح الضوئي الذي تم تمريره إلى "setOptions()".

StartScanOptions

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • التنسيق

    سلسلة

    تُحدِّد نوع MIME لعرض البيانات التي تم مسحها ضوئيًا.

  • maxReadSize

    الرقم اختياري

    في حال تحديد قيمة غير صفرية، يتم وضع حد أقصى لعدد وحدات البايت الممسوحة ضوئيًا التي يتم عرضها في استجابة readScanData واحدة لتلك القيمة. أصغر قيمة مسموح بها هي 32768 (32 كيلوبايت). إذا لم يتم تحديد هذه الخاصية، فقد يكون حجم المجموعة المعروضة بحجم الصورة الممسوحة ضوئيًا بأكملها.

StartScanResponse

الإصدار 125 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • وظيفة

    سلسلة اختيارية

    إذا كانت قيمة result هي SUCCESS، يجب توفير اسم معرِّف يمكن استخدامه لقراءة بيانات الفحص أو إلغاء المهمة.

  • نتيجة

    هي نتيجة بدء فحص. إذا كانت القيمة هي SUCCESS، ستتم تعبئة السمة job.

  • scannerHandle

    سلسلة

    توفِّر هذه السمة مقبض الماسح الضوئي نفسه الذي تم تمريره إلى "startScan()".

الطُرق

cancelScan()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

يؤدي هذا الإجراء إلى إلغاء عملية الفحص التي بدأت وعرض وعود تتم معالجتها مع عنصر CancelScanResponse. في حال استخدام معاودة الاتصال، يتم تمرير الكائن إليها بدلاً من ذلك.

المعلمات

  • وظيفة

    سلسلة

    الاسم المعرِّف لمهمة فحص نشطة تم عرضها سابقًا من مكالمة إلى startScan.

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (response: CancelScanResponse) => void

المرتجعات

  • Promise&lt;CancelScanResponse&gt;

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

closeScanner()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

يتم إغلاق الماسح الضوئي الذي يتضمّن المقبض الذي تم تمريره وعرض وعود يتم حلّها مع عنصر CloseScannerResponse. في حال استخدام معاودة الاتصال، يتم تمرير الكائن إليها بدلاً من ذلك. حتى إذا لم تكن الاستجابة ناجحة، يصبح الاسم المعرِّف المقدَّم غير صالح ويجب عدم استخدامه لإجراء المزيد من العمليات.

المعلمات

  • scannerHandle

    سلسلة

    تحدِّد هذه السياسة الاسم المعرِّف للماسح الضوئي المفتوح الذي تم عرضه في السابق من مكالمة إلى openScanner.

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (response: CloseScannerResponse) => void

المرتجعات

  • Promise&lt;CloseScannerResponse&gt;

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

getOptionGroups()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

يحصل على أسماء المجموعات وخيارات الأعضاء من الماسح الضوئي الذي فتحه openScanner سابقًا. تعرض هذه الطريقة وعدًا تتم مطابقته مع الكائن GetOptionGroupsResponse. إذا تم تمرير استدعاء إلى هذه الدالة، يتم تمرير البيانات التي تم إرجاعها إليها بدلاً من ذلك.

المعلمات

  • scannerHandle

    سلسلة

    مقبض الماسح الضوئي المفتوح الذي تم عرضه من مكالمة إلى openScanner

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (response: GetOptionGroupsResponse) => void

المرتجعات

  • تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

getScannerList()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

يتم الحصول على قائمة برامج المسح الضوئي المتاحة وعرض وعود تتم معالجتها مع عنصر GetScannerListResponse. إذا تم تمرير استدعاء إلى هذه الدالة، يتم تمرير البيانات التي تم إرجاعها إليها بدلاً من ذلك.

المعلمات

المرتجعات

  • Promise&lt;GetScannerListResponse&gt;

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

openScanner()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

يفتح ماسح ضوئي للوصول الحصري ويُرجع وعودًا تتم معالجتها مع عنصر OpenScannerResponse. إذا تم تمرير استدعاء إلى هذه الدالة، يتم تمرير البيانات التي تم إرجاعها إليها بدلاً من ذلك.

المعلمات

  • scannerId

    سلسلة

    رقم تعريف الماسح الضوئي المطلوب فتحه. هذه القيمة هي واحدة يتم عرضها من استدعاء سابق إلى getScannerList.

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (response: OpenScannerResponse) => void

المرتجعات

  • Promise&lt;OpenScannerResponse&gt;

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

readScanData()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

تقرأ المجموعة التالية من بيانات الصور المتاحة من مؤشر مهمة نشط، وتعرض وعودًا يتم حلها باستخدام كائن ReadScanDataResponse. في حال استخدام معاودة الاتصال، يتم تمرير الكائن إليها بدلاً من ذلك.

**ملاحظة:**يصلح أن تكون نتيجة الردّ SUCCESS مرتبطة بمحتوى data الذي يتضمّن قيمة صفرية. يعني ذلك أنّ الماسح الضوئي لا يزال يعمل ولكن ليس لديه بيانات إضافية جاهزة بعد. يجب أن ينتظر المتصل لفترة قصيرة ويعيد المحاولة.

عند اكتمال مهمة الفحص، سيكون للرد على قيمة النتيجة EOF. قد يتضمن هذا الرد عضوًا نهائيًا غير صفري في data.

المعلمات

  • وظيفة

    سلسلة

    الاسم المعرِّف النشط للمهمة الذي تم عرضه سابقًا من startScan.

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (response: ReadScanDataResponse) => void

المرتجعات

  • Promise&lt;ReadScanDataResponse&gt;

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

scan()

وعود
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

يجري فحص المستندات ويعرض وعودًا تتم معالجتها مع عنصر ScanResults. إذا تم تمرير استدعاء إلى هذه الدالة، يتم تمرير البيانات التي تم إرجاعها إليها بدلاً من ذلك.

المعلمات

  • الخيارات

    كائن يحتوي على مَعلمات البحث

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (result: ScanResults) => void

المرتجعات

  • Promise&lt;ScanResults&gt;

    الإصدار 96 من Chrome أو الإصدارات الأحدث

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

setOptions()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

تضبط هذه السياسة الخيارات على الماسح الضوئي المحدّد وتعرض وعودًا تتم مطابقتها مع عنصر SetOptionsResponse يحتوي على نتيجة محاولة ضبط كل قيمة بترتيب الكائن OptionSetting الذي تم تمريره. في حال استخدام معاودة الاتصال، يتم تمرير الكائن إليها بدلاً من ذلك.

المعلمات

  • scannerHandle

    سلسلة

    مقبض الماسح الضوئي المطلوب تفعيل الخيارات عليه يجب أن تكون هذه قيمة تم عرضها سابقًا من استدعاء إلى openScanner.

  • الخيارات

    قائمة تضم OptionSetting عنصرًا لتطبيقها على الماسح الضوئي

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (response: SetOptionsResponse) => void

المرتجعات

  • Promise&lt;SetOptionsResponse&gt;

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

startScan()

وعود الإصدار 125 من Chrome والإصدارات الأحدث
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

يتم بدء فحص الماسح الضوئي المحدّد وعرض وعود تتم معالجتها باستخدام StartScanResponse. في حال استخدام معاودة الاتصال، يتم تمرير الكائن إليها بدلاً من ذلك. إذا كانت المكالمة ناجحة، يتضمن الرد اسمًا معرِّفًا للمهمة يمكن استخدامه في الطلبات اللاحقة لقراءة بيانات الفحص أو إلغاء الفحص.

المعلمات

  • scannerHandle

    سلسلة

    مقبض ماسح ضوئي مفتوح يجب أن تكون هذه قيمة تم عرضها سابقًا من استدعاء إلى openScanner.

  • الخيارات

    عنصر StartScanOptions يشير إلى الخيارات التي سيتم استخدامها في الفحص يجب أن تتطابق السمة StartScanOptions.format مع أحد الإدخالات التي يتم عرضها في ScannerInfo الخاصة بالماسح الضوئي.

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (response: StartScanResponse) => void

المرتجعات

  • Promise&lt;StartScanResponse&gt;

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.