حالات الاستخدام · اللوجستيات والشحن

ملصقات شحن PDF على نطاق شركات الشحن

أنشئ ملصقات شحن حرارية 4×6 مع باركودات GS1-128 متجهة، وأكواد كراتين ITF-14، ومعرّفات منصات SSCC-18. يحافظ تصيير Edge على p99 أقل من 15 ms حتى أثناء ذروات Black Friday.

المهمة المطلوبة

أنشئ ملصقات شحن حرارية 4×6 جاهزة لشركات الشحن — تشمل باركودات GS1-128 وITF-14 وSSCC-18 المتجهة — مباشرة من JSON الطلب، من دون تشغيل متصفح headless لكل طلب. يجب أن تُمسح المخرجات بثبات عند 203 dpi على طابعات Zebra وSATO وHoneywell، وأن تبقى p99 أقل من 15 ms أثناء ذروات التجزئة.

لماذا gPdf مناسب هنا

  • Code 128 وQR وDataMatrix وPDF417 وGS1-128 / ITF-14 / SSCC-18 بصيغة متجهة — بدقة دون البكسل عند 203 dpi و300 dpi و600 dpi.
  • دقة إحداثيات 0.1 mm — توافق سماحية الطول الإجمالي التي تطلبها شركات الشحن لأسطر القراءة البشرية.
  • مقاس الصفحة `label_4_6_in`، ومعه `label_4_8_in` و`label_a6`، يأتي مضبوطًا مسبقًا لأكثر تنسيقات الطابعات الحرارية شيوعًا.
  • الحتمية — JSON الطلب نفسه ينتج PDF مطابقًا على مستوى البايت، لذلك لا تنتج إعادة الطباعة في المستودع ملصقًا مختلفًا.
  • تصيير Edge — p50 عند 3 ms وp99 عند 8 ms، حتى عند طباعة 50,000 ملصق في الدقيقة نفسها قبل استلام شركة الشحن.
  • عديم الحالة: يبقى الملصق في الذاكرة نحو 4 ms داخل Cloudflare Worker isolate ثم يُحرر. لا مخزن مستندات، ولا سطح تسريب إضافي لبيانات شركة الشحن.

طلب عيّنة

POST /api/v1/pdf/render — ملصق حراري 4×6 بسيط مع باركود تتبع Code 128 لشركة الشحن.

{
  "pages": [{
    "size": "label_4_6_in",
    "elements": [
      {
        "type": "text",
        "x": 4, "y": 6,
        "content": "SHIP TO",
        "style": { "font_size": 8, "font_family": "NotoSans-Regular" }
      },
      {
        "type": "text",
        "x": 4, "y": 12,
        "content": "Acme Distribution Centre\n1200 Logistics Pkwy\nMemphis TN 38116",
        "style": { "font_size": 11, "font_family": "NotoSans-Regular" }
      },
      {
        "type": "barcode",
        "format": "code128",
        "content": "1Z999AA10123456784",
        "x": 4, "y": 60,
        "width": 92, "height": 22,
        "barcode_text": { "enabled": true, "position": "bottom" }
      }
    ]
  }]
}

الامتثال والمطابقة

  • GS1 General Specifications — عرض الوحدة (X-dimension)، والمنطقة الهادئة، والطول الإجمالي يطابق سماحيات GS1 Section 5.4 عند 203 dpi.
  • متطلبات شركات الشحن — تقبل UPS وFedEx وDHL وUSPS المخرجات المصيّرة كملصقات قابلة للمسح؛ لا حاجة إلى معالجة لاحقة لكل شركة شحن.
  • يتوفر PDF/A-2b للأرشفة عبر `settings.profile = "pdfa-2b"` إذا كنت بحاجة إلى الاحتفاظ بملف PDF للملصق لأسباب ضريبية أو تدقيقية.

عبء عمل ملصقات الشحن في فقرة واحدة

كل طلب ينتج ملف PDF واحدًا، وكل ملف PDF يُطبع مرة واحدة على طابعة حرارية. وعندما يكون النظام بطيئًا، فالفشل ليس “تحميل الصفحة بطيء” — بل “استلام المستودع عالق خلف واجهة API التي تنشئ الملصقات”. الشحن مجال تكون فيه p99 latency هي مقياس المنتج، وتكون فيه حتمية المخرجات مهمة لأن إعادة الطباعة إجراء يومي، وتكون فيه جودة الباركود — المقاسة بسماحيات GS1 X-dimension لا بالبكسلات — هي ما يحدد هل يلتقط الماسح الملصق من أول مرور أم لا.

تواجه حِزم PDF المبنية على متصفحات headless صعوبة في تحقيق هذه المتطلبات الثلاثة معًا: تتراكم تكلفة البداية الباردة أثناء الذروة، وتتدهور الباركودات النقطية على الملصقات الحرارية الصغيرة، ويتغير تنقيط الخطوط بين إصدارات Chromium، لذلك يصبح “إعادة طباعة مطابقة على مستوى البايت” أمرًا غير واقعي.

لماذا يناسب gPdf هذا الاستخدام

ملصق 4×6 الحراري صغير (576 × 864 بكسل عند 203 dpi)، وقليل العناصر (كتل نصية + باركود أو اثنان + شعار شركة شحن اختياري)، وعالي الحجم (3PL متوسط الحجم ينشئ 50K-500K يوميًا). هذا هو عبء العمل الذي بُني gPdf من أجله. يقوم محرك التصيير بما يلي:

  1. يجمع التخطيط مرة واحدة — تُحل إحداثيات الصفحة وتسلسل الخطوط وهندسة الباركود وقت الطلب، وليس عبر محرك تخطيط متصفح.
  2. يحوّل كل باركود إلى صيغة متجهة — تُرسم الوحدات مباشرة داخل تيار PDF، بحيث يُقرأ GS1-128 بعرض 30 mm بوضوح عند 203 dpi أو 600 dpi من دون أي منطق تنقيط يعتمد على DPI من طرفك.
  3. يدمج NotoSans CJK + Latin — تعرض حمولة البيانات نفسها اسم شركة شحن بالصينية بشكل صحيح من دون تجهيز خطوط داخل حاوية التصيير.

تبقى p99 عند 8 ms على عبء العمل المرجعي لدينا (1,000 استدعاء للعينة أعلاه على EU-WEST)، سواء كان isolate واحد قد صير ملصقًا واحدًا أو 10,000 ملصق.

حساب الحجم والتكلفة

يعمل 3PL متوسط الحجم عادة قرب 50K ملصق يوميًا، أي نحو 1.5M شهريًا. على خطة Basic (5 دولارات أمريكية شهريًا مقابل 100K صفحة، و0.00005 دولار أمريكي لكل صفحة تجاوز) يكون الحساب:

1.5M pages × $0.00005       = $75.00 in overage
+ Basic plan base            =   $5.00
─────────────────────────────────────
total                         = $80.00 / month

العبء نفسه على Puppeteer-on-Lambda يقع عادة في نطاق 200-400 دولار أمريكي شهريًا مع إعدادات تزامن Lambda المعتادة، قبل احتساب ضريبة البداية الباردة أثناء الذروة.

Black Friday: مثال عملي

ذروة الحمل هي المكان الذي تظهر فيه قيمة تصيير Edge بأوضح صورة. إذا بلغ عميل تجزئة 200% من حجم الملصقات المعتاد في الساعة الأولى من Black Friday — مثل 100K ملصق خلال 60 دقيقة، بمتوسط 1.7K ملصق في الدقيقة وذروات 5K في الدقيقة — يكتمل العمل داخل تجمع إقليمي واحد من Cloudflare Workers من دون ضريبة بداية باردة. العبء نفسه على تجمع Puppeteer جاهز مضبوط على متوسط الحركة ينتج بدايات باردة من 1.5-2.5 s في الحاويات التي تُنشأ وقت الذروة، ويشعر مكتب استلام المستودع بكل واحدة منها.

أين تقرأ بعد ذلك