条码打印机无法打印,而普通打印机可以打印,请问为何
现在的碰到的问题是,在普通打印机能够打印,而在斑马打印机(专门打印条形码)上无法打印,代码如下,请高手指点!
急急啊,搞了两天了
HDC hDC=CreateDC(NULL,m_strPrinter,NULL,NULL); //m_strPrinter打印机路径
if (!hDC)
{
MessageBox("NULL","提示",MB_OK|MB_ICONINFORMATION);
return;
}
DOCINFO diPrint;
CDC prtDC;
// Retrieve printer port
memset(&diPrint, 0, sizeof(DOCINFO));
diPrint.cbSize = sizeof(DOCINFO);
diPrint.lpszDocName = "标签打印";
// Attach to printer's dc
prtDC.Attach( hDC );
prtDC.m_bPrinting = TRUE;
if ( prtDC.StartDoc(&diPrint) == -1 )
{
AfxMessageBox("print error");
prtDC.Detach();
return;
}
// Start to print content
prtDC.StartPage();
//打印输出最好使用物理坐标,而不是设备坐标,因为不同的打印机DPI不同
prtDC.SetMapMode(MM_LOMETRIC); // set map mode to 0.1mm
prtDC.SetTextAlign(TA_TOP|TA_LEFT);
int xDPI=GetDeviceCaps(prtDC.m_hDC,LOGPIXELSX);
int yDPI=GetDeviceCaps(prtDC.m_hDC,LOGPIXELSY);
double xOff=(double)GetDeviceCaps(prtDC.m_hDC,PHYSICALOFFSETX);
xOff=xOff/(double)xDPI;
double yOff=(double)GetDeviceCaps(prtDC.m_hDC,PHYSICALOFFSETY);
yOff=yOff/(double)yDPI;
double paperWidth=GetDeviceCaps(prtDC.m_hDC,PHYSICALWIDTH);
paperWidth=(int)(paperWidth/xDPI);
double paperHeight=GetDeviceCaps(prtDC.m_hDC,PHYSICALHEIGHT);
paperHeight=(int)(paperHeight/yDPI);
double inch=2.54;//英寸转化到厘米
double ptX,ptY;
double ptWidth,ptHeight;
//打字
CFont font;
CFont* pOldFont;
font.CreateFont(-27, 0,0,0, FW_BOLD, 0,0,0, DEFAULT_CHARSET,
OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, PROOF_QUALITY,
DEFAULT_PITCH | FF_DONTCARE, "Arial");//1.5mm=1.5*10=15 points
CEdit *pedit1 = (CEdit*)GetDlgItem(IDC_EDIT7);
CString strtemp;
pedit1->GetWindowText(strtemp);
ptX = 0.65;
ptY = 0.0;//2.90-0.3;
ptX -=xOff;
ptY -=yOff;
pOldFont=prtDC.SelectObject(&font);
prtDC.TextOut((long)(ptX*100),(long)-(ptY*100),strtemp);//strtemp要打印的字符串
//GetProfileString("windows","device",",,,",szprinter,80);