求助编程达人 二维码打印
想把二维码打印出来,打印机提供的函数的参数是字节数组.各位大大给个编程思路 谢谢@临空一刀 ....是一定要通过 程序实现? 还是只要能打印出来? 谢谢各位
//先读取BMP关联到memDC上
CDC memDC;
CClientDC dc(this);
int bmpWidth = 1024;
int bmpHeight = 768;
memDC.CreateCompatibleDC( &dc );
CBitmap* bitmap = new CBitmap();
HBITMAP hBitmap = NULL;
hBitmap = (HBITMAP)LoadImage(NULL, "1.bmp", IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
bitmap->Attach(hBitmap);
CBitmap* pOldBitmap = (CBitmap*)memDC.SelectObject(bitmap);
//再创建一个用于打印的DC
CDC prtDC;
CPrintInfo printInfo;
HDC hDC = printInfo.m_pPD->m_pd.hDC;
if (hDC == NULL)
hDC = printInfo.m_pPD->CreatePrinterDC();
if(hDC !=NULL)
{
prtDC.Attach(hDC);
}
//然后你去看看StretchBlt这个函数,参数要怎么配,自己查下MSDN。
prtDC.StretchBlt(0, 0, last_bmpWidth * ratio_x, bmpHeight* ratio_y, &memDC,
paper_width * i / ratio_x, 0, last_bmpWidth, bmpHeight, SRCCOPY);
//最后
DOCINFO di;
memset(&di, 0, sizeof(DOCINFO));
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = szAppName;
szPortName = prtDlg.GetPortName();
di.lpszOutput = szPortName;
prtDC.m_bPrinting = TRUE;
if(prtDC.StartDoc(&di) == -1)
{
AfxMessageBox("Printing error occured. Unable to find printer.");
prtDC.DeleteDC();
}
prtDC.EndDoc();
prtDC.DeleteDC();
memDC.SelectObject(pOldBitmap);
delete bitmap;
memDC.DeleteDC(); 代码不能直接拿来用 我只是大致说下思路 HDC hDC = CreateDC(NULL,"你的打印机名称",NULL,NULL);
if(hDC)
{
DOCINFO DocInfo = {sizeof(DOCINFO),"二维条码",NULL,NULL,0};
StartDoc(hDC,&DocInfo);
{
StartPage(hDC);
MoveToEx(hDC,0,0,NULL);
//画线
LineTo(hDC,0,400);
//写字
TextOut(hDC,0,10,"这里是0,10",11);
//贴图用BitBlt,代码略……
EndPage(hDC);
}
EndDoc(hDC);
} Mr.Red 发表于 2013-6-7 14:31 static/image/common/back.gif
HDC hDC = CreateDC(NULL,"你的打印机名称",NULL,NULL);
if(hDC)
{
[:27][:27][:27] 刁总书记 发表于 2013-6-7 14:35 static/image/common/back.gif
谢谢呢 研究下先 偶是在android下写的 这个可能用不了 谢谢各位
页:
[1]