方法说明:
1.s2w(string &content, int length):将string类型的变量转换为wchar_t*类型,用于调用TextOut()方法时传参,其中length为需要转换的string的长度;
2.printTicket():打印主方法,在该方法内,我直接打印了一个strign,如果要打印很多的内容,需要组装一个string的数组,然后循环打印每一行。其中可以更改LOGFONT的属性来调节字体,左边距和上边距也可以在TextOut方法中赋不同的值来调节。
/**
* 功能描述: 将string 转换为wchar_t*
* @param string
* @param int
* @return wchar_t*
*/
wchar_t* s2w(string &content, int length)
{
const char *str = content.c_str();
length = strlen(str) + 1;
wchar_t *t = (wchar_t*)malloc(sizeof(wchar_t)*length);
memset(t, 0, length*sizeof(wchar_t));
MultiByteToWideChar(CP_ACP, 0, str, strlen(str), t, length);
return t;
}
/**
* 功能描述: 调用win32 API实现驱动打印
* @return bool
*/
bool printTicket()
{
//定义一个设备环境句柄
HDC hdcprint;
//定义一个打印作业
static DOCINFO di = { sizeof(DOCINFO), (LPTSTR)TEXT("printer"), NULL };
//打印机名称
st