ESign

>w## Notice > * please include the header file "mmi_esignature.h" when you need to get esign data `#include "mmi_esignature.h"` >i## mmi_eSign_InnerSign ### Prototype `int mmi_eSign_InnerSign(unsigned char *pCode, unsigned int iCodeLen, int timeout);` ### Function * Draw the signature data on the screen ### Parameter |Name|Type|description| |-|-|-| |pCode|unsigned char *|condition code| |iCodeLen|unsigned int|condition code len| |timeout|int|timeout| ### Retval |Value|Type|Description| |-|-|-| |=0|int|success| |<0|int|fail| >i## mmi_eSign_CompressImage ### Prototype `int mmi_eSign_CompressImage(const char *pDstFileName,unsigned char* pOutData,unsigned int* pOutLen);` ### Function * Compress the signature data to file ### Parameter |Name|Type|description| |-|-|-| |pDstFileName|const char *| file name| |pOutData|unsigned char*| Compress data| |pOutLen|unsigned int*|Compress data len| ### Retval |Value|Type|Description| |-|-|-| |=0|int|success| |<0|int|fail| >i## mmi_eSign_CompressData ### Prototype `int mmi_eSign_CompressData(unsigned char* pOutData,unsigned int* pOutLen);` ### Function * Compress the signature data ### Parameter |Name|Type|description| |-|-|-| |pOutData|unsigned char*| Compress data| |pOutLen|unsigned int*|Compress data len| ### Retval |Value|Type|Description| |-|-|-| |=0|int|success| |<0|int|fail| >i## mmi_eSign_UnCompressImage ### Prototype `int mmi_eSign_UnCompressImage(const char *pSrcFileName,unsigned char*pOutBuff,unsigned int* pOutLen);` ### Function * UnCompress the signature file ### Parameter |Name|Type|description| |-|-|-| |pSrcFileName|const char *| file name| |pOutBuff|unsigned char*|unCompress data| |pOutLen|unsigned int*|unCompress data len| ### Retval |Value|Type|Description| |-|-|-| |=0|int|success| |<0|int|fail| >i## mmi_eSign_UnCompressData ### Prototype `int mmi_eSign_UnCompressData(unsigned char *pInData,unsigned int uiInLen,unsigned char*pOutBuff,unsigned int* pOutLen);` ### Function * UnCompress the signature data ### Parameter |Name|Type|description| |-|-|-| |pInData|unsigned char *|unCompress data| |uiInLen|unsigned int |unCompress data len| |pOutBuff|unsigned char*|unCompress out data| |pOutLen|unsigned int*|unCompress out len| ### Retval |Value|Type|Description| |-|-|-| |=0|int|success| |<0|int|fail| >s## Example ``` #define ESIGN_BUFF_LEN (1024*5) #define ESIGN_JPG_BUFF_LEN (2500) int esign_demo(void) { int iRet = SUCCESS; char acDisp[128] = {0}; unsigned char *pEsignjpgData = NULL; unsigned char *pEsignBmpData = NULL; unsigned int uiEsignJpgDataLen = 0; unsigned int uiEsignBmpDataLen = 0; ts_printer_para stPrinterPara; pEsignjpgData = malloc(ESIGN_JPG_BUFF_LEN); if(NULL == pEsignjpgData) { strcpy(acDisp,"esgin jpg buff malloc fail!"); goto ERR; } pEsignBmpData = malloc(ESIGN_BUFF_LEN); if(NULL == pEsignBmpData) { strcpy(acDisp,"esgin bmp buff malloc fail!"); goto ERR; } memset(pEsignjpgData, 0, ESIGN_JPG_BUFF_LEN); memset(pEsignBmpData, 0, ESIGN_BUFF_LEN); mmi_clearLine(DISP_ClearALL); mmi_display(DISP_Line1, DISP_HCenter, "sign in screen box"); iRet = mmi_eSign_InnerSign("12345678", 8, 60); if (SUCCESS != iRet) { sprintf(acDisp, "inner sign return:%d", iRet); goto ERR; } iRet = mmi_eSign_CompressData(pEsignjpgData,&uiEsignJpgDataLen); if (SUCCESS != iRet) { sprintf(acDisp, "esign compress data return:%d", iRet); goto ERR; } iRet = mmi_eSign_UnCompressData(pEsignjpgData, uiEsignJpgDataLen, pEsignBmpData, &uiEsignBmpDataLen); if (SUCCESS != iRet) { sprintf(acDisp, "esign UnCompressData data return:%d", iRet); goto ERR; } iRet = printer_check(); if (PRINTER_RET_OK != iRet) { sprintf(acDisp, "printer_check fail return:%d", iRet); goto ERR; } iRet = printer_open(); if (PRINTER_RET_OK != iRet) { sprintf(acDisp, "printer_open fail return:%d", iRet); goto ERR; } memset(&stPrinterPara, 0, sizeof(ts_printer_para)); iRet = printer_clear(); if (PRINTER_RET_OK != iRet) { sprintf(acDisp, "printer_clear fail return:%d", iRet); goto ERR; } iRet = printer_get_para(&stPrinterPara); if (PRINTER_RET_OK != iRet) { sprintf(acDisp, "printer_get_para fail return:%d", iRet); goto ERR; } iRet = printer_add_bmp_with_param(&stPrinterPara, (char*)pEsignBmpData, uiEsignBmpDataLen, 0); if (PRINTER_RET_OK != iRet) { sprintf(acDisp, "printer_add_bmp_path_with_param fail return:%d", iRet); goto ERR; } iRet = printer_print(); if (iRet != PRINTER_RET_OK) { sprintf(acDisp, "printer_print fail return:%d", iRet); goto ERR; } printer_feed(32 * 3); printer_close(); ERR: if (strlen(acDisp) > 0) { mmi_clearLine(DISP_ClearALL); mmi_display(DISP_VCenter, DISP_HCenter, acDisp); mmi_inputWaitKeypress(3); } if (NULL != pEsignjpgData) { free(pEsignjpgData); } if (NULL != pEsignBmpData) { free(pEsignBmpData); } return iRet; } ```