设为首页收藏本站

八达网

 找回密码
 注册
查看: 514|回复: 11
打印 上一主题 下一主题

求助编程达人 二维码打印

[复制链接]

24

主题

2

好友

1万

积分

航母

wxit第一zerg

跳转到指定楼层
1
发表于 2013-6-5 22:33 来自手机 |只看该作者 |倒序浏览
想把二维码打印出来,打印机提供的函数的参数是字节数组.各位大大给个编程思路 谢谢

198

主题

3

好友

3万

积分

大和

2
发表于 2013-6-5 22:41 |只看该作者
回复

使用道具 举报

170

主题

0

好友

5万

积分

光明执政官

原来2009还是那么2

3
发表于 2013-6-5 22:49 |只看该作者
....是一定要通过 程序实现? 还是只要能打印出来?
2015 crazy
回复

使用道具 举报

头像被屏蔽

262

主题

0

好友

7326

积分

禁止发言

4
发表于 2013-6-5 22:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

24

主题

2

好友

1万

积分

航母

wxit第一zerg

5
发表于 2013-6-6 20:35 来自手机 |只看该作者
谢谢各位
回复

使用道具 举报

424

主题

5

好友

3078

积分

飞龙

6
发表于 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();  
回复

使用道具 举报

424

主题

5

好友

3078

积分

飞龙

7
发表于 2013-6-7 12:35 |只看该作者
代码不能直接拿来用 我只是大致说下思路
回复

使用道具 举报

0

主题

0

好友

3万

积分

大和

8
发表于 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);
}
回复

使用道具 举报

424

主题

5

好友

3078

积分

飞龙

9
发表于 2013-6-7 14:35 |只看该作者
Mr.Red 发表于 2013-6-7 14:31
HDC hDC = CreateDC(NULL,"你的打印机名称",NULL,NULL);
if(hDC)
{

回复

使用道具 举报

24

主题

2

好友

1万

积分

航母

wxit第一zerg

10
发表于 2013-6-7 16:10 |只看该作者
刁总书记 发表于 2013-6-7 14:35

谢谢呢  研究下先
回复

使用道具 举报

24

主题

2

好友

1万

积分

航母

wxit第一zerg

11
发表于 2013-6-7 16:14 |只看该作者
偶是在android下写的  这个可能用不了 谢谢各位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|八达网    

GMT+8, 2025-11-29 01:49

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部