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

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 08:50
    关注

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

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

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

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误