certflow.services.printer package¶
Submodules¶
- certflow.services.printer.escp_commands module
LQ635KIICommandLQ635KIICommand.ESCLQ635KIICommand.LFLQ635KIICommand.FFLQ635KIICommand.CRLQ635KIICommand.BELLQ635KIICommand.BSLQ635KIICommand.CANLQ635KIICommand.DELLQ635KIICommand.INITLQ635KIICommand.HOMELQ635KIICommand.DC1LQ635KIICommand.DC3LQ635KIICommand.LINE_SPACING_1_8LQ635KIICommand.LINE_SPACING_1_6LQ635KIICommand.LINE_SPACING_N_180LQ635KIICommand.LINE_SPACING_N_60LQ635KIICommand.LINE_SPACING_N_360LQ635KIICommand.PAGE_LENGTH_INCHLQ635KIICommand.PAGE_LENGTH_LINESLQ635KIICommand.PAGE_SKIP_PERFLQ635KIICommand.PAGE_SKIP_OFFLQ635KIICommand.LEFT_MARGINLQ635KIICommand.RIGHT_MARGINLQ635KIICommand.ALIGN_LEFTLQ635KIICommand.ALIGN_CENTERLQ635KIICommand.ALIGN_RIGHTLQ635KIICommand.ALIGN_JUSTIFYLQ635KIICommand.HORIZONTAL_TABLQ635KIICommand.SET_HORIZONTAL_TABSLQ635KIICommand.ABSOLUTE_HORIZONTALLQ635KIICommand.RELATIVE_HORIZONTALLQ635KIICommand.VERTICAL_TABLQ635KIICommand.SET_VERTICAL_TABSLQ635KIICommand.ABSOLUTE_VERTICALLQ635KIICommand.RELATIVE_VERTICALLQ635KIICommand.RELATIVE_VERTICAL_MOVELQ635KIICommand.REVERSE_VERTICAL_MOVELQ635KIICommand.DRAFT_QUALITYLQ635KIICommand.LETTER_QUALITYLQ635KIICommand.PITCH_10CPILQ635KIICommand.PITCH_12CPILQ635KIICommand.PITCH_15CPILQ635KIICommand.PROPORTIONAL_ONLQ635KIICommand.PROPORTIONAL_OFFLQ635KIICommand.CHARACTER_SPACELQ635KIICommand.CONDENSED_ONLQ635KIICommand.CONDENSED_OFFLQ635KIICommand.DOUBLE_WIDTH_ONLQ635KIICommand.DOUBLE_WIDTH_OFFLQ635KIICommand.DOUBLE_HEIGHT_ONLQ635KIICommand.DOUBLE_HEIGHT_OFFLQ635KIICommand.FONT_ROMANLQ635KIICommand.FONT_SANS_SERIFLQ635KIICommand.FONT_COURIERLQ635KIICommand.FONT_PRESTIGELQ635KIICommand.FONT_SCRIPTLQ635KIICommand.SUPERSCRIPTLQ635KIICommand.SUBSCRIPTLQ635KIICommand.SUPERSUB_OFFLQ635KIICommand.UNDERLINE_ONLQ635KIICommand.UNDERLINE_OFFLQ635KIICommand.ITALIC_ONLQ635KIICommand.ITALIC_OFFLQ635KIICommand.BOLD_ONLQ635KIICommand.BOLD_OFFLQ635KIICommand.DOUBLE_STRIKE_ONLQ635KIICommand.DOUBLE_STRIKE_OFFLQ635KIICommand.PRINT_MODELQ635KIICommand.GRAPHICS_8PIN_SINGLELQ635KIICommand.GRAPHICS_8PIN_DOUBLELQ635KIICommand.GRAPHICS_8PIN_HS_DOUBLELQ635KIICommand.GRAPHICS_8PIN_QUADLQ635KIICommand.GRAPHICS_24PIN_SINGLELQ635KIICommand.GRAPHICS_24PIN_DOUBLELQ635KIICommand.GRAPHICS_24PIN_CRTLQ635KIICommand.GRAPHICS_24PIN_TRIPLELQ635KIICommand.GRAPHICS_24PIN_HEXLQ635KIICommand.REDEFINE_GRAPHICSLQ635KIICommand.GRAPHICS_COMPRESSLQ635KIICommand.GRAPHICS_DATALQ635KIICommand.CHARACTER_TABLE_ITALICLQ635KIICommand.CHARACTER_TABLE_GRAPHICSLQ635KIICommand.CHARACTER_TABLE_DOWNLOADLQ635KIICommand.DOWNLOAD_CHARLQ635KIICommand.COPY_ROM_TO_RAMLQ635KIICommand.USE_DOWNLOADLQ635KIICommand.SINGLE_LINE_WIDTHLQ635KIICommand.SINGLE_LINE_WIDTH_OFFLQ635KIICommand.SET_VERTICAL_TABS_CHANNELLQ635KIICommand.SELECT_VFU_CHANNELLQ635KIICommand.TOP_MARGINLQ635KIICommand.PAGE_FORMATLQ635KIICommand.PAGE_LENGTH_EXT
FSCommandFSCommand.FSFSCommand.SOFSCommand.DC4FSCommand.WFSCommand.wFSCommand.DOTFSCommand.LINE_SPACINGFSCommand.FONTFSCommand.FONT_ALTFSCommand.SHIFT_RIGHTFSCommand.SHIFT_LEFTFSCommand.VERTICAL_MOVEFSCommand.SUPERSCRIPTFSCommand.SUBSCRIPT_OFFFSCommand.HEIGHT_ADJUSTFSCommand.VERTICAL_ADJUSTFSCommand.PRINT_MODEFSCommand.MODE_COMBINEFSCommand.DOWNLOADFSCommand.CONTROL
AlignPrintQualityFontPaperSizePrinterDPI
- certflow.services.printer.lq635kii_printer module
LQ635KIIPrinterLQ635KIIPrinter.open()LQ635KIIPrinter.close()LQ635KIIPrinter.__enter__()LQ635KIIPrinter.__exit__()LQ635KIIPrinter.flush()LQ635KIIPrinter.enable_raw_monitoring()LQ635KIIPrinter.disable_raw_monitoring()LQ635KIIPrinter.carriage_return()LQ635KIIPrinter.backspace()LQ635KIIPrinter.cancel_line()LQ635KIIPrinter.delete_char()LQ635KIIPrinter.online()LQ635KIIPrinter.offline()LQ635KIIPrinter.init()LQ635KIIPrinter.home()LQ635KIIPrinter.beep()LQ635KIIPrinter.feed()LQ635KIIPrinter.form_feed()LQ635KIIPrinter.set_paper_size()LQ635KIIPrinter.set_left_margin()LQ635KIIPrinter.set_right_margin()LQ635KIIPrinter.set_line_spacing()LQ635KIIPrinter.set_line_spacing_1_6()LQ635KIIPrinter.set_line_spacing_1_8()LQ635KIIPrinter.set_skip_perf()LQ635KIIPrinter.cancel_skip_perf()LQ635KIIPrinter.set_page_length_lines()LQ635KIIPrinter.set_page_length_inch()LQ635KIIPrinter.set_align()LQ635KIIPrinter.left_align()LQ635KIIPrinter.center()LQ635KIIPrinter.right_align()LQ635KIIPrinter.justify()LQ635KIIPrinter.set_quality()LQ635KIIPrinter.set_draft()LQ635KIIPrinter.set_letter()LQ635KIIPrinter.set_font()LQ635KIIPrinter.set_pitch()LQ635KIIPrinter.set_proportional()LQ635KIIPrinter.set_character_space()LQ635KIIPrinter.set_double_width()LQ635KIIPrinter.set_double_height()LQ635KIIPrinter.set_condensed()LQ635KIIPrinter.set_single_line_width()LQ635KIIPrinter.set_bold()LQ635KIIPrinter.set_italic()LQ635KIIPrinter.set_underline()LQ635KIIPrinter.set_double_strike()LQ635KIIPrinter.set_superscript()LQ635KIIPrinter.set_subscript()LQ635KIIPrinter.cancel_super_sub()LQ635KIIPrinter.set_print_mode()LQ635KIIPrinter.set_absolute_x()LQ635KIIPrinter.set_absolute_x_mm()LQ635KIIPrinter.move_y_relative()LQ635KIIPrinter.move_y_mm()LQ635KIIPrinter.set_absolute_y_mm()LQ635KIIPrinter.set_absolute_xy_mm()LQ635KIIPrinter.move_y_up()LQ635KIIPrinter.move_x_relative()LQ635KIIPrinter.set_absolute_y()LQ635KIIPrinter.set_character_table()LQ635KIIPrinter.set_italic_table()LQ635KIIPrinter.set_graphics_table()LQ635KIIPrinter.print_text()LQ635KIIPrinter.println()LQ635KIIPrinter.print_line()LQ635KIIPrinter.newline()LQ635KIIPrinter.print_graphics_8pin()LQ635KIIPrinter.print_graphics_24pin()LQ635KIIPrinter.redefine_graphics()LQ635KIIPrinter.set_horizontal_tabs()LQ635KIIPrinter.tab_horizontal()LQ635KIIPrinter.set_vertical_tabs()LQ635KIIPrinter.tab_vertical()LQ635KIIPrinter.set_vertical_tabs_channel()LQ635KIIPrinter.select_vfu_channel()LQ635KIIPrinter.print_barcode()
- certflow.services.printer.print_queue module
PrintQueueServicePrintQueueService.cancel_pending_by_certificate()PrintQueueService.enqueue()PrintQueueService.bulk_enqueue()PrintQueueService.get_next_pending()PrintQueueService.count_pending()PrintQueueService.get_job()PrintQueueService.mark_running()PrintQueueService.set_os_job_id()PrintQueueService.mark_paused()PrintQueueService.mark_done()PrintQueueService.mark_error()PrintQueueService.mark_cancelled()PrintQueueService.reorder_top()PrintQueueService.reorder_up()PrintQueueService.list_jobs()PrintQueueService.clear_finished()PrintQueueService.recover()
- certflow.services.printer.print_strategy module
- certflow.services.printer.printer_service module
PrinterServicePrinterService.CERT_FIELDSPrinterService.get_printer()PrinterService.last_os_job_idPrinterService.print_certificate()PrinterService.print_by_template()PrinterService.print_by_template_config()PrinterService.render_certificate_bytes()PrinterService.get_available_printers()PrinterService.get_default_printer()PrinterService.is_printer_ready()
- certflow.services.printer.template_field_formatter module
- certflow.services.printer.template_manager module
FieldPositionTemplateInfoTemplateManagerTemplateManager.get_all_templates()TemplateManager.get_template()TemplateManager.get_field_position()TemplateManager.get_field_x()TemplateManager.get_field_y()TemplateManager.get_field_width()TemplateManager.get_field_height()TemplateManager.get_field_font_size()TemplateManager.get_field_align()TemplateManager.get_background_path()TemplateManager.get_page_size()TemplateManager.list_templates()TemplateManager.list_enabled_templates()TemplateManager.print_template_info()TemplateManager.reload()
get_template_manager()
Module contents¶
LQ-635KII 打印机服务模块
专门为 EPSON LQ-635KII 24针点阵打印机设计 基于 ESC/P-K 命令集
- class certflow.services.printer.LQ635KIICommand[源代码]¶
基类:
objectLQ-635KII ESC/P-K 命令码常量
基于手册 P101 实际支持的命令
- ESC = b'\x1b'¶
- LF = b'\n'¶
- FF = b'\x0c'¶
- CR = b'\r'¶
- BEL = b'\x07'¶
- BS = b'\x08'¶
- CAN = b'\x18'¶
- DEL = b'\x7f'¶
- INIT = b'\x1b@'¶
- HOME = b'\x1b<'¶
- DC1 = b'\x11'¶
- DC3 = b'\x13'¶
- LINE_SPACING_1_8 = b'\x1b0'¶
- LINE_SPACING_1_6 = b'\x1b2'¶
- LINE_SPACING_N_180 = b'\x1b3'¶
- LINE_SPACING_N_60 = b'\x1bA'¶
- LINE_SPACING_N_360 = b'\x1b+'¶
- PAGE_LENGTH_INCH = b'\x1bC\x00'¶
- PAGE_LENGTH_LINES = b'\x1bC'¶
- PAGE_SKIP_PERF = b'\x1bN'¶
- PAGE_SKIP_OFF = b'\x1bO'¶
- LEFT_MARGIN = b'\x1bl'¶
- RIGHT_MARGIN = b'\x1bQ'¶
- ALIGN_LEFT = b'\x1ba\x00'¶
- ALIGN_CENTER = b'\x1ba\x01'¶
- ALIGN_RIGHT = b'\x1ba\x02'¶
- ALIGN_JUSTIFY = b'\x1ba\x03'¶
- HORIZONTAL_TAB = b'\t'¶
- SET_HORIZONTAL_TABS = b'\x1bD'¶
- ABSOLUTE_HORIZONTAL = b'\x1b$'¶
- RELATIVE_HORIZONTAL = b'\x1b\\'¶
- VERTICAL_TAB = b'\x0b'¶
- SET_VERTICAL_TABS = b'\x1bB'¶
- ABSOLUTE_VERTICAL = b'\x1b(V'¶
- RELATIVE_VERTICAL = b'\x1b(v'¶
- RELATIVE_VERTICAL_MOVE = b'\x1bJ'¶
- REVERSE_VERTICAL_MOVE = b'\x1bT'¶
- DRAFT_QUALITY = b'\x1bx\x00'¶
- LETTER_QUALITY = b'\x1bx\x01'¶
- PITCH_10CPI = b'\x1bP'¶
- PITCH_12CPI = b'\x1bM'¶
- PITCH_15CPI = b'\x1bg'¶
- PROPORTIONAL_ON = b'\x1bp\x01'¶
- PROPORTIONAL_OFF = b'\x1bp\x00'¶
- CHARACTER_SPACE = b'\x1b '¶
- CONDENSED_ON = b'\x0f'¶
- CONDENSED_OFF = b'\x12'¶
- DOUBLE_WIDTH_ON = b'\x1bW\x01'¶
- DOUBLE_WIDTH_OFF = b'\x1bW\x00'¶
- DOUBLE_HEIGHT_ON = b'\x1bw\x01'¶
- DOUBLE_HEIGHT_OFF = b'\x1bw\x00'¶
- FONT_ROMAN = b'\x1bk\x00'¶
- FONT_SANS_SERIF = b'\x1bk\x01'¶
- FONT_COURIER = b'\x1bk\x02'¶
- FONT_PRESTIGE = b'\x1bk\x03'¶
- FONT_SCRIPT = b'\x1bk\x04'¶
- SUPERSCRIPT = b'\x1bS\x00'¶
- SUBSCRIPT = b'\x1bS\x01'¶
- SUPERSUB_OFF = b'\x1bT'¶
- UNDERLINE_ON = b'\x1b-\x01'¶
- UNDERLINE_OFF = b'\x1b-\x00'¶
- ITALIC_ON = b'\x1b4'¶
- ITALIC_OFF = b'\x1b5'¶
- BOLD_ON = b'\x1bE'¶
- BOLD_OFF = b'\x1bF'¶
- DOUBLE_STRIKE_ON = b'\x1bG'¶
- DOUBLE_STRIKE_OFF = b'\x1bH'¶
- PRINT_MODE = b'\x1b!'¶
- GRAPHICS_8PIN_SINGLE = b'\x1bK'¶
- GRAPHICS_8PIN_DOUBLE = b'\x1bL'¶
- GRAPHICS_8PIN_HS_DOUBLE = b'\x1bY'¶
- GRAPHICS_8PIN_QUAD = b'\x1bZ'¶
- GRAPHICS_24PIN_SINGLE = b'\x1b* '¶
- GRAPHICS_24PIN_DOUBLE = b'\x1b*!'¶
- GRAPHICS_24PIN_CRT = b'\x1b*&'¶
- GRAPHICS_24PIN_TRIPLE = b"\x1b*'"¶
- GRAPHICS_24PIN_HEX = b'\x1b*('¶
- REDEFINE_GRAPHICS = b'\x1b?'¶
- GRAPHICS_COMPRESS = b'\x1b(G'¶
- GRAPHICS_DATA = b'\x1b(K'¶
- CHARACTER_TABLE_ITALIC = b'\x1bt\x00'¶
- CHARACTER_TABLE_GRAPHICS = b'\x1bt\x01'¶
- CHARACTER_TABLE_DOWNLOAD = b'\x1bt\x02'¶
- DOWNLOAD_CHAR = b'\x1b&'¶
- COPY_ROM_TO_RAM = b'\x1b:\x00\x00\x00'¶
- USE_DOWNLOAD = b'\x1b%'¶
- SINGLE_LINE_WIDTH = b'\x0e'¶
- SINGLE_LINE_WIDTH_OFF = b'\x14'¶
- SET_VERTICAL_TABS_CHANNEL = b'\x1bb'¶
- SELECT_VFU_CHANNEL = b'\x1b/'¶
- TOP_MARGIN = b'\x1b(U'¶
- PAGE_FORMAT = b'\x1b(c'¶
- PAGE_LENGTH_EXT = b'\x1b(C'¶
- class certflow.services.printer.Align(*values)[源代码]¶
基类:
IntEnum对齐方式
- LEFT = 0¶
- CENTER = 1¶
- RIGHT = 2¶
- JUSTIFY = 3¶
- class certflow.services.printer.Font(*values)[源代码]¶
基类:
IntEnum西文字体
- ROMAN = 0¶
- SANS_SERIF = 1¶
- COURIER = 2¶
- PRESTIGE = 3¶
- SCRIPT = 4¶
- class certflow.services.printer.PaperSize(width_mm, height_mm, name='')[源代码]¶
基类:
object纸张尺寸
- width_mm¶
纸张宽度 (毫米)
- height_mm¶
纸张高度 (毫米)
- name¶
纸张名称
- class certflow.services.printer.PrinterDPI(*values)[源代码]¶
基类:
IntEnum打印机分辨率
- DPI_60 = 60¶
- DPI_90 = 90¶
- DPI_120 = 120¶
- DPI_180 = 180¶
- DPI_240 = 240¶
- DPI_360 = 360¶
- class certflow.services.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
- class certflow.services.printer.PrinterService(printer_name=None)[源代码]¶
基类:
objectLQ-635KII 打印机服务
提供合格证打印等高级功能
- 参数:
printer_name (str | None)
- CERT_FIELDS = [('product_name', '产品名称:', 1), ('product_model', '产品型号:', 2), ('dn', '公称通径:', 3), ('pn', '公称压力:', 4), ('temperature', '工作温度:', 5), ('medium', '适用介质:', 6), ('check_standard', '检验标准:', 7), ('inspector_id', '检验工号:', 8), ('manufacture_date', '出厂日期:', 9), ('serial_number', '产品编号:', 10)]¶
- property last_os_job_id: int | None¶
最近一次打印提交的 OS 作业 ID(由
LQ635KIIPrinter._flush捕获)。用于打印队列的 OS 级取消 / 状态查询(BLUEPRINT §2.3 偏差 5 作业 ID 捕获链路)。每次新打印前由
_flush覆盖,无 win32print(headless) 时为None。
- print_certificate(data, copies=1)[源代码]¶
简单文本模式打印(备用方案)
精确定位请使用 print_by_template_config(读 coordinates.yaml,单一坐标源) 使用文本模式打印,LQ-635KII 自动处理中文
- print_by_template(template_key, data, copies=1, x_offsets=None)[源代码]¶
根据模板打印合格证
使用 coordinates.yaml 中定义的模板坐标进行精确定位打印。
- print_by_template_config(config, data, copies=1, x_offsets=None)[源代码]¶
根据 RuntimePrintConfig 打印合格证
使用 RuntimePrintConfig.template.fields 中定义的坐标进行精确定位打印。 相比 print_by_template(),不再依赖 TemplateManager,直接使用 RuntimePrintConfig。
- render_certificate_bytes(config, data, copies=1, x_offsets=None)[源代码]¶
渲染合格证为 ESC/P-K 原始字节流(不发送到打印机)。
与
print_by_template_config()共用同一套命令构建逻辑,但刻意 不调用open()/flush(),因此无需真实打印机、不会真正出纸, 可直接拿到「即将发送给打印机的完整字节」,供调试落盘 / 十六进制分析。