| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- // Scan5180.h: interface for the Scan5180 class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(_ReceiptBase_SUNEW_20170608_INCLUDED_)
- #define _ReceiptBase_SUNEW_20170608_INCLUDED_
- #include "cmb.h"
- //成功,正常
- #define RECEIPT_SUCCESS 0
- //错误状态
- #define RECEIPT_ERR_NO_FOND -1 //设备未找到
- #define RECEIPT_ERR_NO_OPEN -2 //设备未打开
- #define RECEIPT_ERR_RCV_ERR -3 //数据接收错误
- #define RECEIPT_ERR_IN_ERR -4 //输入参数错误
- #define RECEIPT_ERR_DEV_ERR -5 //设备硬件故障
- //警告类状态
- #define RECEIPT_WARN_NO_MEDIA -6 //缺纸
- #define RECEIPT_WARN_HEAD_UP -7 //机头抬起
- #define RECEIPT_WARN_JAMMED -8 //卡纸
- #define RECEIPT_WARN_PAP_LOW 1 //纸少
- #ifndef _WIN32
- #pragma pack(1)
- typedef struct tagBITMAPFILEHEADER {
- UINT16 bfType;
- UINT32 bfSize;
- UINT16 bfReserved1;
- UINT16 bfReserved2;
- UINT32 bfOffBits;
- } BITMAPFILEHEADER;
- typedef struct tagBITMAPINFOHEADER{
- UINT32 biSize;
- INT32 biWidth;
- INT32 biHeight;
- UINT16 biPlanes;
- UINT16 biBitCount;
- UINT32 biCompression;
- UINT32 biSizeImage;
- INT32 biXPelsPerMeter;
- INT32 biYPelsPerMeter;
- UINT32 biClrUsed;
- UINT32 biClrImportant;
- } BITMAPINFOHEADER;
- #pragma pack()
- #endif
- class ReceiptBase
- {
- public:
- ReceiptBase();
- virtual ~ReceiptBase();
- protected:
- SUsb m_cSerial;
- int m_iLetSpace; //左边空格
- int m_iLineHeight; //行高度:点
- int m_iLineLeng; //每行字符数
- int m_iUsedLeng; //已打印纸张长度
- int m_iMinPaper; //切纸最短长度
- int m_iLastPos; //上次打印一行内结束位置
- int m_iMMPerSec; //打印速度,毫米每秒,延时用
- int m_iLinesPrted; //已打印行数,每20行做一次延时
- public:
- //打印高速20,中速10,低速 00
- virtual int SetPrintSpeed(short nSpeed);
- //凭条打印机 初始化
- virtual int Init();
- public:
- //凭条打印机 判断端口打开
- bool Isopen();
- //凭条打印机 打开端口
- int Open(const int iVID, const int iPID, const int iFD = 0);
- //打印机 关闭端口
- int Close();
- int GetState();
- //最少纸长度,部分打印机出纸口限制,太短无法出来
- int SetMinLen(int iLen){m_iMinPaper = iLen;};
- //设置打印机基本参数(如不设置则使用默认值)每行字符数,左空白字符数,打印速度(无流控延时用)
- void SetLinePara(int iLineLeng, int iLeftSpace, int iSpeed);
- //设置左边距,单位为点(0.125mm)
- int SetLeftDistance(int iLeft);
- //设置打印区域
- int SetPrintArea(int iLeng);
- //设置行高,单位为点(0.125mm)
- int SetRowDistance(int iH);
- //设置字符间隔,单位为点(0.125mm)
- int SetCharSpace(char iLeft, char iRight);
- //DH 倍高 DW倍宽 DD黑体 UL下划线 XT斜体
- int SetFont(bool bDH, bool bDW, bool bDD, bool bUL, bool bCharB);
- //nAlign 0左对齐 ,1居中, 2右对齐
- int SetAlign(short nAlign);
- //设置打印放大倍数(1-6)
- int SetScale(int iX, int iY);
- //横向移动
- int MoveX(int iX);
- //设置黑白反显打印模式
- int SetInverse(bool b);
- //选择/取消顺时针旋转90度
- int SetRotate(bool b);
- //是否黑标纸
- int SetBlackFlag(bool b);
- //设置黑标位置
- int SetBlackPos(int i);
- //获取固件版本
- int GetFirmware(char* s);
- //打印不自动添加换行
- int SendHexStr(const char *sData, int iDataLen = 0);
- //打印不自动添加换行
- int PrintData(const char *sData);
- //打印数据并自动添加换行
- int PrintLine(const char* sLine);
- int PrintChar(char ch, int iCount);
- //走纸n行
- int FeedLines(int iLines);
- //走纸1点,iMode 0向前,1后退,单位为点(0.125mm)
- int FeedPaper(short iMode, short iDistance);
- // ctype 0 UPC-A(11-12) 1 UPC-E(11-12) 2 JAN13,EAN13(12-13)
- // 3 JAN8,EAN8(7-8) 4 CODE39(1-255) 5 ITF(1-255偶)
- // 6 CODABAR(1-255) 7 CODE93(1-255) 8 CODE128(1-255)
- // iBytePos 0不打印HRI字符 1条码上方打印 2条码下方打印 3条码上下方打印
- int PrinterCode(const char* cdata,UINT ctype,
- UINT iBytePos,UINT BarCodeWidth,UINT BarCodeHeight,bool bCharB);
- int Cut(int iMode); //0:全切 1:半切
- //功能:将单色 bmp 图像数据下载到硬件
- int PrintMemBmp(const char *sData, bool bBASE64);
- //sData文件名或者BASE64数据 返回图片高度,失败返回负值
- int DownloadNVBmp(const char *sData,bool bBASE64);
- int PrintNVBmp(bool bDH, bool bDW);
- protected:
- //凭条发送命令,超时时间为毫秒
- int SendData(const unsigned char *sSend,int iDatLen,int iTimeout=300);
- int ReadData(unsigned char *sRead,int iWant,int iTimeout);
- /* 凭条打印机 获取状态 */
- int ReadStateData(short nNum,char * buf);
- int ReadStateData(char * sCmd1, char* sCmd2, char * sCmd3, char * sCmd4);
- virtual int GetStateData(const char* sCmd1, const char* sCmd2, const char* sCmd3, const char* sCmd4);
- int m_iNVHeight;
- protected:
- int Bit24ToBit1(const unsigned char* sInData, int iWidth, int iHigh, unsigned char** psOutData);
- int Bit1ToPrint(unsigned char* sInData, int iWidth, int iHigh, BOOL bRotate, unsigned char** psOutData);
- short GetBinBuf(short val,char *buf);
- short ByteToBytes(short value,char *buf);
- int GetBmpData(const char *sData,bool bBASE64,unsigned char** psOut,int* iPrintW, int* iPrintH, BOOL bChgPrt);
- };
- #endif // !defined(_ReceiptBase_SUNEW_20170608_INCLUDED_)
|