Gebruiksscenario's · Logistiek en verzending

Verzendlabel-PDF's op vervoerdersniveau

Render 4×6 thermische verzendetiketten met vector-GS1-128-barcodes, ITF-14-dooscodes en SSCC-18-pallet-ID's. Rendering op de edge houdt p99 onder 15 ms, ook bij Black Friday-pieken.

Uit te voeren taak

Render vervoerdersklare 4×6 thermische verzendetiketten, inclusief vector-GS1-128-, ITF-14- en SSCC-18-barcodes, direct vanuit order-JSON zonder per request een headless browser te starten. De output moet betrouwbaar scannen op 203 dpi op Zebra/SATO/Honeywell-printers en tijdens retailpieken onder 15 ms p99 blijven.

Waarom gPdf hiervoor past

  • Vector Code 128, QR, DataMatrix, PDF417 en GS1-128 / ITF-14 / SSCC-18: subpixelnauwkeurig op 203 dpi, 300 dpi en 600 dpi.
  • 0,1 mm coördinatenprecisie: sluit aan op vervoerderstoleranties voor de totale lengte van mensleesbare interpretatieregels.
  • Paginaformaat `label_4_6_in` (en `label_4_8_in`, `label_a6`) wordt voorgeconfigureerd geleverd voor de dominante thermische printerformaten.
  • Determinisme: dezelfde order-JSON rendert naar een byte-identieke PDF, zodat herdrukken in het magazijn nooit een 'ander' etiket opleveren.
  • Rendering op de edge: p50 3 ms, p99 8 ms, zelfs wanneer 50.000 etiketten in dezelfde minuut bij overdracht aan de vervoerder worden geprint.
  • Stateless: het etiket bestaat ongeveer 4 ms in het geheugen van een Cloudflare Worker isolate en wordt daarna vrijgegeven. Geen documentopslag, geen extra lekoppervlak voor vervoerdersdata.

Voorbeeldrequest

POST /api/v1/pdf/render - minimaal 4×6 thermisch etiket met een Code 128-trackingbarcode van de vervoerder.

{
  "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" }
      }
    ]
  }]
}

Compliance en conformiteit

  • GS1 General Specifications: modulebreedte (X-dimension), quiet zone en totale lengte sluiten aan op de toleranties in GS1 Section 5.4 bij 203 dpi.
  • Vervoerderseisen: UPS, FedEx, DHL en USPS accepteren de gerenderde output als scanbaar; geen nabewerking per vervoerder nodig.
  • PDF/A-2b is beschikbaar voor bewaring via `settings.profile = "pdfa-2b"` als u de PDF van het verzendetiket om fiscale of auditredenen moet bewaren.

De werklast voor verzendlabels, in één alinea

Elke order produceert één PDF, elke PDF wordt één keer op een thermische printer geprint, en de foutmodus bij traagheid is niet “de pagina laadt langzaam”, maar “de magazijnafhaling staat achter uw API voor etiketgeneratie in de wachtrij”. Verzending is een taak waarbij p99-latency de productmetriek is, deterministische output telt omdat herdrukken routine zijn, en barcodekwaliteit, gemeten in GS1 X-dimension-toleranties in plaats van pixels, bepaalt of scanners het etiket bij de eerste scan oppakken.

PDF-stacks op basis van headless browsers hebben moeite met alle drie tegelijk: cold-startkosten stapelen zich op bij pieken, rasterbarcodes degraderen op kleine thermische etiketten, en fontrasterisatie verschuift tussen Chromium-versies, waardoor een byte-identieke herdruk onmogelijk is.

Waarom gPdf past

Een 4×6 thermisch etiket is klein (576 × 864 pixels bij 203 dpi), heeft weinig elementen (tekstblokken plus 1-2 barcodes en eventueel een logo van de vervoerder) en draait op hoog volume (een middelgrote 3PL rendert 50.000-500.000 per dag). Dat is de werklast waarvoor gPdf is gebouwd. De renderlaag:

  1. Compileert de layout één keer: paginacoördinaten, fontcascades en barcodegeometrie worden op requesttijd opgelost, niet via een browser-layoutengine.
  2. Vectoriseert elke barcode: modules worden direct in de PDF-stream getekend, zodat een 30 mm brede GS1-128 op 203 dpi of 600 dpi schoon leest zonder DPI-bewuste rasterisatielogica aan uw kant.
  3. Embedt NotoSans CJK + Latin: dezelfde requestdata rendert een Chinese vervoerdersnaam correct zonder dat u fonts op een rendercontainer hoeft te provisionen.

p99 is vlak 8 ms over onze referentiewerklast (1.000 invocations van het voorbeeld hierboven op EU-WEST), ongeacht of één isolate één etiket of 10.000 etiketten heeft gerenderd.

Volume- en kostenberekening

Een typische middelgrote 3PL draait rond 50.000 etiketten/dag = ongeveer 1,5 mln./maand. Op het Basic-plan (5 USD/maand voor 100.000 pagina’s, 0,00005 USD per pagina overage) is dat:

1,5 mln. pagina's × 0,00005 USD = 75,00 USD aan overage
+ Basic-plan basis              =  5,00 USD
────────────────────────────────────────
totaal                           = 80,00 USD / maand

Dezelfde werklast op Puppeteer-on-Lambda zit bij gangbare Lambda-concurrency-instellingen in de 200-400 USD/maand range, nog vóór de cold-startbelasting tijdens piekuren.

Black Friday: een uitgewerkt voorbeeld

Piekbelasting is waar rendering op de edge het duidelijkst rendeert. Een retailklant die in het eerste uur van Black Friday 200% van het normale etiketvolume haalt, bijvoorbeeld 100.000 etiketten in 60 minuten, gemiddeld 1.700 etiketten/minuut met pieken van 5.000/minuut, rondt dat af binnen één Cloudflare Workers-regiopool zonder cold-startbelasting. Dezelfde werklast op een Puppeteer-warmpool die op gemiddeld verkeer is gedimensioneerd, produceert cold starts van 1,5-2,5 s op de containers die voor de piek worden bijgestart; de afhaalbalie in het magazijn voelt elk daarvan.

Waar u verder kunt kijken