Formatting and actions
| Marker | Effect | Note |
|---|---|---|
| $intro$ | Line break or paper feed | Use it to structure the ticket |
| $bold$ / $unbold$ | Enable or disable bold | Appearance depends on the printer font |
| $small$ / variants | Smaller text | Available variants depend on the app parser |
| $big$ / variants | Larger text | Check that it fits the width |
| $cut$ | Cut command | Depends on the cutter and settings |
| $cutt$ | Alternative cut command | Test which variant works on your model |
| $drawer$ | Open cash drawer | Requires a compatible drawer and connector |
| $drawer2$ | Alternative drawer pulse | May correspond to the second pin or another variant |
| $logo$ | Print the configured logo | Configure and test the logo in the app first |
| $codepageN$ | Select code page N | N must be supported by the printer and app |
Sample ticket
text
$bold$ORDER #123$unbold$$intro$Table 4$intro$2 × Coffee 3,20 €$intro$$big$TOTAL 12,50 €$intro$$qr-6-https://example.com/p/123$$cut$- Validate the exact QR format with the installed version.
- Control line length according to paper width and font size.
QR code
The reviewed parser recognises a QR marker containing size and content, and uses a specific error message for an invalid size. Encode or avoid separators that could be confused with the syntax.
- Start with a medium size and a short URL.
- Test text containing hyphens and non-ASCII characters.
- Do not include secrets in a printed QR code.
Raw bytes
The ·number· syntax inserts individual byte values. This is an advanced feature: an incorrect value can change printer state or feed unnecessary paper.
- Accept values from 0 to 255 only.
- Do not build raw byte sequences from unvalidated user input.
- Isolate and document model-specific sequences.