outmylife 发表于 2013-6-5 22:33

求助编程达人 二维码打印

想把二维码打印出来,打印机提供的函数的参数是字节数组.各位大大给个编程思路 谢谢

Pentium9 发表于 2013-6-5 22:41

@临空一刀

lucifer520 发表于 2013-6-5 22:49

....是一定要通过 程序实现? 还是只要能打印出来?

晶の老友 发表于 2013-6-5 22:55

outmylife 发表于 2013-6-6 20:35

谢谢各位

发表于 1970-1-1 08:00

刁总书记 发表于 2013-6-7 12:34

//先读取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();  

刁总书记 发表于 2013-6-7 12:35

代码不能直接拿来用 我只是大致说下思路

Mr.Red 发表于 2013-6-7 14:31

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);
}

刁总书记 发表于 2013-6-7 14:35

Mr.Red 发表于 2013-6-7 14:31 static/image/common/back.gif
HDC hDC = CreateDC(NULL,"你的打印机名称",NULL,NULL);
if(hDC)
{


[:27][:27][:27]

outmylife 发表于 2013-6-7 16:10

刁总书记 发表于 2013-6-7 14:35 static/image/common/back.gif


谢谢呢  研究下先

outmylife 发表于 2013-6-7 16:14

偶是在android下写的  这个可能用不了 谢谢各位
页: [1]
查看完整版本: 求助编程达人 二维码打印