certflow.services.printer.lq635kii_printer module¶
LQ-635KII 打印机底层驱动
基于 ESC/P-K 命令集,包含手册 P101 所有命令及补充功能
定位策略: - X 轴:绝对定位 ESC $(有效) - Y 轴:相对移动 ESC J(有效),绝对定位 ESC ( V 无效
- class certflow.services.printer.lq635kii_printer.LQ635KIIPrinter(printer_name=None, calibration_x_offset_mm=13, y_offset_mm=0)[源代码]¶
基类:
objectLQ-635KII 打印机控制类
专门为 EPSON LQ-635KII 24针打印机设计 使用 ESC/P-K 命令集,包含手册全部命令 定位策略: - X: 绝对定位(ESC $),自动应用 x_offset - Y: 相对移动(ESC J),自动应用 y_offset
- 使用示例:
# 1. 基础打印(推荐使用上下文管理器) with LQ635KIIPrinter("EPSON LQ-635KII") as printer:
printer.init() printer.set_line_spacing_1_6() printer.println("产品名称:高温高压阀门") printer.println("产品型号:J41H-64") printer.println("公称通径:DN150") printer.println("公称压力:PN64") printer.form_feed()
# 2. 精确定位打印(预印卡纸)- 使用推荐方法 with LQ635KIIPrinter() as printer:
printer.init() printer.set_quality(PrintQuality.LETTER) # 方法1:分别设置 X 和 Y(推荐) printer.set_absolute_x_mm(25) # X=25mm(绝对定位,自动应用 x_offset) printer.set_absolute_y_mm(30) # Y=30mm(相对移动实现,自动应用 y_offset) printer.print_text("DN150") printer.set_absolute_x_mm(25) printer.set_absolute_y_mm(38) printer.print_text("PN64") printer.form_feed()
# 2.1 或者使用合并方法 with LQ635KIIPrinter() as printer:
printer.init() printer.set_quality(PrintQuality.LETTER) printer.set_absolute_xy_mm(25, 30) # 同时设置 X,Y printer.print_text("DN150") printer.set_absolute_xy_mm(25, 38) printer.print_text("PN64") printer.form_feed()
# 3. 图形模式打印(任意字体/字号) with LQ635KIIPrinter() as printer:
printer.init() # 需要配合 PrinterService 使用 pass
# 4. 手动控制(不使用上下文管理器) printer = LQ635KIIPrinter("EPSON LQ-635KII") printer.open() printer.init() printer.set_bold(True) printer.println("重要提示") printer.set_bold(False) printer.flush() # 立即发送 printer.close()
- enable_raw_monitoring(output_dir='raw_logs', filter_cmds=None)[源代码]¶
启用原始数据监控
启用后,每次 _append 和 _flush 都会记录原始字节数据: - 控制台:实时显示 [RAW] 十六进制日志 - 文件:raw_full_YYYYMMDD_HHMMSS.prn 保存完整数据流
- set_page_length_inch(inches)[源代码]¶
设置页长(按英寸) (ESC C NUL n)
- 参数:
inches (int) -- 每页长度,单位英寸,取值范围 1-22
- 返回类型:
None
- set_align(align)[源代码]¶
设置对齐方式 (ESC a n)
- 参数:
align (Align) -- 对齐方式枚举值 (LEFT/CENTER/RIGHT/JUSTIFY)
- 返回类型:
None
- set_quality(quality)[源代码]¶
设置打印品质 (ESC x n)
- 参数:
quality (PrintQuality) -- 打印品质,DRAFT(草体/快速) 或 LETTER(文书体/高质量)
- 返回类型:
None
- set_font(font)[源代码]¶
设置西文字体 (ESC k n)
- 参数:
font (Font) -- 字体枚举值 (ROMAN/SANS_SERIF/COURIER/PRESTIGE/SCRIPT)
- 返回类型:
None
- set_proportional(on=True)[源代码]¶
设置比例间距模式
比例模式下每个字符宽度不同(如 i 比 W 窄),关闭后恢复等宽模式。
- 参数:
on (bool) -- True 开启比例间距,False 关闭
- 返回类型:
None
- set_condensed(on=True)[源代码]¶
压缩打印模式(约 17.5 CPI) (SI / DC2)
- 参数:
on (bool) -- True 开启压缩模式,False 关闭
- 返回类型:
None
- set_single_line_width(on=True)[源代码]¶
单行倍宽 (SO / DC4)
仅对当前行有效,换行后自动恢复。
- 参数:
on (bool) -- True 开启单行倍宽,False 关闭
- 返回类型:
None
- set_underline(on=True)[源代码]¶
下划线效果 (ESC - 1 / ESC - 0)
- 参数:
on (bool) -- True 开启下划线,False 关闭
- 返回类型:
None
- set_double_strike(on=True)[源代码]¶
重叠打印效果(加深颜色) (ESC G / ESC H)
打印机在同一位置重复打印两次以加深颜色。
- 参数:
on (bool) -- True 开启重叠打印,False 关闭
- 返回类型:
None
- set_print_mode(mode_byte)[源代码]¶
组合打印模式 (ESC ! n)
- 参数:
mode_byte (int) -- 模式字节,各bit含义: bit0: 10cpi (0) / 12cpi (1) bit1: 压缩打印 bit2: 粗体 bit3: 倍宽 bit4: 斜体 bit5: 下划线 bit6: 上标/下标 bit7: 倍高
- 返回类型:
None
- set_absolute_x(x_60inch)[源代码]¶
绝对水平定位 (ESC $ nL nH)
- 参数:
x_60inch (int) -- 水平位置,单位 1/60 英寸
- 返回类型:
None
- set_absolute_x_mm(x_mm)[源代码]¶
绝对水平定位(毫米单位)- 自动叠加打印机物理校准偏移
- 参数:
x_mm (float) -- 水平位置,单位毫米(模板/字段逻辑坐标,不含物理校准)
- 返回类型:
None
- set_absolute_y_mm(y_mm)[源代码]¶
绝对垂直定位(毫米单位)- 使用相对移动实现
由于 ESC ( V 无效,改用 ESC J 相对移动, 从当前位置移动到目标 Y 位置。
- 参数:
y_mm (float)
- 返回类型:
None
- move_x_relative(dots)[源代码]¶
相对水平移动 (ESC nL nH) - 备用,一般用绝对定位 :param dots: 移动点数,单位 1/180 英寸 (正数右移,负数左移)
- 参数:
dots (int)
- 返回类型:
None
- set_character_table(table)[源代码]¶
选择字符表 (ESC t n)
- 参数:
table (int) -- 0=斜体表, 1=图形表, 2=下载字符表
- 返回类型:
None
- print_text(text)[源代码]¶
打印文本
LQ-635KII 自动识别中文字符,直接发送 GB2312/GB18030 编码即可。
- 参数:
text (str) -- 要打印的文本内容
- 返回类型:
None
- print_graphics_24pin(data, width, dpi=PrinterDPI.DPI_180)[源代码]¶
24针图形打印
- 参数:
data (bytes) -- 图形数据 (每列3字节)
width (int) -- 宽度 (列数)
dpi (PrinterDPI) -- 分辨率,可选 DPI_60/DPI_90/DPI_120/DPI_180/DPI_360
- 返回类型:
None