佳幂小煜 2018-07-20 00:19 采纳率: 0%
浏览 1302
已采纳

C++的连接打印机显示图片的问题

HDC hdcPrint; //打印机直流手柄

TCHAR szDevString [120]; //数组为WIN.INI数据

TCHAR * szPrinter,* szDriver; //打印机和驱动程序名称

TCHAR * szPort; //端口名称

TCHAR * nextChar;

//检索打印机,打印机驱动程序和  
//从WIN.INI输出端口名称。  

GetProfileString(_T(“windows”),_T(“device”),_T(“,,,”), 
    szDevString,120); 

//解析名字串,根据需要设置ptrs  
//如果字符串包含所需的名称,请使用它们  
//创建设备上下文。  

if((szPrinter = _tcstok_s(szDevString, 
           _T(“,”),&nextChar)) 
        &&(szDriver = _tcstok_s(NULL, 
           _T(“,”),&nextChar)) 
        &&(szPort = _tcstok_s(NULL, 
           _T(“,”),&nextChar)))
{
    hdcPrint = CreateDC(szDriver,szPrinter, 
        szPort,NULL); 
}

//打印包含该字符串的测试页  
//“打印机测试”在左上角。  

Escape(hdcPrint,STARTDOC,8,“Test-Doc”,NULL); 
TextOut(hdcPrint,50,50,_T(“PRINTER TEST”),12); 
Escape(hdcPrint,NEWFRAME,0,NULL,NULL); 
Escape(hdcPrint,ENDDOC,0,NULL,NULL); 

//删除打印机DC。  
DeleteDC(hdcPrint); 

    这是我查到的资料,已经测试完毕,但是现在的结果就是我只能打出一行文字,但是打印不出图像,希望有大神能来执教一下  我QQ568997743 如果解决定有重谢

展开全部

  • 写回答

4条回答 默认 最新

  • threenewbee 2018-07-20 00:50
    关注

    你这个肯定打印不出图形,你用的是esc/pos指令集,这种底层的方式只能打印文本。
    如果用这种方式要打印图像,需要自己计算像素点,转换为打印指令,再输出,不是一般的麻烦。

    正确的做法是安装好打印机驱动,用windows的图形打印方式打印。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部