UNPKG

js-tspl

Version:

ts generate TSPL command, TSPL打印指令生成

131 lines (130 loc) 4.74 kB
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;