条码打印机无法打印,而普通打印机可以打印,请问为何

tomwang123 2008-03-23 03:07:25
现在的碰到的问题是,在普通打印机能够打印,而在斑马打印机(专门打印条形码)上无法打印,代码如下,请高手指点!
急急啊,搞了两天了
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);


...全文
297 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr-Chen 2008-03-24
  • 打赏
  • 举报
回复
检查打印机设备坐标和实际坐标的对应是否正确
tomwang123 2008-03-23
  • 打赏
  • 举报
回复
我现在还没有分,我现在出100分,在线等问题的解决,我一定给分的.大哥大姐帮帮忙吧!老大在催了
tomwang123 2008-03-23
  • 打赏
  • 举报
回复
我设置的是最左上角了,没有可能的啊,还请高手帮忙啊
圆圆木公 2008-03-23
  • 打赏
  • 举报
回复
条码打印机无法打印有可能是你打印的范围刚好不在条码的标签纸上,你重新设置打印参数,最好你在打印预览里面可以查看一下打印的效果。
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-23 03:07
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下