Commit 95e4ee47 by 李定达

1.字符串打印切换为手动换行模式

parent 12dfc56f
......@@ -13,3 +13,7 @@ fmposdll.vcxproj.user
*.lastbuildstate
*.manifest
*.sbr
*.zip
*.exe
*.lib
Release/
......@@ -1237,6 +1237,10 @@ bool _ChoosePort()
if (g_hComm != INVALID_HANDLE_VALUE) //判断打开端口函数返回值
{
VC_Log_WriteLog(1,"%s","端口打开成功");
//int a = VC_POS_Reset();
//VC_Log_WriteLog(1,"%s : %d","重置打印机", a);
return 1 ;
}
else
......@@ -1831,7 +1835,7 @@ void GetProfilePath(char *CONFIGFILE)
ptrlen = ptr-path;
memcpy(&path[ptrlen+1], "printer.ini", 12);
path[ptrlen+12] = 0;
strcpy_s(CONFIGFILE,(size_t)strlen(CONFIGFILE), path);
strcpy(CONFIGFILE, path);
printf("配置文件路径: %s\n", CONFIGFILE);
}
......@@ -1914,6 +1918,57 @@ int GetFout(int x, int *index, int font_size, double font_ratio, const char *dat
return 1;
}
int GetPrtFout(int x, int *index, int font_size, double font_ratio, const char *data, char *tmpdata)
{
int i = *index;
int len = strlen(data);
if(*index >= len)
return 0;
if(font_ratio*font_size > m_printclass.m_PrintSize*1.0)
{
*index = len;
strcpy(tmpdata, data);
return 1;
}
if(font_ratio*font_size*2 > m_printclass.m_PrintSize*1.0)
{
*index = len;
strcpy(tmpdata, data);
return 1;
}
double currlen = 0;
while(i < len)
{
if(i != *index && currlen > m_printclass.m_PrintSize - font_size * font_ratio - 10)
{
memcpy(tmpdata, data + *index, i - *index);
*index = i;
return 1;
}
if(data[i] < 0)
{
i += 2;
currlen += font_size * 2 * font_ratio;
continue;
}
else
{
currlen += font_size * font_ratio*1.0;
++ i;
}
}
memcpy(tmpdata, data + (*index), len - (*index));
*index = len;
return 1;
}
int WinPrintlnTsc(int x, int y, int font_size, int rotate, int font_type, int high_len, int line, const char *font_name, const char *data, double font_ratio)
{
if(font_ratio == 0)
......@@ -2279,6 +2334,48 @@ void deletelog(int nDays)
}
}
//bool _PrintLine(char data[], int fontType,int fontStyle ,int width,int height)
//{
// int length = 0;
// length = strlen(data);
// VC_Log_WriteLog(1,"接受到的数据是: %s",data);
// VC_Log_WriteLog(1,"长度是: %d%d%d%d%d",length, fontType, fontStyle , width, height);
// if(m_first)
// {
// VC_Log_WriteLog(1,"开始 %s","打印");
// int nRet = VC_POS_SetMotionUnit(0, 0);
// if(POS_SUCCESS != nRet)
// {
// return false;
// }
// VC_POS_SetMode(POS_PRINT_MODE_STANDARD);
// VC_POS_SetRightSpacing(0);
// VC_POS_SetLineSpacing(0);
// m_first = false;
// }
// int linefms = LENTH_FMS_80;
// int tmplines = 120;
// if(m_printclass.m_PrintSize==80)
// {
// linefms = LENTH_FMS_56;
// tmplines = 100;
// }
// //char lineData[1024]={'\0'};
// //strncpy_s(lineData,sizeof(lineData), data, length);
// VC_POS_S_SetAlignMode(0);
// //VC_POS_S_SetAreaWidth(400);
// //VC_POS_S_SetAreaWidth(0);
//
// //VC_Log_WriteLog(1,"打印宽度 %d; 打印纸宽度 %d", m_printclass.m_PrintSize*9 - tmplines, m_printclass.m_PrintSize);
//
// //VC_POS_S_TextOut(data, 10+LENTH_FMS+linefms, width, height, fontType,fontStyle);
// VC_POS_S_TextOut(data, 0, width, height, fontType,fontStyle);
//
// VC_POS_FeedLine();
//
// return true;
//}
bool _PrintLine(char data[], int fontType,int fontStyle ,int width,int height)
{
int length = 0;
......@@ -2303,12 +2400,20 @@ bool _PrintLine(char data[], int fontType,int fontStyle ,int width,int height)
{
linefms = LENTH_FMS_56;
}
//char lineData[1024]={'\0'};
//strncpy_s(lineData,sizeof(lineData), data, length);
VC_POS_S_SetAlignMode(0);
VC_POS_S_TextOut(data, 10+LENTH_FMS+linefms, width, height, fontType,fontStyle);
VC_POS_FeedLine();
int index = 0;
char tmp[256] = {0};
int tmpi = 0;
while(GetPrtFout(10, &index, 1, 1.714285, data, tmp))
{
VC_POS_S_TextOut(tmp, 10+LENTH_FMS+linefms, width, height, fontType, fontStyle);
VC_POS_FeedLine();
memset(tmp, 0, 256);
}
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment