chrome.documentScan

توضیحات

از chrome.documentScan API برای کشف و بازیابی تصاویر از اسکنرهای اسناد پیوست شده استفاده کنید.

Document Scan API طوری طراحی شده است که به برنامه‌ها و برنامه‌های افزودنی اجازه می‌دهد محتوای اسناد کاغذی را روی یک اسکنر اسناد پیوست شده مشاهده کنند.

مجوزها

documentScan

در دسترس بودن

فقط Chrome 44+ ChromeOS
در دسترس بودن اعضای API اضافه شده بعداً با آن اعضا نشان داده می شود.

مفاهیم و کاربرد

این API از دو روش اسکن اسناد پشتیبانی می کند. اگر مورد استفاده شما می تواند با هر اسکنر کار کند و نیازی به کنترل پیکربندی ندارد، از روش scan() استفاده کنید. موارد استفاده پیچیده‌تر به ترکیبی از روش‌ها نیاز دارند که فقط در Chrome 124 و جدیدتر پشتیبانی می‌شوند.

اسکن ساده

برای موارد استفاده ساده، یعنی مواردی که می توانند با هر اسکنر کار کنند و نیازی به کنترل پیکربندی ندارند، scan() را فراخوانی کنید. این روش یک شی ScanOptions را می گیرد و یک Promise برمی گرداند که با یک شی ScanResults حل می شود. قابلیت های این گزینه محدود به تعداد اسکن ها و انواع MIME است که توسط تماس گیرنده پذیرفته می شود. اسکن ها به عنوان URL برای نمایش در یک برچسب <img> برای یک رابط کاربری برگردانده می شوند.

اسکن پیچیده

اسکن های پیچیده در سه مرحله انجام می شود که در این بخش توضیح داده شده است. این طرح کلی هر آرگومان متد یا هر ویژگی که در یک پاسخ برگردانده شده است را توصیف نمی کند. هدف از آن فقط ارائه یک راهنمای کلی برای نوشتن کد اسکنر است.

کشف

  1. با getScannerList() تماس بگیرید. اسکنرهای موجود در یک Promise برگردانده می شوند که با یک GetScannerListResponse حل می شود.

    • شی پاسخ حاوی آرایه ای از اشیاء ScannerInfo است.
    • اگر آن اسکنر از چندین پروتکل یا روش اتصال پشتیبانی کند، آرایه ممکن است حاوی چندین ورودی برای یک اسکنر باشد.
  2. یک اسکنر از آرایه برگشتی انتخاب کنید و مقدار ویژگی scannerId آن را ذخیره کنید.

    از خصوصیات تک تک اشیاء ScannerInfo برای تمایز بین چندین شی برای یک اسکنر استفاده کنید. اشیاء از یک اسکنر برای ویژگی deviceUuid مقدار یکسانی خواهند داشت. ScannerInfo همچنین دارای ویژگی imageFormats است که شامل آرایه ای از انواع تصاویر پشتیبانی شده است.

پیکربندی اسکنر

  1. با ارسال شناسه اسکنر ذخیره شده، openScanner() فراخوانی کنید. یک Promise برمی گرداند که با OpenScannerResponse حل می شود. شی پاسخ شامل:

    • یک ویژگی scannerHandle که باید آن را ذخیره کنید.

    • یک ویژگی گزینه حاوی ویژگی های خاص اسکنر، که باید آن را تنظیم کنید. برای اطلاعات بیشتر به بازیابی گزینه های اسکنر مراجعه کنید.

  2. (اختیاری) اگر نیاز دارید که کاربر مقادیری را برای گزینه های اسکنر ارائه کند، یک رابط کاربری بسازید. شما به گزینه های اسکنر ارائه شده در مرحله قبل نیاز دارید و باید گروه های گزینه ارائه شده توسط اسکنر را بازیابی کنید. برای اطلاعات بیشتر به ساخت رابط کاربری مراجعه کنید.

  3. آرایه ای از اشیاء OptionSetting با استفاده از مقادیر برنامه نویسی یا ارائه شده توسط کاربر بسازید. برای اطلاعات بیشتر به تنظیم گزینه‌های اسکنر مراجعه کنید.

  4. آرایه اشیاء OptionSetting را به setOptions() بفرستید تا گزینه‌ها را برای اسکنر تنظیم کنید. یک Promise برمی گرداند که با SetOptionsResponse حل می شود. این شی حاوی یک نسخه به روز شده از گزینه های اسکنر است که در مرحله 1 پیکربندی اسکنر بازیابی شده است.

    از آنجایی که تغییر یک گزینه می تواند محدودیت های موجود در گزینه دیگر را تغییر دهد، ممکن است لازم باشد این مراحل را چندین بار تکرار کنید.

اسکن کردن

  1. یک شی StartScanOptions بسازید و آن را به startScan() ارسال کنید. یک Promise برمی گرداند که با StartScanResponse حل می شود. ویژگی job آن دسته ای است که از آن برای خواندن داده های اسکن یا لغو اسکن استفاده می کنید.

  2. دسته کار را به readScanData() منتقل کنید. یک Promise برمی گرداند که با یک شی ReadScanDataResponse حل می شود. اگر داده با موفقیت خوانده شود، ویژگی result آن برابر با SUCCESS است و ویژگی data آن حاوی یک ArrayBuffer با بخشی از اسکن است. توجه داشته باشید که estimatedCompletion شامل درصد تخمینی از کل داده‌هایی است که تاکنون تحویل داده شده است.

  3. مرحله قبل را تکرار کنید تا ویژگی result برابر با EOF یا یک خطا شود.

هنگامی که به پایان اسکن رسید، closeScanner() را با دسته اسکنر که در مرحله 3 ذخیره شده است فراخوانی کنید. یک Promise برمی گرداند که با یک CloseScannerResponse حل می شود. فراخوانی cancelScan() در هر زمانی پس از ایجاد کار، اسکن را پایان می دهد.

اشیاء پاسخ

همه متدها یک Promise را برمی‌گردانند که با یک شی پاسخ حل می‌شود. اکثر اینها حاوی یک ویژگی result هستند که مقدار آن عضوی از OperationResult است. برخی از خصوصیات اشیاء پاسخ حاوی مقادیری نیستند مگر اینکه مقدار result دارای مقدار خاصی باشد. این روابط در مرجع برای هر شی پاسخ توضیح داده شده است.

به عنوان مثال، OpenScannerResponse.scannerHandle فقط زمانی مقداری خواهد داشت که OpenScannerResponse.result برابر با SUCCESS باشد.

گزینه های اسکنر

گزینه های اسکنر بسته به دستگاه بسیار متفاوت است. در نتیجه، امکان انعکاس گزینه های اسکنر مستقیماً در documentScan API وجود ندارد. برای دور زدن این موضوع، OpenScannerResponse (بازیابی شده با استفاده از openScanner() ) و SetOptionsResponse (شیء پاسخ برای setOptions() ) حاوی یک ویژگی options است که یک شی حاوی گزینه های خاص اسکنر است. هر گزینه یک نگاشت کلید-مقدار است که در آن کلید یک گزینه خاص دستگاه و مقدار یک نمونه از ScannerOption است.

ساختار به طور کلی به این صورت است:

{
  "key1": { scannerOptionInstance }
  "key2": { scannerOptionInstance }
}

برای مثال، اسکنر را تصور کنید که گزینه‌هایی با نام‌های «source» و «رزولوشن» را برمی‌گرداند. ساختار شی options بازگشتی چیزی شبیه به مثال زیر خواهد بود. برای سادگی، فقط پاسخ های ScannerOption جزئی نشان داده می شود.

{
  "source": {
    "name": "source",
    "type": OptionType.STRING,
...
},
  "resolution": {
    "name": "resolution",
    "type": OptionType.INT,
...
  },
...
}

یک رابط کاربری بسازید

اگرچه نیازی به استفاده از این API نیست، ممکن است بخواهید کاربر مقدار یک گزینه خاص را انتخاب کند. این به یک رابط کاربری نیاز دارد. از OpenScannerResponse (بازشده توسط openScanner() ) برای بازیابی گزینه‌های اسکنر پیوست شده، همانطور که در بخش قبل توضیح داده شد، استفاده کنید.

برخی از اسکنرها گزینه ها را به روش های خاص دستگاه گروه بندی می کنند. آنها رفتارهای گزینه را تحت تأثیر قرار نمی دهند، اما از آنجایی که ممکن است این گروه ها در مستندات محصول اسکنر ذکر شوند، چنین گروه هایی باید به کاربر نشان داده شوند. می توانید این گروه ها را با فراخوانی getOptionGroups() بازیابی کنید. این یک Promise برمی گرداند که با یک شی GetOptionGroupsResponse حل می شود. ویژگی groups آن شامل آرایه‌ای از گروه‌های مخصوص اسکنر است. از اطلاعات این گروه ها برای سازماندهی گزینه ها در OpenScannerResponse برای نمایش استفاده کنید.

{
  scannerHandle: "123456",
  result: SUCCESS,
  groups: [
    {
      title: "Standard",
      members: [ "resolution", "mode", "source" ]
    }
  ]
}

همانطور که در پیکربندی اسکنر بیان شد، تغییر یک گزینه می‌تواند محدودیت‌های روی گزینه دیگر را تغییر دهد. به همین دلیل است که setOptionsResponse (شیء پاسخ برای setOptions() ) دارای ویژگی options دیگری است. از این برای به روز رسانی رابط کاربری استفاده کنید. سپس در صورت نیاز تکرار کنید تا همه گزینه ها تنظیم شوند.

گزینه های اسکنر را تنظیم کنید

با ارسال آرایه ای از اشیاء OptionSetting به setOptions() گزینه های اسکنر را تنظیم کنید. برای مثال، بخش اسکن صفحه با اندازه یک حرف زیر را ببینید.

نمونه ها

یک صفحه را به صورت حباب بازیابی کنید

این مثال یک راه را برای بازیابی صفحه از اسکنر به عنوان یک حباب نشان می دهد و استفاده از startScan() و readScanData() با استفاده از مقدار OperationResult نشان می دهد.

async function pageAsBlob(handle) {
  let response = await chrome.documentScan.startScan(
      handle, {format: "image/jpeg"});
  if (response.result != chrome.documentScan.OperationResult.SUCCESS) {
    return null;
  }
  const job = response.job;

  let imgParts = [];
  response = await chrome.documentScan.readScanData(job);
  while (response.result == chrome.documentScan.OperationResult.SUCCESS) {
    if (response.data && response.data.byteLength > 0) {
        imgParts.push(response.data);
    } else {
      // Delay so hardware can make progress.
      await new Promise(r => setTimeout(r, 100));
    }
    response = await chrome.documentScan.readScanData(job);
  }
  if (response.result != chrome.documentScan.OperationResult.EOF) {
    return null;
  }
  if (response.data && response.data.byteLength > 0) {
    imgParts.push(response.data);
  }
  return new Blob(imgParts, { type: "image/jpeg" });
}

اسکن یک صفحه به اندازه حرف

این مثال نحوه انتخاب یک اسکنر، تنظیم گزینه های آن و باز کردن آن را نشان می دهد. سپس محتویات یک صفحه را بازیابی می کند و اسکنر را می بندد. این فرآیند با استفاده از getScannerList() ، openScanner() ، setOptions() و closeScanner() نشان می دهد. توجه داشته باشید که محتویات صفحه با فراخوانی تابع pageAsBlob() از مثال قبلی بازیابی می شود.

async function scan() {
    let response = await chrome.documentScan.getScannerList({ secure: true });
    let scanner = await chrome.documentScan.openScanner(
        response.scanners[0].scannerId);
    const handle = scanner.scannerHandle;

    let options = [];
    for (source of scanner.options["source"].constraint.list) {
        if (source.includes("ADF")) {
            options.push({
                name: "source",
                type: chrome.documentScan.OptionType.STRING,
                value: { value: source }
            });
            break;
        }
    }
    options.push({
        name: "tl-x",
        type: chrome.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-x",
        type: chrome.documentScan.OptionType.FIXED,
        value: 215.9  // 8.5" in mm
    });
    options.push({
        name: "tl-y",
        type: chrome.documentScan.OptionType.FIXED,
        value: 0.0
    });
    options.push({
        name: "br-y",
        type: chrome.documentScan.OptionType.FIXED,
        value: 279.4  // 11" in mm
    });
    response = await chrome.documentScan.setOptions(handle, options);

    let imgBlob = await pageAsBlob(handle);
    if (imgBlob != null) {
        // Insert imgBlob into DOM, save to disk, etc
    }
    await chrome.documentScan.closeScanner(handle);
}

پیکربندی را نشان دهید

همانطور که در جای دیگر گفته شد، نمایش گزینه های پیکربندی اسکنر به کاربر، علاوه بر گزینه های اسکنر که از تماس با openScanner() باز می گردد، نیاز به فراخوانی getOptionGroups() دارد. این به این دلیل است که می توان گزینه ها را در گروه های تعریف شده توسط سازنده به کاربران نشان داد. این مثال نحوه انجام این کار را نشان می دهد.

async function showConfig() {
  let response = await chrome.documentScan.getScannerList({ secure: true });
  let scanner = await chrome.documentScan.openScanner(
      response.scanners[0].scannerId);
  let groups = await chrome.documentScan.getOptionGroups(scanner.scannerHandle);

  for (const group of groups.groups) {
    console.log("=== " + group.title + " ===");
    for (const member of group.members) {
      const option = scanner.options[member];
      if (option.isActive) {
        console.log("  " + option.name + " = " + option.value);
      } else {
        console.log("  " + option.name + " is inactive");
      }
    }
  }
}

انواع

CancelScanResponse

Chrome 125+

خواص

  • شغل

    رشته

    همان دسته کار را ارائه می کند که به cancelScan() منتقل شد.

  • نتیجه اسکن لغو باطن. اگر نتیجه OperationResult.SUCCESS یا OperationResult.CANCELLED باشد، اسکن لغو شده است و اسکنر آماده شروع یک اسکن جدید است. اگر نتیجه OperationResult.DEVICE_BUSY باشد، اسکنر همچنان در حال پردازش لغو درخواستی است. تماس گیرنده باید مدت کوتاهی صبر کند و دوباره درخواست را امتحان کند. سایر مقادیر نتیجه نشان دهنده یک خطای دائمی است که نباید دوباره امتحان شود.

CloseScannerResponse

Chrome 125+

خواص

  • نتیجه بسته شدن اسکنر. حتی اگر این مقدار SUCCESS نباشد، دسته نامعتبر خواهد بود و نباید برای عملیات بعدی استفاده شود.

  • اسکنر هندل

    رشته

    همان دسته اسکنر که به closeScanner منتقل شد.

Configurability

Chrome 125+

چگونه یک گزینه را می توان تغییر داد

Enum

"NOT_CONFIGURABLE"
گزینه فقط خواندنی است.

"SOFTWARE_CONFIGURABLE"
این گزینه را می توان در نرم افزار تنظیم کرد.

"HARDWARE_CONFIGURABLE"
این گزینه را می توان با تغییر دادن یا فشار دادن دکمه ای روی اسکنر توسط کاربر تنظیم کرد.

ConnectionType

Chrome 125+

نحوه اتصال اسکنر به رایانه را نشان می دهد.

Enum

"نامشخص"

"USB"

"شبکه"

ConstraintType

Chrome 125+

نوع داده محدودیت که با یک 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

Chrome 125+

خواص

  • محلی

    بولی اختیاری

    فقط اسکنرهایی را برگردانید که مستقیماً به رایانه متصل هستند.

  • امن

    بولی اختیاری

    فقط اسکنرهایی را برگردانید که از حمل و نقل ایمن مانند USB یا TLS استفاده می کنند.

GetOptionGroupsResponse

Chrome 125+

خواص

  • گروه ها

    OptionGroup [] اختیاری است

    اگر result SUCCESS باشد، فهرستی از گروه های گزینه را به ترتیب ارائه شده توسط درایور اسکنر ارائه می دهد.

  • نتیجه گرفتن گروه های گزینه. اگر مقدار این SUCCESS باشد، ویژگی groups پر می شود.

  • اسکنر هندل

    رشته

    همان دسته اسکنر که به getOptionGroups منتقل شد.

GetScannerListResponse

Chrome 125+

خواص

  • نتیجه شمارش توجه داشته باشید که نتایج جزئی ممکن است برگردانده شوند حتی اگر این نشان دهنده یک خطا باشد.

  • اسکنرها

    فهرستی احتمالاً خالی از اسکنرهایی که با DeviceFilter ارائه شده مطابقت دارند.

OpenScannerResponse

Chrome 125+

خواص

  • گزینه ها

    شی اختیاری

    اگر result SUCCESS باشد، یک نگاشت کلید-مقدار ارائه می دهد که در آن کلید یک گزینه خاص دستگاه است و مقدار نمونه ای از ScannerOption است.

  • نتیجه باز کردن اسکنر. اگر مقدار این SUCCESS باشد، ویژگی scannerHandle و options پر می شود.

  • اسکنر هندل

    رشته اختیاری

    اگر result SUCCESS باشد، دستگیره ای برای اسکنر است که می تواند برای عملیات بعدی استفاده شود.

  • شناسه اسکنر

    رشته

    شناسه اسکنر به openScanner() منتقل شد.

OperationResult

Chrome 125+

یک عدد که نتیجه هر عملیات را نشان می دهد.

Enum

"ناشناخته"
یک شکست ناشناخته یا عمومی رخ داد.

"موفقیت"
عملیات موفق شد.

"بدون حمایت"
عملیات پشتیبانی نمی شود.

"لغو شد"
عملیات لغو شد.

"DEVICE_BUSY"
دستگاه مشغول است.

"نامعتبر"
داده یا آرگومان ارسال شده به متد معتبر نیست.

"WRONG_TYPE"
مقدار ارائه شده نوع داده اشتباهی برای گزینه زیربنایی است.

"EOF"
داده دیگری در دسترس نیست.

"ADF_JAMMED"
تغذیه کننده سند گیر کرده است.

"ADF_EMPTY"
تغذیه کننده سند خالی است.

"COVER_OPEN"
روکش تخت باز است.

"IO_ERROR"
هنگام برقراری ارتباط با دستگاه خطایی روی داد.

"ACCESS_DENIED"
دستگاه نیاز به احراز هویت دارد.

"NO_MEMORY"
حافظه کافی برای تکمیل عملیات در Chromebook موجود نیست.

"دست نیافتنی"
دستگاه قابل دسترسی نیست.

"گمشده"
دستگاه قطع شده است.

"INTERNAL_ERROR"
در جایی غیر از برنامه فراخوانی خطایی رخ داده است.

OptionConstraint

Chrome 125+

خواص

  • فهرست

    رشته[] | شماره[] اختیاری

  • حداکثر

    شماره اختیاری

  • دقیقه

    شماره اختیاری

  • مقدار

    شماره اختیاری

OptionGroup

Chrome 125+

خواص

  • اعضا

    رشته[]

    آرایه ای از نام گزینه ها به ترتیب ارائه شده توسط راننده.

  • عنوان

    رشته

    یک عنوان قابل چاپ ارائه می دهد، به عنوان مثال "گزینه های هندسه".

OptionSetting

Chrome 125+

خواص

  • نام

    رشته

    نام گزینه تنظیم را نشان می دهد.

  • نوع

    نوع داده گزینه را نشان می دهد. نوع داده درخواستی باید با نوع داده واقعی گزینه اصلی مطابقت داشته باشد.

  • ارزش

    رشته | شماره | بولی | شماره[] اختیاری

    مقدار مورد نظر را نشان می دهد. برای درخواست تنظیمات خودکار برای گزینه‌هایی که autoSettable فعال کرده‌اند، تنظیم نشده را رها کنید. نوع داده ارائه شده برای value باید با type مطابقت داشته باشد.

OptionType

Chrome 125+

نوع داده یک گزینه

Enum

"ناشناخته"
نوع داده این گزینه ناشناخته است. ویژگی value تنظیم نخواهد شد.

"بول"
ویژگی value یکی از true false خواهد بود.

"INT"
یک عدد صحیح 32 بیتی امضا شده. بسته به اینکه این گزینه بیش از یک مقدار را بگیرد، ویژگی value طولانی یا طولانی خواهد بود.

"تثبیت شده"
یک دوبل در محدوده -32768-32767.9999 با وضوح 1/65535. بسته به اینکه گزینه بیش از یک مقدار بگیرد، ویژگی value دو یا دو برابر خواهد بود. مقادیر دوگانه ای که نمی توانند دقیقاً نمایش داده شوند به محدوده و دقت موجود گرد می شوند.

"STRING"
دنباله ای از هر بایت به جز NUL ('\0'). ویژگی value یک DOMString خواهد بود.

"دکمه"
گزینه ای از این نوع ارزش ندارد. در عوض، تنظیم گزینه ای از این نوع باعث ایجاد یک اثر جانبی خاص در درایور اسکنر می شود. به عنوان مثال، یک گزینه با دکمه تایپ می تواند توسط یک درایور اسکنر استفاده شود تا وسیله ای برای انتخاب مقادیر پیش فرض فراهم کند یا به یک تغذیه کننده خودکار اسناد بگوید که به صفحه کاغذ بعدی پیش رود.

"گروه"
گزینه گروه بندی بدون ارزش این برای سازگاری گنجانده شده است، اما معمولاً در مقادیر ScannerOption بازگردانده نمی شود. از getOptionGroups() برای بازیابی لیست گروه ها با گزینه های عضوشان استفاده کنید.

OptionUnit

Chrome 125+

نوع داده ScannerOption.unit را نشان می دهد.

Enum

"بی واحد"
مقدار یک عدد بدون واحد است. به عنوان مثال، می تواند یک آستانه باشد.

"PIXEL"
مقدار تعدادی پیکسل است، به عنوان مثال، ابعاد اسکن.

"بیت"
مقدار تعداد بیت ها است، به عنوان مثال، عمق رنگ.

"MM"
مقدار در میلی متر اندازه گیری می شود، به عنوان مثال، ابعاد اسکن.

"DPI"
مقدار در نقطه در اینچ اندازه گیری می شود، به عنوان مثال، وضوح.

"PERCENT"
مقدار یک درصد است، به عنوان مثال، روشنایی.

"میکروس ثانیه"
مقدار در میکروثانیه اندازه گیری می شود، به عنوان مثال، زمان قرار گرفتن در معرض.

ReadScanDataResponse

Chrome 125+

خواص

  • داده ها

    ArrayBuffer اختیاری است

    اگر result SUCCESS باشد، حاوی تکه بعدی داده های تصویر اسکن شده است. اگر result EOF باشد، حاوی آخرین تکه داده تصویر اسکن شده است.

  • تکمیل برآورد شده

    شماره اختیاری

    اگر result SUCCESS باشد، تخمینی از میزان کل داده‌های اسکن تا کنون ارائه شده است، در محدوده 0 تا 100.

  • شغل

    رشته

    دسته کار ارسال شده به readScanData() را ارائه می دهد.

  • نتیجه خواندن داده ها اگر مقدار آن SUCCESS باشد، data شامل قطعه بعدی (احتمالاً با طول صفر) از داده های تصویر است که برای خواندن آماده است. اگر مقدار آن EOF باشد، data حاوی آخرین تکه داده تصویر است.

ScannerInfo

Chrome 125+

خواص

  • نوع اتصال

    نحوه اتصال اسکنر به رایانه را نشان می دهد.

  • deviceUuid

    رشته

    برای تطبیق با سایر ورودی‌های ScannerInfo که به یک دستگاه فیزیکی اشاره می‌کنند.

  • فرمت های تصویر

    رشته[]

    آرایه ای از انواع MIME که می توان برای اسکن های برگشتی درخواست کرد.

  • سازنده

    رشته

    سازنده اسکنر

  • مدل

    رشته

    مدل اسکنر در صورت موجود بودن، یا توضیحات عمومی.

  • نام

    رشته

    یک نام قابل خواندن برای اسکنر برای نمایش در رابط کاربری.

  • نوع پروتکل

    رشته

    شرح قابل خواندن توسط انسان از پروتکل یا درایور مورد استفاده برای دسترسی به اسکنر، مانند Mopria، WSD، یا epsonds. این در درجه اول برای اجازه دادن به کاربر برای انتخاب بین پروتکل ها مفید است اگر دستگاهی از چندین پروتکل پشتیبانی می کند.

  • شناسه اسکنر

    رشته

    شناسه یک اسکنر خاص

  • امن

    بولی

    اگر درست باشد، انتقال اتصال اسکنر توسط یک شنونده غیرفعال مانند TLS یا USB قابل رهگیری نیست.

ScannerOption

Chrome 125+

خواص

  • قابلیت پیکربندی

    نشان می دهد که آیا و چگونه می توان گزینه را تغییر داد.

  • محدودیت

    OptionConstraint اختیاری است

    OptionConstraint را روی گزینه اسکنر فعلی تعریف می کند.

  • توضیحات

    رشته

    توضیحات طولانی تر از گزینه

  • فعال است

    بولی

    نشان می دهد که گزینه فعال است و می توان آن را تنظیم یا بازیابی کرد. اگر false باشد، خاصیت value تنظیم نخواهد شد.

  • پیشرفته است

    بولی

    نشان می دهد که UI نباید این گزینه را به طور پیش فرض نمایش دهد.

  • isAutoSettable

    بولی

    می تواند به طور خودکار توسط درایور اسکنر تنظیم شود.

  • قابل تشخیص است

    بولی

    نشان می دهد که این گزینه از طریق نرم افزار قابل شناسایی است.

  • شبیه سازی شده است

    بولی

    اگر درست باشد توسط درایور اسکنر شبیه سازی شده است.

  • نام

    رشته

    نام گزینه با استفاده از حروف کوچک اسکی، اعداد و خط تیره. دیاکریتیک مجاز نیست.

  • عنوان

    رشته

    عنوان تک خطی قابل چاپ

  • نوع

    نوع داده موجود در ویژگی value که برای تنظیم این گزینه مورد نیاز است.

  • واحد

    واحد اندازه گیری این گزینه

  • ارزش

    رشته | شماره | بولی | شماره[] اختیاری

    مقدار فعلی گزینه، در صورت مرتبط بودن. توجه داشته باشید که نوع داده این ویژگی باید با نوع داده مشخص شده در type مطابقت داشته باشد.

ScanOptions

خواص

  • حداکثر تصاویر

    شماره اختیاری

    تعداد تصاویر اسکن شده مجاز پیش فرض 1 است.

  • mimeTypes

    رشته[] اختیاری است

    انواع MIME که توسط تماس گیرنده پذیرفته می شود.

ScanResults

خواص

  • dataUrls

    رشته[]

    آرایه ای از URL های تصویر داده به شکلی که می تواند به عنوان مقدار "src" به یک تگ تصویر ارسال شود.

  • mimeType

    رشته

    نوع MIME dataUrls .

SetOptionResult

Chrome 125+

خواص

  • نام

    رشته

    نام گزینه تنظیم شده را نشان می دهد.

  • نتیجه تنظیم گزینه را نشان می دهد.

SetOptionsResponse

Chrome 125+

خواص

  • گزینه ها

    شی اختیاری

    یک نگاشت کلید-مقدار به روز شده از نام گزینه ها تا مقادیر ScannerOption حاوی پیکربندی جدید پس از تلاش برای تنظیم همه گزینه های ارائه شده. این ساختار مشابه ویژگی options در OpenScannerResponse است.

    حتی اگر برخی از گزینه‌ها با موفقیت تنظیم نشده باشند، این ویژگی تنظیم می‌شود، اما اگر بازیابی پیکربندی به‌روز نشد (به عنوان مثال، اگر اسکنر در وسط اسکن قطع شود) تنظیم نمی‌شود.

  • نتایج

    آرایه ای از نتایج، هر کدام برای هر OptionSetting تصویب شده.

  • اسکنر هندل

    رشته

    دسته اسکنر را به setOptions() ارائه می دهد.

StartScanOptions

Chrome 125+

خواص

  • قالب

    رشته

    نوع MIME را برای برگرداندن داده های اسکن شده مشخص می کند.

  • maxReadSize

    شماره اختیاری

    اگر مقدار غیر صفر مشخص شده باشد، حداکثر بایت های اسکن شده بازگردانده شده در یک پاسخ readScanData را به آن مقدار محدود می کند. کوچکترین مقدار مجاز 32768 (32 کیلوبایت) است. اگر این ویژگی مشخص نشده باشد، اندازه یک تکه برگشتی ممکن است به بزرگی کل تصویر اسکن شده باشد.

StartScanResponse

Chrome 125+

خواص

  • شغل

    رشته اختیاری

    اگر result SUCCESS باشد، دسته ای را ارائه می دهد که می تواند برای خواندن داده های اسکن یا لغو کار استفاده شود.

  • نتیجه شروع اسکن. اگر مقدار این SUCCESS باشد، ویژگی job پر می شود.

  • اسکنر هندل

    رشته

    همان دسته اسکنر را ارائه می دهد که به startScan() منتقل شد.

روش ها

cancelScan()

Promise Chrome 125+
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)

یک اسکن شروع شده را لغو می کند و یک Promise را برمی گرداند که با یک شی CancelScanResponse حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.

پارامترها

  • شغل

    رشته

    دسته یک کار اسکن فعال که قبلاً از تماس با startScan برگردانده شده است.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (response: CancelScanResponse) => void

برمی گرداند

  • Promise< CancelScanResponse >

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

closeScanner()

Promise Chrome 125+
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)

اسکنر را با دسته عبور می‌بندد و یک Promise را برمی‌گرداند که با یک شی CloseScannerResponse حل می‌شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود. حتی اگر پاسخ موفقیت آمیز نباشد، دسته ارائه شده نامعتبر می شود و نباید برای عملیات بعدی استفاده شود.

پارامترها

  • اسکنر هندل

    رشته

    دسته یک اسکنر باز را که قبلاً از یک تماس به openScanner برگردانده شده بود را مشخص می کند.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (response: CloseScannerResponse) => void

برمی گرداند

  • Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

getOptionGroups()

Promise Chrome 125+
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)

نام گروه و گزینه های اعضا را از اسکنر که قبلاً توسط openScanner باز شده است دریافت می کند. این متد یک Promise برمی گرداند که با یک شی GetOptionGroupsResponse حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.

پارامترها

  • اسکنر هندل

    رشته

    دسته یک اسکنر باز از یک تماس به openScanner بازگشت.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (response: GetOptionGroupsResponse) => void

برمی گرداند

  • Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

getScannerList()

Promise Chrome 125+
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)

لیستی از اسکنرهای موجود را دریافت می کند و یک Promise برمی گرداند که با یک شی GetScannerListResponse حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.

پارامترها

برمی گرداند

  • Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

openScanner()

Promise Chrome 125+
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)

یک اسکنر را برای دسترسی انحصاری باز می کند و یک Promise را برمی گرداند که با یک شی OpenScannerResponse حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.

پارامترها

  • شناسه اسکنر

    رشته

    شناسه یک اسکنر که باید باز شود. این مقدار یک مقدار است که از تماس قبلی با getScannerList برگردانده شده است.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (response: OpenScannerResponse) => void

برمی گرداند

  • Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

readScanData()

Promise Chrome 125+
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)

تکه بعدی داده های تصویر موجود را از یک دسته کار فعال می خواند و یک Promise برمی گرداند که با یک شی ReadScanDataResponse حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.

**توجه:**برای نتیجه پاسخ SUCCESS با عضو data با طول صفر معتبر است. این بدان معنی است که اسکنر هنوز کار می کند اما هنوز داده های اضافی آماده نیست. تماس گیرنده باید مدت کوتاهی صبر کند و دوباره تلاش کند.

هنگامی که کار اسکن کامل شد، پاسخ مقدار نتیجه EOF را خواهد داشت. این پاسخ ممکن است حاوی یک عضو data نهایی غیر صفر باشد.

پارامترها

  • شغل

    رشته

    دسته کار فعال که قبلاً از startScan برگردانده شده است.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (response: ReadScanDataResponse) => void

برمی گرداند

  • Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

scan()

قول بده
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)

یک اسکن سند را انجام می دهد و یک Promise را برمی گرداند که با یک شی ScanResults حل می شود. اگر یک تماس برگشتی به این تابع ارسال شود، داده های برگشتی به آن ارسال می شود.

پارامترها

  • گزینه ها

    یک شی حاوی پارامترهای اسکن.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (result: ScanResults) => void

برمی گرداند

  • Chrome 96+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

setOptions()

Promise Chrome 125+
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)

گزینه‌ها را روی اسکنر مشخص شده تنظیم می‌کند و یک Promise برمی‌گرداند که با یک شی SetOptionsResponse حل می‌شود که حاوی نتیجه تلاش برای تنظیم هر مقدار به ترتیب شی OptionSetting . در صورت استفاده از callback، شی به جای آن به آن ارسال می شود.

پارامترها

  • دسته اسکنر

    رشته

    دسته اسکنر برای تنظیم گزینه ها. این باید مقداری باشد که قبلاً از تماس با openScanner بازگردانده شده است.

  • گزینه ها

    فهرستی از اشیاء OptionSetting که باید روی اسکنر اعمال شوند.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (response: SetOptionsResponse) => void

برمی گرداند

  • Promise< SetOptionsResponse >

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

startScan()

Promise Chrome 125+
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)

اسکن را روی اسکنر مشخص شده شروع می کند و یک Promise را برمی گرداند که با StartScanResponse حل می شود. در صورت استفاده از callback، شی به جای آن به آن ارسال می شود. اگر تماس موفقیت آمیز بود، پاسخ شامل یک دسته کار است که می تواند در تماس های بعدی برای خواندن داده های اسکن یا لغو اسکن استفاده شود.

پارامترها

  • اسکنر هندل

    رشته

    دسته یک اسکنر باز. این باید مقداری باشد که قبلاً از تماس با openScanner بازگردانده شده است.

  • گزینه ها

    یک شی StartScanOptions که گزینه های مورد استفاده برای اسکن را نشان می دهد. ویژگی StartScanOptions.format باید با یکی از ورودی های بازگردانده شده در ScannerInfo اسکنر مطابقت داشته باشد.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (response: StartScanResponse) => void

برمی گرداند

  • Promise< StartScanResponse >

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.