原文:https://blog.csdn.net/cheng448208985/article/details/55510687
win32实现将原始数据发送给打印机
1、调用OpenPrinter()打开打印机,获取打印机句柄。
2、初始化DOCINFO打印机结构体。
3、调用StartDocPrinter()表明应用程序准备发送文档数据给打印机。
4、调用StartPagePrinter()表明程序准备发送一个新的打印页给打印机。
5、调用WritePrinter()发送原始数据给打印机。
6、调用EndpagePrinter()表明打印页发送完毕。
7、调用EndDocPrinter()表明文档发送完毕。
8、调用ClosePrinter()关闭打印机,释放资源。
通过上面步骤即可实现将原始打印数据发送给打印机。
windows console 项目
复制代码
include <windows.h>
int Print(char str[]){
char szprinter[80];
char szDevice,szDriver,*szOutput;
HDC hdcprint; // 定义一个设备环境句柄
//定义一个打印作业
static DOCINFO di={sizeof(DOCINFO),"printer",NULL};
GetProfileString("windows","device",",,,",szprinter,80);
szDevice=strtok(szprinter,",");
szDriver=strtok(NULL,",");
szOutput=strtok(NULL,",");
if(szDevice&&szDriver&&szOutput){if((hdcprint=CreateDC(szDriver,szDevice,szOutput,NULL))!=0){
if(StartDoc(hdcprint,&di)>0) //开始执行一个打印作业
{
StartPage(hdcprint); //打印机走纸,开始打印
SaveDC(hdcprint); //保存打印机设备句柄
TextOut(hdcprint,1,1,str,strlen(str));
RestoreDC(hdcprint,-1); //恢复打印机设备句柄
EndPage(hdcprint); //打印机停纸,停止打印
EndDoc(hdcprint); //结束一个打印作业
// MessageBox("打印完毕!","提示",MB_ICONINFORMATION);
}
// 用API函数DeleteDC销毁一个打印机设备句柄
DeleteDC(hdcprint);
}
else{
// MessageBox("没有默认打印机,或者没有安装打印机!");
return 0;
}
}
return 1;
}
复制代码
调用上面的Print函数就可以打印出 你想要打印的字符串
标签:打印机,调用,句柄,打印,c++,hdcprint,szDevice,win32API From: https://www.cnblogs.com/jiftle/p/17635841.html