|
|
@@ -1,173 +0,0 @@
|
|
|
-/////////////////////////////////////////////////////////////////////////////////
|
|
|
-/// Copyright (c) 2013 China Merchants Bank, all rights reserved ///
|
|
|
-/// Adapter Interface for Printer. ///
|
|
|
-/// ///
|
|
|
-/// ///
|
|
|
-/////////////////////////////////////////////////////////////////////////////////
|
|
|
-#ifndef __THERMAL_PRINT_CLASS_H
|
|
|
-#define __THERMAL_PRINT_CLASS_H
|
|
|
-#pragma once
|
|
|
-
|
|
|
-#include "DeviceBaseClass.h"
|
|
|
-
|
|
|
-
|
|
|
-//the paper state of printer
|
|
|
-enum ThermalPaperState
|
|
|
-{
|
|
|
- PAPER_FULL=0, //纸量充足
|
|
|
- PAPER_LOW, //少纸,纸将尽
|
|
|
- PAPER_EMPTY, //缺纸
|
|
|
- PAPER_JAMMED //卡纸
|
|
|
-};
|
|
|
-
|
|
|
-enum ThermalHardwareState
|
|
|
-{
|
|
|
- STATE_OK=0, //状态正常
|
|
|
- STATE_OTHER_ERROR //其他硬件错误(如切刀错,上盖打开) 具体原因写入DevErrorInfo
|
|
|
- //to be added
|
|
|
-};
|
|
|
-//state of printer
|
|
|
-struct ThermalState
|
|
|
-{
|
|
|
- ThermalPaperState paperState;
|
|
|
- ThermalHardwareState hardwareState;
|
|
|
- //to be added
|
|
|
-};
|
|
|
-
|
|
|
-
|
|
|
-enum PrintAction
|
|
|
-{
|
|
|
- ACTION_PRINT_ONE_LINE =0,//打印走纸一行
|
|
|
- ACTION_PRINT_MOVEFORWRAD_LINES,//打印并走纸n行(单位:字符行)
|
|
|
- ACTION_PRINT_MOVEBACKWRAD_LINES,//回纸n行(单位:字符行)
|
|
|
- ACTION_CUT_ALL,//全切纸
|
|
|
- ACTION_CUT_HALF,//半切纸
|
|
|
- ACTION_MOVE_TO_POSITION_RELATIVE,//把打印光标移动相对当前位置一段距离(横向),单位mm
|
|
|
- ACTION_MOVE_TO_FORWRAD_LENGTH,//移动向前走纸一段距离(距离包括本行高度在内) 单位:mm
|
|
|
- ACTION_MOVE_TO_BLACKMARK,//移动到黑标位置,把打印位置设置在行首(标记纸有效)
|
|
|
- ACTION_PRINT_MOVEBACK_TO_LINE//设置起始位置在行首,取值(0:打印内容返回行首,1:清空要打印的内容返回行首)
|
|
|
- //to be added
|
|
|
-};
|
|
|
-
|
|
|
-enum CommandType{
|
|
|
- COMMON_ROW_SPACE=0,//行间距 单位mm
|
|
|
- COMMON_ALIGN, //字符对齐模式 单位是"AlignStyle"的值
|
|
|
- COMMON_REVERSE,//颠倒打印(注意需要设置退出或者切纸才行,并在行首) 取值(0:正常打印 1:颠倒打印)
|
|
|
- COMMON_LEFT_MARGIN,//左边距 单位mm
|
|
|
- COMMON_PRINTABLE_AREA//可打印区域 单位mm
|
|
|
- //to be added
|
|
|
-};
|
|
|
-
|
|
|
-enum FontStyle
|
|
|
-{
|
|
|
- FONT_UNDERLINE = 0,//下划线 取值(0:否 1:是)
|
|
|
- FONT_BOLD,//粗体 取值(0:否 1:是)
|
|
|
- FONT_INVERSE, //反白 取值(0:否 1:是)
|
|
|
- FONT_DOUBLEHEIGHT,//纵翻倍放大 取值(0:否 1:是)
|
|
|
- FONT_DOUBLEWIDE,//横翻倍向放大 取值(0:否 1:是)
|
|
|
- FONT_CUSTOM_SIZE,//字体宽高自定义,取值(宽 {1..6} ,长 {1..6})
|
|
|
- FONT_ROTATE,//字体旋转 取值(0,90,180,270)
|
|
|
- FONT_LEFT_RIGHT_SPACE//字符左右边距设置 单位mm 取值(左边距 {0..36},右边距 {0..36})
|
|
|
- //to be added
|
|
|
-};
|
|
|
-
|
|
|
-
|
|
|
-enum AlignStyle
|
|
|
-{
|
|
|
- ALIGN_LEFT=0,
|
|
|
- ALIGN_MIDDLE,
|
|
|
- ALIGN_RIGHT
|
|
|
-};
|
|
|
-
|
|
|
-enum BarCodeType{
|
|
|
- CONTENT_BARCODE_UPC_A =0,
|
|
|
- CONTENT_BARCODE_UPC_E,
|
|
|
- CONTENT_BARCODE_EAN8,
|
|
|
- CONTENT_BARCODE_EAN13,
|
|
|
- CONTENT_BARCODE_39,
|
|
|
- CONTENT_BARCODE_128
|
|
|
- //to be added...
|
|
|
-};
|
|
|
-
|
|
|
-enum QRCodeType{
|
|
|
- CONTENT_TWODIM_QRCODE=0,
|
|
|
- CONTENT_TWODIM_PDF417
|
|
|
- //to be added...
|
|
|
-};
|
|
|
-
|
|
|
-enum HriPosition{
|
|
|
- HRI_POSITION_NONE =0,
|
|
|
- HRI_POSITION_ABOVE,
|
|
|
- HRI_POSITION_BELOW,
|
|
|
- HRI_POSITION_BOTH
|
|
|
-};
|
|
|
-enum ThermalPaperType{
|
|
|
- PAPER_CONTINUOUS=0,//连续纸
|
|
|
- PAPER_LABEL //标记纸
|
|
|
-};
|
|
|
-
|
|
|
-
|
|
|
-class ThermalPrintClass : public DeviceBaseClass
|
|
|
-{
|
|
|
-public:
|
|
|
-
|
|
|
- // 打开打印机
|
|
|
- virtual ErrorCodeEnum DevOpen(BYTE btPort,DWORD dwBaudRate) = 0;
|
|
|
-
|
|
|
- // 获取打印机实时状态
|
|
|
- virtual ErrorCodeEnum GetDevState(ThermalState &devState) = 0;
|
|
|
-
|
|
|
- //开始打印初始设置:paperWidth一般为80mm和57mm
|
|
|
- virtual ErrorCodeEnum BeginPrint(ThermalPaperType eType,int paperWidth)=0;
|
|
|
-
|
|
|
- //打印控制指令函数:主要是打印,切纸和控制打印光标指令函数
|
|
|
- //第三个参数是预留参数 暂时无用到
|
|
|
- virtual ErrorCodeEnum ControlAction(PrintAction eAction,DWORD dwValue1,DWORD dwValue2=0) = 0;
|
|
|
-
|
|
|
- //打印参数指令函数:
|
|
|
- //第三个参数是预留参数 暂时无用到
|
|
|
- virtual ErrorCodeEnum SetParam(CommandType eType,DWORD dwValue1,DWORD dwValue2=0) = 0;
|
|
|
-
|
|
|
- //打印字体指令函数:主要是字体相关饿指令函数
|
|
|
- //第三个参数是预留参数 设置FONT_CUSTOM_SIZE用到,dwValue1表示宽,dwValue2表示长
|
|
|
- // 设置FONT_LEFT_RIGHT_SPACE用到 dwValue1表示左边距 dwValue2表示右边距
|
|
|
- virtual ErrorCodeEnum SetFont(FontStyle eType,DWORD dwValue1,DWORD dwValue2=0) = 0;
|
|
|
-
|
|
|
- //打印文本数据函数
|
|
|
- virtual ErrorCodeEnum PrintText(BYTE *pData,DWORD dwDataLen)=0;
|
|
|
-
|
|
|
- //打印条形码函数
|
|
|
- //dwUnitWidth 条形码基本模块宽度 取值{2..6} 默认2
|
|
|
- //dwHeight 条形码高度 单位mm
|
|
|
- //iHRIPosition hri字符打印位置 见枚举类型HriPosition
|
|
|
- virtual ErrorCodeEnum PrintBarCode(BarCodeType eType, BYTE *pData,DWORD dwDataLen,DWORD dwUnitWidth,DWORD dwHeight,HriPosition eHRIPosition)=0;
|
|
|
-
|
|
|
- //打印二维码QRCode函数
|
|
|
- //dwUnitWidth 二维码基本元素宽度 取值{1..255} 默认3
|
|
|
- virtual ErrorCodeEnum PrintQRCode(BYTE *pData,DWORD dwDataLen,DWORD dwUnitWidth)=0;
|
|
|
-
|
|
|
- //打印二维码QRCode函数
|
|
|
- //dwWidth 二维码长度 ,单位mm
|
|
|
- virtual ErrorCodeEnum PrintQRCodeByArea(BYTE *pData,DWORD dwDataLen,DWORD dwUnitWidth,DWORD dwWidth)=0;
|
|
|
-
|
|
|
- //打印二维码PDF417函数
|
|
|
- //errorLevel pdf417纠错级别 取值{0..8}
|
|
|
- //dwUnitWidth 基本元素宽度 取值{3..90}
|
|
|
- //dwUnitHeight 基本元素长度 取值{1..30}
|
|
|
- //row pdf417 行数 取值{1..7}
|
|
|
- //lines pdf417 列数 取值{2..25}
|
|
|
- virtual ErrorCodeEnum PrintPDF417code(BYTE *pData,DWORD dwDataLen,int errorLevel,DWORD dwUnitWidth,DWORD dwUnitHeight,int rows,int lines)=0;
|
|
|
-
|
|
|
- //打印二维码PDF417函数
|
|
|
- //errorLevel pdf417纠错级别 取值{0..8}
|
|
|
- //dwWidth pdf417宽度 单位mm
|
|
|
- //dwHeight pdf417长度 单位mm
|
|
|
- virtual ErrorCodeEnum PrintPDF417codeByArea(BYTE *pData,DWORD dwDataLen,int errorLevel,DWORD dwWidth,DWORD dwHeight)=0;
|
|
|
-
|
|
|
- //打印图像函数:pData是base64编码的数据
|
|
|
- virtual ErrorCodeEnum PrintImage(BYTE *pData,DWORD dwDataLen)=0;
|
|
|
-
|
|
|
- //获取打印失败后错误信息和错误状态
|
|
|
- virtual ErrorCodeEnum GetLastErrState(ThermalState &devState , DevErrorInfo &devErrInfo) = 0;
|
|
|
-};
|
|
|
-#endif //__THERMAL_PRINT_CLASS_H
|