minishouyin/node_modules/node-thermal-printer/node-thermal-printer.d.ts

425 lines
8.2 KiB
TypeScript
Raw Permalink Normal View History

2025-11-12 11:35:57 +08:00
// Type definitions for node-thermal-printer 4.5.0
// Project: https://github.com/Klemen1337/node-thermal-printer
// Definitions by: Klemen Kastelic<https://github.com/Klemen1337>
// TypeScript Version: 3.5.2
/**
* Supported printer types are EPSON, TANCA, STAR, DARUMA, BROTHER and CUSTOM
*/
declare enum PrinterTypes {
EPSON = "epson",
STAR = "star",
TANCA = "tanca",
DARUMA = "daruma",
BROTHER = "brother",
CUSTOM = "custom"
}
declare enum BreakLine {
NONE = 'NONE', // No word break
CHARACTER = 'CHARACTER', // Break by characters
WORD = 'WORD' // Break by words
}
declare enum CharacterSet {
PC437_USA = 'PC437_USA',
PC850_MULTILINGUAL = 'PC850_MULTILINGUAL',
PC860_PORTUGUESE = 'PC860_PORTUGUESE',
PC863_CANADIAN_FRENCH = 'PC863_CANADIAN_FRENCH',
PC865_NORDIC = 'PC865_NORDIC',
PC851_GREEK = 'PC851_GREEK',
PC857_TURKISH = 'PC857_TURKISH',
PC737_GREEK = 'PC737_GREEK',
ISO8859_7_GREEK = 'ISO8859_7_GREEK',
WPC1252 = 'WPC1252',
PC866_CYRILLIC2 = 'PC866_CYRILLIC2',
PC852_LATIN2 = 'PC852_LATIN2',
SLOVENIA = 'SLOVENIA',
PC858_EURO = 'PC858_EURO',
WPC775_BALTIC_RIM = 'WPC775_BALTIC_RIM',
PC855_CYRILLIC = 'PC855_CYRILLIC',
PC861_ICELANDIC = 'PC861_ICELANDIC',
PC862_HEBREW = 'PC862_HEBREW',
PC864_ARABIC = 'PC864_ARABIC',
PC869_GREEK = 'PC869_GREEK',
ISO8859_2_LATIN2 = 'ISO8859_2_LATIN2',
ISO8859_15_LATIN9 = 'ISO8859_15_LATIN9',
PC1125_UKRANIAN = 'PC1125_UKRANIAN',
WPC1250_LATIN2 = 'WPC1250_LATIN2',
WPC1251_CYRILLIC = 'WPC1251_CYRILLIC',
WPC1253_GREEK = 'WPC1253_GREEK',
WPC1254_TURKISH = 'WPC1254_TURKISH',
WPC1255_HEBREW = 'WPC1255_HEBREW',
WPC1256_ARABIC = 'WPC1256_ARABIC',
WPC1257_BALTIC_RIM = 'WPC1257_BALTIC_RIM',
WPC1258_VIETNAMESE = 'WPC1258_VIETNAMESE',
KZ1048_KAZAKHSTAN = 'KZ1048_KAZAKHSTAN',
JAPAN = 'JAPAN',
KOREA = 'KOREA',
CHINA = 'CHINA',
HK_TW = 'HK_TW',
TCVN_VIETNAMESE = 'TCVN_VIETNAMESE'
}
declare type CutOptions = {
/**
* @default 2
*/
verticalTabAmount: number;
}
declare class ThermalPrinter {
printerTypes: PrinterTypes;
/**
* Constructor
* @param Object config (type, interface, width, characterSet, removeSpecialCharacters, options)
*/
constructor(config: {
type?: PrinterTypes;
interface: string;
width?: number;
characterSet?: CharacterSet;
lineCharacter?: string;
driver?: Object;
removeSpecialCharacters?: boolean;
breakLine?: BreakLine;
options?: {
timeout?: number
};
});
/**
* Send printing buffer to printer
* @param Object Options (docname, waitForResponse)
* @returns Promise<String>
*/
execute(
options?: {
docname?: string;
waitForResponse?: boolean;
}
): Promise<String>;
/**
* Add cut
*/
cut(options?: CutOptions): void;
/**
* Add partial cut
*/
partialCut(options?: CutOptions): void;
/**
* Add beep
*/
beep(numberOfBeeps?: number, lengthOfTheSound?: number): void;
/**
* Get number of characters in one line
* @returns Number
*/
getWidth(): number;
/**
* Get printing buffer in string
* @returns String
*/
getText(): string;
/**
* Get printing buffer
* @returns Buffer
*/
getBuffer(): Buffer;
/**
* Set printing buffer
* @param Buffer
* @returns void
*/
setBuffer(newBuffer: Buffer): void;
/**
* Clear printing buffer
*/
clear(): void;
/**
* Add buffer to printing buffer
* @param Buffer
*/
add(buffer: Buffer): void;
/**
* Set character set
* @param String character set
*/
setCharacterSet(characterSet: String): void;
/**
* Add text
* @param String text
*/
print(text: string): void;
/**
* Add text with new line
* @param String text
*/
println(text: string): void;
/**
* Add vertical tab
*/
printVerticalTab(): void;
/**
* Set text bold
* @param Boolean is enabled
*/
bold(enabled: boolean): void;
/**
* Set text underline
* @param Boolean is enabled
*/
underline(enabled: boolean): void;
/**
* Set text underline and bold
* @param Boolean is enabled
*/
underlineThick(enabled: boolean): void;
/**
* Set text upside down
* @param Boolean is enabled
*/
upsideDown(enabled: boolean): void;
/**
* Set text background and text color inverted
* @param Boolean is enabled
*/
invert(enabled: boolean): void;
/**
* Add open cash drawer
*/
openCashDrawer(): void;
/**
* Align text to center
*/
alignCenter(): void;
/**
* Align text to left
*/
alignLeft(): void;
/**
* Align text to right
*/
alignRight(): void;
/**
* Set font type A
*/
setTypeFontA(): void;
/**
* Set font type B
*/
setTypeFontB(): void;
/**
* Set text size to normal
*/
setTextNormal(): void;
/**
* Set text size to double height
*/
setTextDoubleHeight(): void;
/**
* Set text size to double width
*/
setTextDoubleWidth(): void;
/**
* Set text size to double height and width
*/
setTextQuadArea(): void;
/**
* Add new line
*/
newLine(): void;
/**
* Draw a line of characters
* @param String optional character to be repeated
*/
drawLine(character?: string): void;
/**
* Set height and width font size
* @param Number height
* @param Number width
*/
setTextSize(height: number, width: number): void;
/**
* Add font to left side and right side
* @param String left side text
* @param String right side text
*/
leftRight(left: string, right: string): void;
/**
* Insert table of data (width split equally)
* @param Array Array of values
*/
table(data: string[]): void;
/**
* Insert table of data with custom cell settings
* @param Array Array of objects
*/
tableCustom(data: {
text: string;
align?: "CENTER" | "RIGHT" | "LEFT";
width?: number;
cols?: number;
bold?: boolean;
}[]): void;
/**
* Check if printer is connected
* @returns Promise<boolean>
*/
isPrinterConnected(): Promise<boolean>;
/**
* Print QR code
* @param String QR data
* @param Object Settings (cellSize, correction, model)
*/
printQR(
str: string,
settings?: {
cellSize?: number;
correction?: "L" | "M" | "Q" | "H";
model?: number;
}
): void;
/**
* Add barcode
* @param String barcode data
* @param Number type of barcode
* @param Object barcode settings (hriPos, hriFont, width, height)
*/
printBarcode(
data: string,
type?: number,
settings?: {
hriPos?: number;
hriFont?: number;
width?: number;
height?: number;
}
): void;
/**
* Add maxiCode barcode
* @param String barcode data
* @param Object barcode settings (mode)
*/
maxiCode(
data: string,
settings?: {
mode?: number;
}
): void;
/**
* Add code128 barcode
* @param String barcode data
* @param Object barcode settings (width, height, text)
*/
code128(
data: string,
settings?: {
width?: "LARGE" | "SMALL" | "MEDIUM";
height?: number;
text?: number;
}
): void;
/**
* Add pdf417 barcode
* @param String barcode data
* @param Object settings (rowHeight, width, correction, truncated, columns)
*/
pdf417(
data: string,
settings?: {
rowHeight?: number;
width?: number;
correction?: number;
truncated?: boolean;
columns?: number;
}
): void;
/**
* Add image
* @param String file path
* @returns Promise<Buffer> image buffer
*/
printImage(image: string): Promise<Buffer>;
/**
* Add image buffer
* @param Buffer image buffer
* @returns Promise<Buffer> printer image buffer
*/
printImageBuffer(buffer: Buffer): Promise<Buffer>;
/**
* Send buffer to printer
* @param Buffer
* @returns Promise<String>
*/
raw(text: Buffer): Promise<String>;
/**
* Manually set the printer driver
* @param Object driver the printer driver
*/
setPrinterDriver(driver: Object): void;
/**
* Manually append content to the current buffer
* @param {string|Buffer} - content string or buffer to append
*/
append(content: string | Buffer): void;
}
export {
ThermalPrinter as printer,
PrinterTypes as types,
BreakLine as breakLine,
CharacterSet as characterSet,
ThermalPrinter,
PrinterTypes,
BreakLine,
CharacterSet
};