Skip to content

The Receipt Markdown extension adds language support for receipt description language to Visual Studio Code, including editing and preview features.

License

Notifications You must be signed in to change notification settings

receiptline/receipt-markdown

Repository files navigation

Receipt Markdown

Features

The Receipt Markdown extension adds language support for receipt description language to Visual Studio Code, including editing and preview features.

screenshot

This language conforms to the OFSC ReceiptLine Specification.
https://www.ofsc.or.jp/receiptline/en/

ReceiptLine is the receipt description language that expresses the output image of small roll paper.
It supports printing paper receipts using a receipt printer and displaying electronic receipts on a POS system or smartphone.
It can be described simply with receipt markdown text data that does not depend on the paper width.

The edited file (*.receipt) can be printed on a receipt printer or converted to an image with ReceiptIO.
https://www.npmjs.com/package/receiptio

ReceiptIO is a simple print application for receipt printers that prints with easy markdown data for receipts and returns printer status. Even without a printer, it can output images.

Syntax

Railroad diagram

document
document

line
line

columns
columns

column
column

text
text

char
char

escape
escape

ws (whitespace)
ws

property
property

member
member

key
key

value
value

Grammar

Structure

The receipt is made of a table, which separates each column with a pipe |.

Line Content Description
column
| column |
| column
column |
Text
Property
Single column
column | column
| column | column |
| column | column
column | column |
Text Double column
column | ... | column
| column | ... | column |
| column | ... | column
column | ... | column |
Text Multiple columns

Alignment

The column is attracted to the pipe | like a magnet.
means one or more whitespaces.

Column Description
column
|column|
|␣column␣|
Center
|column
|column␣|
column␣|
Left
column|
|␣column|
|␣column
Right

Text

The text is valid for any column.

Asparagus | 0.99
Broccoli | 1.99
Carrot | 2.99
---
^TOTAL | ^5.97

Characters are printed in a monospace font (12 x 24 px).
Wide characters are twice as wide as Latin characters (24 x 24 px).
Control characters are ignored.

Special characters in text

Special characters are assigned to characters that are rarely used in the receipt.

Special character Description
\ Character escape
| Column delimiter
{ Property delimiter (Start)
} Property delimiter (End)
- (1 or more, exclusive) Horizontal rule
= (1 or more, exclusive) Paper cut
~ Space
_ Underline
" Emphasis
` Invert
^ Double width
^^ Double height
^^^ 2x size
^^^^ 3x size
^^^^^ 4x size
^^^^^^ 5x size
^^^^^^^ (7 or more) 6x size

Escape sequences in text

Escape special characters.

Escape sequence Description
\\ \
\| |
\{ {
\} }
\- - (Cancel horizontal rule)
\= = (Cancel paper cut)
\~ ~
\_ _
\" _
\` `
\^ ^
\n Wrap text manually
\xnn Hexadecimal character code
\char (Others) Ignore

Properties

The property is valid for lines with a single column.
Text, images, barcodes, and 2D codes cannot be placed on the same line.

{ width: * 10; comment: the column width is specified in characters }
Key Abbr Value Default Description
image i base64 png format - Insert image
Drag a PNG file, hold [Shift] and drop it on a blank line
(Recommended: monochrome, critical chunks only)
code c textdata - Insert barcode / 2D code
command x textdata - Insert device-specific commands
comment _ textdata - Insert comment
option o see below code128 2 72 nohri 3 l Set barcode / 2D code options
(Options are separated by commas or one or more whitespaces)
border b line
space
none
0 - 2
space Set column border (chars)
(Border width: line=1, space=1, none=0)
width w auto
*
0 -
auto
(* for all columns)
Set column widths (chars)
(Widths are separated by commas or one or more whitespaces)
align a left
center
right
center Set line alignment
(Valid when line width < characters per line)
text t wrap
nowrap
wrap Set text wrapping

Barcode options

Barcode options are separated by commas or one or more whitespaces.

Barcode option Description
upc UPC-A, UPC-E
(Check digit can be omitted)
ean
jan
EAN-13, EAN-8
(Check digit can be omitted)
code39 CODE39
itf Interleaved 2 of 5
codabar
nw7
Codabar (NW-7)
code93 CODE93
code128 CODE128
2 - 4 Barcode module width (px)
24 - 240 Barcode module height (px)
hri With human readable interpretation
nohri Without human readable interpretation

2D code options

2D code options are separated by commas or one or more whitespaces.

2D code option Description
qrcode QR Code
3 - 8 Cell size (px)
l
m
q
h
Error correction level

Special characters in property values

Special characters in property values are different from special characters in text.

Special character Description
\ Character escape
| Column delimiter
{ Property delimiter (Start)
} Property delimiter (End)
: Key-value separator
; Key-value delimiter

Escape sequences in property values

Escape special characters.

Escape sequence Description
\\ \
\| |
\{ {
\} }
\; ;
\n New line
\xnn Hexadecimal character code
\char (Others) Ignore

About

The Receipt Markdown extension adds language support for receipt description language to Visual Studio Code, including editing and preview features.

Resources

License

Stars

Watchers

Forks

Packages

No packages published