Objavil som zvláštne správanie pri inštruovaní tlačiarne Zebra GK420t, aby tlačila nálepky obsahujúce nejaký text a QR kód. Uvažujme o nasledujúcom príklade:

QR kód bez rotácie vľavo a QR kód otočený o 180 stupňov vpravo

Oba QR kódy sú dokonale v poriadku. Oba možno vytlačiť na väčšine tlačiarní vrátane spoľahlivej GK420t a oba možno dekódovať kamerou telefónu alebo čítačkou čiarového kódu.

Rozdiel je v tom, že QR kód vpravo je otočený o 180 stupňov. Rotácia QR kódu by nemala byť problémom, keďže dekodér sa dokáže prispôsobiť orientácii pomocou vzorov na detekciu polohy. Takto je QR kód navrhnutý — preniesť rovnaké informácie bez ohľadu na to, pod akým uhlom je vnímaný.

ZPL inštrukcie pre QR #

Avšak pri použití Zebra Designer 3 Essentials vyzerá kód generovaný pre ľavý kód takto:

^FT100,100
^BQN,2,6
^FH\^FDLA,https://peterbabic.com^FS

Zatiaľ čo ten vpravo generuje úplne iný výstup:

^FO100,100
^GFA,03840,03840,00020,:Z64:
eJztljEWgzAMQ82UY+SmkNw0x8gU11JoC+916BJNeODlfRZjyQpmTz31u7Zuu+Xa7fC29exRXcQ2HNoRuOeCTjQsj/js5HhGU+5Vw7zFcVh2vFQyr5yBpWZCNq2FjlKoPWevYAAdXuPz67XV7OwFXWR+/We9VrPM2c8WKHtXMHg8heyx0Ib1evt+OYttdg8cM4iGpuYCBmunNgNspEYdFIwuj/FzszGMaEfEdjtjrPIsYt52Tr2eh0Y9ljNECIMkNC8zxjTMYO0ZYIM3xqFiKLpst1stZbyQQ+1cL3mqYPR4YXoN+9wVAobbuPIHBO2cuaZijDE9K+FxGE3JzN7/mHbTYzGj14rNxbr6by2zp/6uF7Naq7A=:26A4

Kódy sú takmer identické, prečo taký rozdiel v kóde?

Tlač grafických polí #

Problém je vo funkciách, ktoré daná tlačiareň podporuje. Táto konkrétna tlačiareň podporuje ZPL inštrukciu ^BQ pre QR čiarový kód. Inštrukcia však neprijíma žiadny vstup popisujúci jej rotáciu.

Keďže neexistuje spôsob, ako povedať tlačiarni, ako má byť QR kód otočený, softvér musí najprv zakódovať otočený kód do inštrukcie ^GF pre grafické pole. Takto ho tlačiareň stále dokáže vytlačiť.

Problémy s variabilnými dátami #

Aby sme mohli zakódovať variabilné dáta v QR kóde — čo je väčšina prípadov, keď sa nálepky tlačia v priemyselnom prostredí a kódujú detaily ako model produktu, čas a dátum, prípadne ID operátora — musíme byť schopní meniť inštrukciu za behu.

Úprava dát je jednoduchá v prípade ^BQ, keďže dáta sú uložené v čistom texte. Stáva sa to čoraz ťažším v prípade otočeného QR kódu, kde dáta musia byť najprv prevedené na grafickú reprezentáciu QR kódu, potom otočené a potom zakódované v tom, čo je pravdepodobne Base64 kódovanie.

Takáto rutina, pre ktorú som nenašiel priamočiaru dokumentáciu. Aj keby bola ľahko dostupná, bolo by potrebné ju portovať do lokálneho prostredia, kde je tlačiareň pripojená — napríklad do PLC.

Záver #

Väčšina moderných tlačiarní používa ethernetové pripojenie, ktoré je nadradené pre zložitejšie návrhy, GK420t ho však nemá. Používa sériové pripojenie, čo naznačuje relatívne nízkoúrovňový riadiaci systém. Pokiaľ to nie je absolútne nevyhnutné, tlačeniu otočených QR kódov s variabilnými dátami by sa malo vyhnúť pri tlačiarňach tejto rodiny.

Toto je 68. príspevok #100daystooffload.

Odkazy #