js-tspl
Version:
ts generate TSPL command, TSPL打印指令生成
131 lines (130 loc) • 4.74 kB
TypeScript
export type constructorTypes = {
/** 该属性用于设定卷标纸的宽度和长度。 使用公制单位(mm) */
width?: number;
/** 该属性用于设定卷标纸的宽度和长度。 使用公制单位(mm) */
height?: number;
/** 该属性用于定义两张卷标纸间的垂直间距距离。 可以设置2mm或者不设置 */
GAP?: number;
};
export interface TextTypes {
/**
* 字体名称
*- 1 8×12 dot 英数字体
*- 2 12×20 dot 英数字体
*- 3 16×24 dot 英数字体
*- 4 24×32 dot 英数字体
*- 5 32×48 dot 英数字体
*- 6 14×19 dot 英数字体 OCR-B
*- 7 21×27 dot 英数字体 OCR-B
*- 8 14×25 dot 英数字体 OCR-A
*- 9 9×17 dot 英数字体
*- 10 12×24 dot 英数字体
*- TST24.BF2 繁体中文 24×24Font(大五码)
*- TSS24.BF2 简体中文 24×24Font(GB 码)
*- K 韩文 24×24Font(KS 码)
*/
font?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 'TST24.BF2' | 'TSS24.BF2' | 'K';
/** 文字旋转角度(顺时针方向) */
rotation?: 0 | 90 | 180 | 270;
/** 放大倍率, 取值 1-10, 部分打印机不支持浮点 */
multiplication?: number;
}
export interface BarCodeOption {
/** 左上角水平坐标起点,以点(dot)表示 */
x: number;
/** 左上角垂直坐标起点,以点(dot)表示 */
y: number;
/** 建议使用39或128, 默认39 */
codeType: number;
/** 条形码高度,以点(dot)表示, 默认50 */
height: number;
/** 0 表示人眼不可识,1 表示人眼可识,即在条码下显示内容, 默认1 */
humanReadable: number;
/** 窄 bar 宽度,以点(dot)表示, 默认为2 */
narrow: number;
/** 宽 bar 宽度,以点(dot)表示, 默认为4 */
wide: number;
/** 条形码旋转角度,顺时针方向
* - `0` 不旋转
* - `90` 顺时针方向旋转90度
* - `180` 顺时针方向旋转180度
* - `270` 顺时针方向旋转270度
*/
rotation: number;
}
export interface QrCodeOption {
/** 左上角水平坐标起点,以点(dot)表示 */
x: number;
/** 左上角垂直坐标起点,以点(dot)表示 */
y: number;
/**### 选择 QRCODE 纠错等级, 默认 M
* - `L` 7%
* - `M` 15%
* - `Q` 25%
* - `H` 30%
*/
eccLevel: string;
/** 二维码宽度 1-10, 单位mm, 默认 1 */
cellWidth: number;
/**### 手动/自动编码, 默认为 A
* - `A` Auto
* - `M` Auto
*/
mode: string;
/** 条形码旋转角度,顺时针方向 默认 0
* - `0` 不旋转
* - `90` 顺时针方向旋转90度
* - `180` 顺时针方向旋转180度
* - `270` 顺时针方向旋转270度
*/
rotation: number;
}
export declare class TSPL {
width: number;
height: number;
GAP: number;
endX: number;
endY: number;
lineHeight: number;
print: string;
/** 初始化纸张信息 */
constructor(options?: constructorTypes);
/** ## 设置行高
*- 设置之后生效 根据这个值确定之后addText方法字间距维护endY
*/
setLineHeight(num: number): this;
/**
*## 添加文本内容
* @param tex 输入的文本内容
*- 注意:五号字英文字母仅可打印大写字母
*- 若要打印双引号时(“)在程序中请使用 [”] 来打印双引号
*- 若要打印0D(hex)字符时,请在程序中使用[R]来打印CR
*- 若要打印0A(hex)字符时,请在程序中使用[A]来打印LF
*- 一倍倍率下,60mm宽的标签,可以打印19个全角中文字符或者39个半角字母数字,中文字体高度为24dtos。
* TSPL打印时没有居中指令,需要手动设置
*/
addText(tex: string, opt?: TextTypes): this;
/** ## 画线
* @param w 线宽度, 默认100
* @param h 线高度, 默认1
* @param x 指定打印x轴位置, 默认this.endX
* @param y 指定打印y轴位置, 默认this.endY, 会动态更新
*/
addLine(w?: number, h?: number, x?: number, y?: number): this;
/**### 添加一维码
* @param content 一维码内容, 一般支持字母和数字
* @param opt 可选参数
*/
addBarCode(content: string, opt?: BarCodeOption): this;
/** 添加二维码 */
addQrCode(content: string, opt?: QrCodeOption): this;
/** 清空任务并返回数据 */
toPrint(): string;
/** 直接拿到字节码 */
toBytes(): Uint8Array;
}
/** 转换为字节码 */
export declare function toBytes(e: string): Uint8Array;
/** 转换到GBK, 互联网转载内容 */
export declare function encodeGBK(c: string): string;
export default TSPL;