══════════════════════════════════════════════════════════════════════
  وكيل الطابعة — ZMZM Device (Printer) Agent
  (نسخة مكتفية ذاتياً Self-contained — لا تحتاج تثبيت .NET مسبقاً)
══════════════════════════════════════════════════════════════════════

ما هو؟
  خدمة محلية تُثبَّت على جهاز الموظف للطباعة المباشرة عبر درايفر ويندوز:
    • تاجات/باركود خام (ZPL/EPL) لطابعات الليبل (مثل Zebra GC420t).
    • فواتير (صورة A4 أو PDF متّجهي عالي الجودة @300DPI).
  تكشف واجهة آمنة على المضيف المحلي فقط (http://localhost:9100) يستدعيها ZMZMGold.

المتطلبات:
  • الطابعة/طابعة الليبل مثبَّتة في ويندوز (درايفر يعمل).
  • Windows 64-bit. (لا حاجة لتثبيت .NET — الحزمة مكتفية ذاتياً.)

التثبيت:
  1. فُكّ ضغط هذا المجلد بالكامل.
  2. انقر Install.bat بزر الفأرة الأيمن ثم «تشغيل كمسؤول» (Run as administrator).
     - ينسخ الملفات إلى C:\Applications\ZMZMDevice ويسجّل الخدمة ويشغّلها على 9100.
  3. تأكّد: افتح  http://localhost:9100/health  في المتصفح — يجب أن ترى status: ok.
  4. في ZMZMGold: الإعدادات ← الطابعة ← عيّن «رابط الخدمة» = http://localhost:9100
     ثم «حفظ»، ثم اضغط «مزاوجة» (تُزاوَج الطابعة مرة واحدة).

ملاحظة مهمة (عند الترقية من الوكيل الموحّد القديم):
  الوكيل القديم كان يجمع القارئ + الطابعة على المنفذ 9090. النسخة الجديدة تفصلهما:
    • القارئ  → خدمة ZMZMService على 9090 (حزمة ZMZM-Reader).
    • الطابعة → خدمة ZMZMDevice  على 9100 (هذه الحزمة).
  لذا بعد الفصل، عيّن رابط خدمة الطابعة على 9100 وأعد المزاوجة مرة واحدة.

الأمان:
  • تستمع الخدمة على loopback فقط (127.0.0.1) — غير مكشوفة على الشبكة.
  • فحص Host + فحص Origin + توكن مزاوجة لكل أمر طباعة + سجل تدقيق.

الإزالة:
  انقر Uninstall.bat بصلاحية مسؤول.

الإعداد والسجلّات:
  C:\ProgramData\ZMZM\Device\config.json
  C:\ProgramData\ZMZM\Device\audit.log
══════════════════════════════════════════════════════════════════════
