0.0.4 • Published 4 years ago
@posprint/template v0.0.4
POS Print JSX Template
Introduction
JSX template for POS print. numeral
and dayjs
are embedded to provide formating utilities for amount and date.
API
dydrate
dydrate(template, style, data, context);
- template: the template string.
- style: style object referenced in the template.
- data: data object referenced in the template.
- context: context object referenced in the template.
Returns a hydrated dom tree.
precompile
precompile(template);
- template: the template string.
Returns the precompiled code ready for hydrate.
Template example
<root charset="utf-8" isa="esc">
<text>Hello, world!</text>
</root>
Tags in template
root
Should be the only root node of the template.
<root
charset="utf-8|GB2312|GB18030..."
isa="esc|tsc"
>
...
</root>
- charset (required): sepcify the charset for printer and the template (no charactor beyond the charset scope).
- isa (required): the instruction set architecture of the printer. Currently
esc
andtsc
are avialable.
text
<text
[margin-position="none|bottom|left|right"]
[margin-size="[0-255]"]
[align="left|center|right"]
[font-family="a|b|c"]
[font-style="normal|b|i|u|u2|bi|biu|biu2|bu|bu2|iu|iu2"]
[font-size="normal|wide|high|wide-high"]
[text-spacing="default|[0-255]"]
[color="normal|red|reverse"]
>
Hello, world!
</text>
qrcode
<qrcode
[align="left|center|right"]
[margin="default|[0-255]"]
[size="normal|wide|high|wide-high"]
>
https://www.example.com
</qrcode>
img
<img
format="bmp|png|jpg"
[size="normal|wide|high|wide-high"]
[align="left|center|right"]
>
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=
</img>
table
<table
columns-width="4,2,1,1"
columns-align="left,center,right,right"
columns-overflow="wrap,ellipse,hidden,hidden"
[font-family="a|b|c"]
[font-style="normal|b|i|u|u2|bi|biu|biu2|bu|bu2|iu|iu2"]
[font-size="normal|wide|high|wide-high"]
[text-spacing="default|[0-255]"]
[color="normal|red|reverse"]
>
<tr
[font-family="a|b|c"]
[font-style="normal|b|i|u|u2|bi|biu|biu2|bu|bu2|iu|iu2"]
[font-size="normal|wide|high|wide-high"]
[text-spacing="default|[0-255]"]
[color="normal|red|reverse"]
>
<td [align="inherit|left|center|right"]>abcdefg</td>
<td [align="inherit|left|center|right"]>abc</td>
<td [align="inherit|left|center|right"]>abc</td>
<td [align="inherit|left|center|right"]>abc</td>
</tr>
</table>
separator
<separator char="-|=|.|..." />
blank
<blank lines="1..." />
command
<command cmd="cut|open-cash-box" />
text for tsc
<text
[margin-position="none|bottom|left|right"]
[margin-size="[0-255]"]
[align="left|center|right"]
[font-family="1|2|3|4|5|TSS24.BF2|TSS16.BF2"]
[font-size="normal|wide|high|wide-high"]
[rotation="0|90|180|270"]
>
Hello, world!
</text>
lr-text (unimplemented)
<lr-text>
<text>A</text>
<text>B</text>
</lr-text>
separator for tsc
<separator char="-|=|.|..." />