Show / Hide Table of Contents

Tokeny a formátovanie textu

Niektoré premenné okrem bežného textu podporujú aj vkladanie blokov, ktoré sú v závislosti od typu bloku dynamicky nahrádzané.

Ide napríklad o:

  • dodatočný popis položky dokladu (receiptitem.description)
  • hlavičku dokladu (receipt.headerText)
  • pätu dokladu (receipt.footerText)
  • nefiskálny doklad

Takýto blok ďalej označujeme ako token.

Zoznam podporovaných tokenov

Identifikátor Názov Popis
text Formátovanie textu Umožňuje formátovač text a horizontálne ho zarovnávať
barcode čiarový kód
logo Grafické logo Nie je podporované v PDF tlačiarni.
qr QR kód
pageBreak zlom strany V prípade papierového dokladu ide o spustenie nožníc. V prípade PDF alebo e-dokladu nastáva zlom strany a obsaho dokumentu pokračuje na novej strane.

Príklad použitia

  • HTTP WEB API
  • Knižnica

Pri používaní čiarových kódov, QR kódov alebo zlomov strany cez HTTP WEB API, je nutné bloky uvádzať v definovanej štruktúre.

POST /api/v1/printers/print

{
  "text": "Toto je nefiskálny doklad.
  \u001apagebreak\u001a
  Tento text sa nachadza za zlomom strany."
}

Vďaka použitiu knižnice nie je potrebné ovládať syntax blokov, nakoľko knižnica obsahuje pre každý blok implementáciu príslušnej triedy.

Použitie ilustruje príklad nižšie:

using NineDigit.eKasa.Core.Data;
using NineDigit.eKasa.Core.Printing.Models;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

...
{
    var sb = new StringBuilder();

    sb.AppendLine("Test čiarového kódu Code128:");
    var code128Token = BarcodeToken.Create("ABC-abc-1234", BarcodeType.Code128, BarcodeHriPosition.None, 120);
    sb.AppendLine(code128Token.ToString());

    sb.AppendLine("Test page-break:");
    var pageBreakToken = new PageBreakToken();
    sb.AppendLine(pageBreakToken.ToString());

    sb.AppendLine("Test čiarového kódu EAN 8:");
    var ean8Token = BarcodeToken.Create("1234567", BarcodeType.EAN8, BarcodeHriPosition.Below, 80);
    sb.AppendLine(ean8Token.ToString());

    sb.AppendLine("Test čiarového kódu EAN 13:");
    var ean13Token = BarcodeToken.Create("123456789012", BarcodeType.EAN13, BarcodeHriPosition.Both, 60);
    sb.AppendLine(ean13Token.ToString());

    sb.AppendLine("Test QR kódu:");
    var qrCodeToken = QrCodeToken.Create("https://www.ninedigit.sk");
    sb.AppendLine(qrCodeToken.ToString());

    var text = new ReceiptText(sb.ToString());
    var context = new Core.Printing.TextPrintContext(text);

    // vytvorenie inštancie triedy Client

    var config = new NineDigit.eKasa.Configuration.ClientConfiguration();
    config.Storage.ChduSerialPortName = "COM3";

    var client = new NineDigit.eKasa.Client(config);

    // Vyhotovenie nefiskálneho papierového dokladu

    await client.PrintTextAsync(context, CancellationToken.None);
}

Syntax tokenu

Warning

V príkladoch nižšie sú pre lepšiu čitateľnosť použité nasledovné symboly, ktoré je potrebné v reálnom kóde nahradiť:

  • <LF> - nahraďte znakom s ASCII hodnotou 0x0A
  • <CR> - nahraďte znakom s ASCII hodnotou 0x0D
  • <SUB> - nahraďte znakom s ASCII hodnotou 0x1A
  • <RS> - nahraďte znakom s ASCII hodnotou 0x1E
  • <US> - nahraďte znakom s ASCII hodnotou 0x1F

Token je párovo (na začiatku aj na konci) ohraničený symbolom <SUB>.

Napríklad: <SUB> ... <SUB>

Obsah tokenu pozostáva z

  • povinného identifikátora
  • voliteľného zoznamu parametrov

Každý parameter pozostáva z kľúča a nepovinnej hodnoty.

Pred každým parametrom je umiestnený oddeľovač - symbol <RS>.

Kľúč a hodnota parametra je oddelená symbolom <US>.

Príklad: <SUB>identifikator<RS>kluc1<US>hodnota1<RS>kluc2<US>hodnota2<SUB>

text Token

Slúži pre vytlačenie formátovaného textu.

Poznámka: Text je tlačený vo forme separátneho riadku (alebo viacero riadkov) - enter je pridávaný automaticky. Nie je teda potrebné uvádzať symboly \r\n pre nový riadok.

Parametre:

  • content: obsah textu. Povinný parameter.

  • alignment: horizontálne zarovnanie textu. Nepovinný parameter. Povolené hodnoty:

    • 0 alebo left: Text bude zarovnaný vľavo. Toto je predvolená hodnota.
    • 1 alebo center: Text bude zarovnaný na stred.
    • 2 alebo right: Text bude zarovnaný vpravo.
  • format: formátovanie textu. Nepovinný parameter. Hodnoty je možné kombinovať pomocou matematického operátora | (operácia OR). Povolené hodnoty:

    • 0: Bez formátovania. Toto je predvolená hodnota.
    • 1: Hrubé písmo.
    • 2: Podčiarknuté písmo.
    • 4: Dvojitá šírka.
    • 8: Dvojitá výška.
    • 16: Invertovaná tlač (výmena farby textu a pozadia).

Príklad: <SUB>text<RS>content<US>This text is bold and underlined.<RS>format<US>3<RS>alignment<US>center<SUB>

barcode Token

Slúži pre vytlačenie čiarového kódu.

Parametre:

  • type: typ čiarového kódu. Povinný parameter. Povolené hodnoty:

    • ean8
    • ean13
    • code128
    • code39
    • code93
  • content: obsah čiarového kódu. Povinný parameter. Pri kóde typu EAN8 je očakávaných 7 až 8 číslic, pri EAN13 12 až 13 číslic.

  • hriPosition: Pozícia čitateľného textu. Nepovinný parameter, ktorý je podporovaný iba v tlačiarni papierových dokladov (pos). Povolené hodnoty:

    • 0 alebo none: Text nebude viditeľný. Toto je predvolená hodnota.
    • 1 alebo above: Text bude viditeľný nad čiarovým kódom.
    • 2 alebo below: Text bude viditeľný pod čiarovým kódom.
    • 3 alebo both: Text bude viditeľný nad aj pod čiarovým kódom.
  • height: Vertikálna výška čiarového kódu, vyjadrená v bodkách (dots). Nepovinný parameter. V prípade papierového dokladu (pos tlačiareň) sa na tlačiareň preposiela priamo hodnota v bodkách, v prípade pdf tlačiarne sa hodnota preráta na body (points, 1 point = 1/72 inch). Konverzia z bodiek je určená v pomere 203 dpi (dots per inch). Predvolená hodnota: 60 bodov (ekvivalent ~ 7.5 mm).

  • elementWidth: Horizontálna šírka elementu čiarového kódu. Nepovinný paremeter, ktorý je podporovaný iba v tlačiarni papierových dokladov (pos). Čím nižšie číslo, tým viac znakov sa zmestí do čiarového kódu. Staršie modely tlačiarní nemusia podporovať najnižšie hodnoty (1 a 2). Predvolená hodnota je 3. Povolené hodnoty:

    • 1 alebo ultraThin: elementy majú šírku 0.141 mm resp. 0.423 mm.
    • 2 alebo thin: elementy majú šírku 0.282 mm resp. 0.706 mm.
    • 3 alebo semithin: elementy majú šírku 0.423 mm resp. 1.129 mm.
    • 4 alebo normal: elementy majú šírku 0.564 mm resp. 1.411 mm.
    • 5 alebo semithick: elementy majú šírku 0.706 mm resp. 1.834 mm.
    • 6 alebo thick: elementy majú šírku 0.847 mm resp. 2.258 mm.

Príklad: <SUB>barcode<RS>content<US>1234567<RS>type<US>ean8<SUB>

logo Token

Slúži pre vytlačenie loga uloženého v pamäti tlačiarne.

Warning

logo token je momentálne podporovaný iba pri tlačiarni papierových dokladov - pos.

Parametre:

  • address: číslo adresy, na ktorej je logo v tlačiarni uložené. Nepovinný parameter. Ak nie je adresa uvedená, použitá je hodnota 1.

  • size: veľkosť loga. Nepovinný parameter. Ak nie je veľkosť uvedená, použitá je hodnota normal. Povolené hodnoty:

    • 0 alebo normal: Pôvodná veľkosť. Toto je predvolená hodnota.
    • 1 alebo doublewidth: Dvojnásobná šírka.
    • 2 alebo doubleheight: Dvojnásobná výška.
    • 3 alebo quadruple: Dvojnásobná šírka aj výška.
  • alignment: horizontálne zarovnanie loga. Nepovinný parameter. Ak nie je zarovnanie uvedené, použitá je hodnota center. Povolené hodnoty:

    • 0 alebo left: Text bude zarovnaný vľavo.
    • 1 alebo center: Text bude zarovnaný na stred. Toto je predvolená hodnota.
    • 2 alebo right: Text bude zarovnaný vpravo.

Príklad: <SUB>logo<RS>address<US>1<RS>size<US>quadruple<RS>alignment<US>center<SUB>

qr Token

Slúži pre vytlačenie QR kódu

Parametre:

  • content: obsah QR kódu.

Príklad: <SUB>qr<RS>content<US>https://www.ninedigit.sk<SUB>

pageBreak Token

Vytvorí zlom strany.

V prípade elektronického (PDF) dokladu pokračuje obsah dokladu na novom liste. V prípade papierového dokladu je príkaz vyhodnotený spustením nožníc tlačiarne.

Warning

Token pageBreak je možné použiť iba na konci dokladu, alebo v rámci nefiskálneho dokladu. V opačnom prípade je ignorovaný (napríklad v popise položky alebo v hlavičke dokladu).

Parametre:

Tento token neobsahuje žiadne parametre.

Príklad: <SUB>pagebreak<SUB>

In This Article
Na začiatok stránky Nine Digit, s.r.o. ©