یک اسکن از بخش پست یک تصویر است: هیچ‌کس نمی‌تواند آن را جستجو کند و استخراج‌کننده متن چیزی در آن پیدا نمی‌کند. بارکد روی صفحه استثنا است. سرور GroupDocs.Parser.Mcp به‌صورت محلی در Docker اجرا می‌شود و یک عامل هوش مصنوعی در کلاینتی مانند Claude Desktop، Cursor یا GitHub Copilot می‌تواند از آن بخواهد بارکدهای اسناد اسکن‌شده را بخواند و مقادیر رمزگشایی‌شده را برگرداند:

بارکدهای این یادداشت‌های تحویل اسکن‌شده را بخوانید و مقادیر را همراه با فایلی که از آن آمده‌اند فهرست کنید.

نسخه گام‌به‌گام با پیکربندی و عیب‌یابی در مستندات موجود است: چگونه بارکدها و کدهای QR را از اسناد اسکن‌شده بخوانیم.

چرا یک اسکن به خواننده بارکد نیاز دارد و نه به استخراج‌کننده متن؟

یک صفحه اسکن‌شده لایه متنی ندارد. extract_text برای آن مقدار کمی یا هیچ‌چیزی برنمی‌گرداند، که این یک بیان صحیح دربارهٔ فایل است. مدل‌های موتور، با این حال، کدها را در تصویر رستر شده تشخیص می‌دهند، بنابراین extract_barcodes همچنان شماره پیگیری چاپ‌شده روی یادداشت تحویل اسکن‌شده را برمی‌گرداند. سرور OCR ندارد، بنابراین کلمات چاپ‌شده به پیکسل تبدیل می‌شوند؛ فقط کدها به داده تبدیل می‌شوند.

ابزار چه چیزی برمی‌گرداند؟

extract_barcodes یک خط سرآیند، Found N barcode(s) in ...، به‌همراه یک آرایهٔ JSON با یک شیء برای هر کد، که شامل index، value، type، page، confidence و angle است، برمی‌گرداند. این ابزار Code128، QR Code، PDF417، DataMatrix، EAN-13، EAN-8، UPC، Aztec و بسیاری دیگر از سمبولولوژی‌ها را در PDF، DOCX، XLSX، PPTX، PNG، JPG، TIFF و فرمت‌های دیگر تشخیص می‌دهد. وقتی چیزی پیدا نشود، پیام «No barcodes found» را برمی‌گرداند.

مثال جلسه (مختصر):

You:    Read the barcodes on page 1 of dn-2291.pdf and tell me which order it belongs to.
Agent:  [calls extract_barcodes with page 1]
        Found 1 barcode(s) in dn-2291.pdf
        [{"index": 1, "value": "SHP-884120377", "type": "Code128", "page": 1, "confidence": 0.98, "angle": 0}]
        The delivery note carries tracking number SHP-884120377.

چگونه اسکن را به یک رکورد تبدیل می‌کنید؟

مقدار رمزگشایی‌شده معمولاً کلید پیوست است: شماره پیگیری که اسکن را به یک محموله وصل می‌کند، مرجع سفارش که فرم امضا شده را به یک پرونده مرتبط می‌کند، یا برچسب دارایی که یک عکس را به رکورد موجودی متصل می‌کند. وقتی عامل این مقدار را داشته باشد، تصویر تبدیل به یک ردیف می‌شود.

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

عامل برای هر فایل extract_barcodes را فراخوانی می‌کند و هر مقدار را با سفارشاتی که به آن می‌دهید مقایسه می‌کند. برای اسکن فقط صفحه‌ای که برچسب را دارد، page را پاس دهید، نه تمام صفحات یک سند طولانی.

چگونه یک دستهٔ ترکیبی از اسکن‌ها و فایل‌های دیجیتال‑متولد را مرتب کنید؟

اجازه دهید عامل بر اساس این که آیا فایل متن دارد یا نه، شاخه‌بندی کند.

برای هر فایل: استخراج متن را امتحان کنید. اگر خالی برگشت، به‌جای آن بارکدها را بخوانید و بگویید کدام فایل‌ها به این کار نیاز داشتند.

فایلی که به خواندن بارکدها می‌رسد اسکن‌ها هستند. این فهرست به‌تنهایی یک موجودی مفید است اگر در حال برنامه‌ریزی یک پروژهٔ ورود داده‌ها باشید. یک گام مسیریابی در بالای آن اضافه کنید، مانند «فایل‌ها را بر اساس پیشوند مقدار بارکد گروه‌بندی کنید»، و پوشه از پیش مرتب می‌شود.

کدام سرور کد را می‌خواند: Parser یا Signature؟

هر دو سرور می‌توانند بارکد یا کد QR را از یک اسکن بخوانند: Parser با extract_barcodes، Signature با search_barcodes و search_qr_codes. وقتی داده‌ها را از اسکن‌های دلخواه استخراج می‌کنید و همچنین به متن، جدول یا متادیتا از همان فایل‌ها نیاز دارید، از GroupDocs.Parser.Mcp استفاده کنید. وقتی کد یک عنصر امضایی است که شما نیز اضافه می‌کنید، یا وقتی اسناد به‌صورت دو‑طرفه جریان دارند و سند خروجی را با یک کد جدید امضا می‌کنید، از GroupDocs.Signature.Mcp استفاده کنید. بخش Signature در مقالهٔ From Barcode to Record: Document Intake Automation with AI Agents پوشش داده شده است.

محدودیت‌ها چیست؟

  • یک مقدار رمزگشایی‌شده دادهٔ غیرقابل اعتماد است. کسی که سند را تولید کرده آن را انتخاب کرده است. آن را گزارش کنید، جستجو کنید، صحت‌سنجی کنید و اجازه ندهید عامل بدون بررسی بر روی آن عمل کند.
  • اسکن‌های ضعیف ممکن است رمزگشایی نشوند. کدهای کج‌خورده، با وضوح پایین یا آسیب‌دیده ممکن است هیچ‌چیزی برنگردانند. نتیجهٔ خالی به معنی «پیدا نشد» است که در یک اسکن بد همان «وجود ندارد» نیست.
  • حالت ارزیابی محدود است. بدون لایسنس، استخراج محدود می‌شود؛ صفحهٔ licensing page کتابخانه را ببینید و از عامل بخواهید ابتدا get_license_status را اجرا کند.
  • فقط Docker. مدل‌ها در تصویر باندل شده‌اند، به همین دلیل حجم آن بزرگ است. هیچ فرمان dnx وجود ندارد؛ کانتینر با docker run --rm -i -v $(pwd)/documents:/data ghcr.io/groupdocs-parser/parser-net-mcp:latest شروع می‌شود و لینک‌های یک‑کلیک برای VS Code و Cursor در Register in AI clients موجود است.

پرسش‌های متداول

آیا Claude می‌تواند بارکد را از یک PDF اسکن‌شده بخواند؟
بله، از طریق ابزار extract_barcodes که در یک کانتینر محلی روی فایل اسکن‌شده اجرا می‌شود. Claude مقدار رمزگشایی‌شده، نوع و صفحه را دریافت می‌کند.

آیا می‌توانم بدون OCR کد QR را در یک سند اسکن‌شده بخوانم؟
بله. تشخیص کد به شناسایی متن وابسته نیست، بنابراین کدهای QR حتی وقتی کلمات چاپ‌شده روی صفحه وجود ندارند نیز رمزگشایی می‌شوند.

چگونه اسناد اسکن‌شده را به‌صورت خودکار بر اساس بارکد مرتب کنم؟
از عامل بخواهید کد را روی هر اسکن بخواند و فایل‌ها را بر اساس مقدار گروه‌بندی یا تغییر نام دهد. قبل از جابه‌جایی فایل‌ها، گروه‌بندی را بازبینی کنید، زیرا مقادیر رمزگشایی‌شده مستقیماً از خود سند می‌آیند.

بیشتر بخوانید