Język Znaczników
Przegląd
Podstawowe Definicje
Język znaczników jest używany do drukowanych form dokumentów. Takie dokumenty są wysyłane do drukarek i drukarek paragonów, znanych również jako fiskalne kasy rejestrujące lub FCR.
Podstawową jednostką drukowania jest dokument XML z
Przykład 1. Prosty Dokument
Prosty dokument stworzony przy użyciu tego języka znaczników wygląda następująco:
<doc>wydrukowany tekst</doc>
Wynik:
| wydrukowany tekst |
Obsługiwane Urządzenia
Poniższe przykłady pokazują oczekiwany tekst do wydrukowania przy użyciu jednej obsługiwanej czcionki na taśmie o szerokości 30 znaków. Aby wskazać początek i koniec linii (krawędzie papieru), używany jest symbol „|”.
Znacznik dokumentu nie zależy od urządzenia i jest dostosowywany do możliwości konkretnej drukarki w momencie drukowania. Po wydrukowaniu dokumentu, taśma jest cięta, jeśli urządzenie to obsługuje.
Znacznik dokumentu działa dla taśmy o szerokości 16 znaków, co jest minimalną dopuszczalną szerokością w momencie pisania tego artykułu.
Atrybuty
| Nazwa | Możliwe Wartości | Funkcja |
| bell | Pusty ciąg (sprawdzenie dostępności) | Dzwonek dzwoni przed drukowaniem dokumentu. Działa tylko dla drukarek. |
| font | f0, f1, f2, barcode, qrcode | Wybór czcionki (zobacz Czcionki) |
| align | center, justify, left, right | Wybór wyrównania (zobacz Wyrównanie) |
| formatter | cut, split, wrap | Wybór zawijania tekstu (zobacz Zawijanie Tekstu) |
Znaczniki formatu
Czcionki
Istnieją trzy rozmiary czcionek. Są oznaczone od 0 do 2 w porządku rosnącym: czcionka 0 jest najmniejsza, czcionka 2 jest największa. Jeśli nie określono, domyślnie używana jest czcionka 0.
Znaczniki podane w poniższej tabeli zmieniają rozmiar czcionki dla wszystkich elementów w tych znacznikach.
Znaczniki Czcionek
| Nazwa | Funkcja |
| <f0></f0> | Formatowanie osadzonej zawartości z rozmiarem czcionki 0. |
| <f1></f1> | Formatowanie osadzonej zawartości z rozmiarem czcionki 1. |
| <f2></f2> | Formatowanie osadzonej zawartości z rozmiarem czcionki 2. |
| <barcode></barcode> | Formatowanie osadzonego tekstu jako kod kreskowy. Obsługuje tylko tekst. Jeśli Twoje urządzenie nie obsługuje drukowania kodów kreskowych, ten znacznik zostanie zignorowany. |
| <qrcode></qrcode> | Formatowanie osadzonego tekstu jako kod 2D (kod QR). Obsługuje tylko tekst. Jeśli Twoje urządzenie nie obsługuje drukowania kodów kreskowych, ten znacznik zostanie zignorowany. Opcjonalne atrybuty rozmiaru kodu QR i poziomu korekcji. Przykład znacznika: <qrcode size="normal" correction="medium"> http://www.Syrve.co.uk/ </qrcode> |
Styl czcionki
Aby zmienić styl czcionki, określ jeden lub więcej odpowiednich atrybutów: bold, italic, reverse (białe litery na czarnym tle), underline.
Te atrybuty można dodać do znaczników
Atrybuty
| Nazwa | Możliwe Wartości | Wartości Domyślne | Funkcja |
| align | left, center, right | center | Wyrównuje obraz poziomo. |
| correction | low, medium, high, ultra | medium | Poziom Korekcji Nie zaleca się używania ultra i high dla małych rozmiarów, ponieważ może to spowodować błąd odczytu kodu QR. |
| size | tiny, small, normal, large, extralarge | normal | Rozmiar Kodu QR |
Atrybuty
| Nazwa | Możliwe Wartości | Wartości Domyślne | Funkcja |
| align | left, center, right | center | Wyrównuje obraz poziomo. |
| heightRatio | dowolna liczba dziesiętna (użyj kropki jako separatora dziesiętnego) | 0.3-0.35 | Stosunek wysokości kodu kreskowego do jego szerokości. Może się różnić w zależności od modelu drukarki, w zależności od tego, czy strefa ciszy jest uwzględniona w szerokości kodu kreskowego, czy nie. |
| hri | on, off | on | Wskazuje, czy tekst kodu kreskowego (Interpretacja Czytelna dla Człowieka) powinien być dodany. |
Rozmiary Czcionek Specyficzne dla Urządzenia
W tabeli, każdy rozmiar czcionki ma określoną liczbę znaków na linię.
| Nazwa urządzenia | Font0 | Font1 | Font2 |
| Comstar | 25 | 15 | 15 |
| Epson TM-T88 | 42 | 28 | 21 |
| Epson TM-U220 (zestaw znaków gb2312) | 32 | 32 | 16 |
| Epson TM-U220 (wszystkie zestawy znaków poza gb2312) | 30 | 30 | 15 |
| SPrint TM200 | 72 | 36 | 36 |
| SPrint TM200 Min | 48 | 48 | 24 |
| Shtrih-600 | 30 | 24 | 15 |
| Posiflex | 42 | 28 | 21 |
| STAR SPxxx drukarka igłowa | 42 | 23 | 17 |
| SP298 | 42 | 34 | 20 |
| STAR TSPxxx | 48 | 38 | 19 |
| Drukarka OPOS | 48 | 24 | 19 |
| Zebra Epl | Zależy od ustawień dpi | Zależy od ustawień dpi | Zależy od ustawień dpi |
| Epson TM-U295 | 35 | 21 | 14 |
Wszystkie drukarki paragonowe obsługują tylko formatowanie jednoliterowe, którego rozmiar jest określony w ustawieniach drukarki w Syrve Office.
Tagi i atrybuty zmiany czcionki są zabronione w tabelach; do tego celu użyj atrybutu czcionki dla komórek tabeli.
Wyrównanie
Domyślnie zawartość jest wyrównana do lewej. Tagi podane w tabeli pozwalają na zmianę wyrównania wszystkich osadzonych elementów.
Tagi wyrównania
| Nazwa | Funkcja |
| <center></ center> | Wyśrodkuj swoją treść |
| <justify></justify> | Wyjustuj swoją treść |
| <left></left> | Wyrównaj swoją treść do lewej |
| <right></right> | Wyrównaj swoją treść do prawej |
Drukowanie obrazów
Domyślnie drukowanie obrazów jest wyłączone.
Tagi drukowania obrazów
| Nazwa | Funkcja |
| <logo>index</logo> | Drukuj wcześniej zaimportowany obraz z pamięci nieulotnej z indeksu numerycznego. |
| <image>base64</image> | Drukuj obraz monochromatyczny reprezentowany jako ciąg base64. |
Atrybuty
| Nazwa | Możliwe Wartości | Wartości Domyślne | Funkcja |
| align | left, center, right | center | Wyrównuje obraz poziomo. |
| resizeMode | clip, fit | clip | Tryb zmiany rozmiaru obrazu.
|
Zawijanie Tekstu
Domyślnie tekst może być zawijany w dowolnym miejscu.
Tabela pokazuje tagi, które można użyć do zawijania tekstu.
Tagi Zawijania Tekstu
| Nazwa | Funkcja |
| <split></split> | Podziel tekst na linie i zawijaj przy znakach spacji (spacje, tabulacja itp.). |
| <wrap></wrap> | Podziel tekst na linie i zawijaj w dowolnym miejscu. |
| <cut></cut> | Przytnij tekst, który nie mieści się w linii. |
| <br /> | Złamanie linii. Złamanie następuje, jeśli bieżąca linia jest pusta. Dowolna liczba <br /> podanych w rzędzie ostatecznie spowoduje tylko jedną pustą linię. |
| <np /> | Nowy akapit. Po zastosowaniu, następny tekst zostanie podany w nowej linii, podczas gdy poprzednia linia zostanie wyrównana do lewej, jeśli akapit ma jakiekolwiek formatowanie szerokości (MS Word działa w ten sam sposób). |
| <nobr /> | Nierozdzielna spacja. Słowa podzielone nierozdzielną spacją są traktowane jako jedno słowo. Oznacza to, że nie zostaną podzielone, jeśli zostanie zastosowany formatowanie split lub wyrównanie justify. |
Inne Tagi Formatowania
Domyślnie przestrzeń między znakami jest wypełniana znakami spacji. Tag
Inne Tagi Formatowania
| Nazwa | Funkcja |
| <fill /> | Redefiniuje znak używany do wypełnienia przestrzeni. Nowy znak (lub zestaw znaków) jest ustawiany za pomocą atrybutu @symbol. Nie jest dziedziczony, jeśli jest otoczony tagiem <fill />. |
Należy wziąć pod uwagę, że tag <fill /> nie redefiniuje znaków spacji w tekście zdefiniowanym przez użytkownika.
Przykład 2. Demonstracja tagu <fill />
<doc><left> text with space </left><fill symbols="."><br /><left> text with space </left><np /><table><columns><column /><column /></columns><cells><c>left text</c><c><right>right text</right></c></cells></table></fill></doc>
Wynik
| text with space |
| text with space .............|
|..............................|
|left text right text|
Tabele
Formatowanie tabeli jest podstawową metodą formatowania dokumentów.
Tabela jest definiowana za pomocą tagu
Atrybuty
| Nazwa | Możliwe Wartości | Funkcja |
| cellspacing | Wartość całkowita, która jest większa lub równa 0. Domyślnie: 1 | Szerokość w znakach wcięcia wewnętrznego kolumny. |
Przykład 3. Prosty Dokument z Tabelą
<doc><table><columns><column /></columns><cells><c>Text</c></cells></table></doc>
Definicje Kolumn
Kolumny są definiowane za pomocą tagów <column /> wewnątrz tagu <columns /> od lewej do prawej.
Możesz ustawić metodę formatowania dla wszystkich komórek w każdej kolumnie, używając wspólnych atrybutów formatowania, takich jak czcionka, wyrównanie i formater (zobacz Przegląd).
Atrybuty
| Nazwa | Możliwe Wartości | Funkcja |
| autowidth | Dowolna. Atrybut musi być określony. | Czy kolumna rozciąga się, aby dopasować się do zawartości. |
| minwidth | Wartość całkowita większa lub równa 1. Domyślnie: 1 | Minimalna szerokość kolumny w symbolach. Używane tylko do automatycznego dopasowywania kolumn. |
| maxwidth | Wartość całkowita większa lub równa 1. Domyślnie: nieokreślona | Maksymalna szerokość kolumny w symbolach. Używane tylko do automatycznego dopasowywania kolumn. |
| width | Wartość całkowita większa lub równa 1. Domyślnie: nieokreślona | Stała szerokość kolumny. Nie można używać razem z autowidth. |
| valign | bottom, center, top Domyślnie: top | Pionowe wyrównanie w komórkach kolumny. |
| align | center, justify, left, right | Wybór wyrównania (zobacz Wyrównanie) |
| formatter | cut, split, wrap | Wybór zawijania tekstu (zobacz Zawijanie Tekstu) |
Kolumny, które się nie rozciągają (autowidth) i nie mają określonego atrybutu szerokości, równomiernie dzielą pozostałą przestrzeń.
Definicje Komórek
Komórki są definiowane przez tagi
Domyślnie każdy wiersz tabeli ma taką samą liczbę komórek i kolumn.
Tag
Tag
Rozciągające się kolumny (autowidth) powinny zawierać co najmniej jedną komórkę
Atrybuty i
| Nazwa | Możliwe Wartości | Funkcja |
| colspan | Wartość całkowita większa lub równa 0. Domyślnie: 1 | Łączy określoną liczbę kolumn. 0 — komórka zajmuje całą szerokość tabeli. |
| font | f0, f1, f2 | Ustawia czcionkę dla wiersza tabeli. Ten atrybut powinien być ustawiony dla pierwszej komórki wiersza, atrybuty innych komórek są ignorowane. |
Zagnieżdżone Tabele
Mechanizm formatowania obsługuje tabele wstawiane w tabele.
Ale jeśli tabela jest wstawiona do komórki, która nie zajmuje całego wiersza, czcionka jest stała i odpowiada bieżącej czcionce wiersza tabeli nadrzędnej. Atrybuty zmiany czcionki zagnieżdżonych wierszy tabeli będą ignorowane.
Zagnieżdżona Tabela Zajmująca Tylko Część Wiersza Tabeli Nadrzędnej
<doc><table><columns><column width="10" /><column /></columns><cells><c>jakiś tekst</c><c>inny tekst</c><c font="f1"><table cellspacing="0"><columns><column /><column valign="bottom" /></columns><cells><c>f0c1</c><c>f0c2</c><c font="f2">f2c1</c><c>f2c2</c></cells></table></c><c>tekst w tabeli nadrzędnej</c></cells></table></doc>
W tym przykładzie pierwszy wiersz ma zastosowaną czcionkę
Czcionka zagnieżdżonej tabeli jest określona przez czcionkę wiersza tabeli nadrzędnej.
Czcionka drugiego wiersza zagnieżdżonej tabeli (font=f2) nie została zmieniona, ponieważ tabela nie zajmuje całego wiersza tabeli nadrzędnej.
DocPreprocess.xslt Makra
Makra to tagi, które nie są zdefiniowane w podstawowym zestawie tagów formatowania i są skróconymi wersjami pewnych typowych struktur.
Użyjmy @attribute, aby oznaczyć wartość atrybutu tekstu źródłowego.
DocPreprocess.xslt Makra
| Nazwa Taga | Opis | ||||
| <line /> | Drukuje jedną linię wypełnioną symbolem @symbols. Domyślnie @symbols=‘-’, co oznacza, że otrzymujemy poziomą linię na całej szerokości dokumentu w wyniku zastosowania taga <line />.
| ||||
| <linecell /> | Dodaje komórkę na całej szerokości tabeli wypełnioną symbolem @symbols. Domyślnie @symbols=‘-’, co oznacza, że otrzymujemy poziomą linię na całej szerokości tabeli w wyniku zastosowania taga <linecell />.
| ||||
| <pair /> | Drukuje parę wartości @left i @right w jednej linii, wyrównane odpowiednio do lewej i prawej.
Jeśli @fit='right', wynikowy znacznik wygląda następująco:
| ||||
| leftpair | Drukuje parę wartości @left i @right w jednej linii, obie wyrównane do lewej.
|
Przykłady użycia
Przykład 4. Formatowanie rachunku gościa
<doc><left><spli<span>i</span>t></center><np /><np /><center>Miłego dnia!</center><np /></doc>
Wynik
|****************************************** |
|M restauracja ----- Meat & Ale LLC |
|NIP 45345345345656 |
|****************************************** |
| RACHUNEK GOŚCIA |
|Sala: Nowa sekcja (1) Stół: 2|
|Otwarte: 23.12.2010 16:37 Nr zamówienia 852|
|Kelner: James |
|------------------------------------------------------------|
|Nazwa Ilość Kwota|
|------------------------------------------------------------|
|Gość 1 |
|Kiełbasa 1 10.00|
| +1 1.00|
|Wódka. Bezalkoholowa. Tak, to możliwe ;) 1 20.00|
| +9 |
| ------|
|Kwota należna Gość 1: 31.00|
| |
|Gość 2 |
|Kiełbasa 1 10.00|
| ------|
|Kwota należna Gość 2: 10.00|
|------------------------------------------------------------|
|RAZEM DO ZAPŁATY: 41.00|
| |
| DZIĘKUJEMY! ZAPRASZAMY PONOWNIE! |
| |
| |
| Miłego dnia! |
| |