Skip to content

Commit dc559c5

Browse files
authored
Merge pull request #12 from Blair2004/master
Paper-cut command added
2 parents 18a672c + 396139f commit dc559c5

File tree

6 files changed

+37
-4
lines changed

6 files changed

+37
-4
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ JavaScript library that implements the thermal printer ESC / POS protocol and pr
1414
- [x] Align
1515
- [x] Barcode
1616
- [x] QRcode
17+
- [x] Paper cut node
1718
- [ ] Image
1819
- [x] XML with Handlebars
1920
- [x] Handlebars [Moment](http://momentjs.com) Helper
@@ -136,6 +137,7 @@ const xml = `
136137
<align mode="center">
137138
<qrcode ecl="M">{{qrcode}}</qrcode>
138139
</align>
140+
<paper-cut/>
139141
</document>
140142
`;
141143

index.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/buffer-builder.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,16 @@ export class BufferBuilder {
150150
return this.buffer.flush();
151151
}
152152

153+
/**
154+
* Register Paper Cut Action
155+
* @return BufferBuilder
156+
*/
157+
public paperCut(): BufferBuilder {
158+
this.buffer.write(Command.GS_v(1));
159+
return this;
160+
}
161+
162+
153163
}
154164

155165
export enum UNDERLINE_MODE {

lib/command.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export class Command {
3737
public static GS_v0 = (m: number): number[] => [Command.GS, 0x76, 0x30, m]; // GSv0m
3838
public static GS_w = (n: number): number[] => [Command.GS, 0x77, n]; // GSwn
3939
public static GS_x = (n: number): number[] => [Command.GS, 0x78, n]; // GSxn
40+
public static GS_v = (n: number): number[] => [Command.GS, 0x56, n]; // GSv
4041

4142
public static LF: number[] = [Command.NL];
4243

lib/node-factory.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import TextNode from './nodes/text-node';
1010
import TextLineNode from './nodes/text-line-node';
1111
import UnderlineNode from './nodes/underline-node';
1212
import WhiteModeNode from './nodes/white-mode-node';
13+
import PaperCutNode from './nodes/paper-cut-node';
1314

1415
export class NodeFactory {
1516

@@ -27,6 +28,7 @@ export class NodeFactory {
2728
case 'text-line': return new TextLineNode(node);
2829
case 'underline': return new UnderlineNode(node);
2930
case 'white-mode': return new WhiteModeNode(node);
31+
case 'paper-cut': return new PaperCutNode(node);
3032
default: return null;
3133
}
3234
}

lib/nodes/paper-cut-node.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { XMLNode } from '../xml-node';
2+
import { BufferBuilder } from '../buffer-builder';
3+
4+
export default class PaperCutNode extends XMLNode {
5+
6+
constructor(node: any) {
7+
super(node);
8+
}
9+
10+
public open(bufferBuilder: BufferBuilder): BufferBuilder {
11+
return bufferBuilder.paperCut();
12+
}
13+
14+
public close(bufferBuilder: BufferBuilder): BufferBuilder {
15+
return bufferBuilder;
16+
}
17+
18+
}

0 commit comments

Comments
 (0)