调用打印机打印问题

ren_fwei ren_fwei 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟在使用 WritePrinter函数向打印机发送数据时,打印机显示添加了一个新的任务,但是确没有打印出来,请各位高人给看下,代码如下:
bool CRPrinter::DPSendFiletoPrinter(LPCSTR pPrinterName, LPCSTR pFilePath)
{
DWORD tFileSize = 0;
DWORD tReadFileSize = 0;
DWORD size = 0;
char * tBuf = NULL;
HANDLE tPrinter = NULL;
DOC_INFO_1 tDocInfo1; // 打印文档信息

if(pPrinterName == NULL || pFilePath == NULL)
return false;

// 打开打印机
if(!OpenPrinter((LPSTR)pPrinterName,&tPrinter,NULL) || tPrinter == NULL){
return false;
}

memset(&tDocInfo1,0,sizeof(tDocInfo1));
tDocInfo1.pDocName = "my document"; // 文档名
tDocInfo1.pOutputFile = NULL;
tDocInfo1.pDatatype = "RAW"; // 数据以RAW格式发送(Win9x和WinNT都支持RAW和EMF格式,WinNT还支持TEXT格式


if(!StartDocPrinter(tPrinter, 1,(LPBYTE)&tDocInfo1)){
CloseHandle(tPrinter);
return false;
}

StartPagePrinter(tPrinter);

// 打开文件并获取文件大小
HANDLE tFile = CreateFile(pFilePath, GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
if(tFile == INVALID_HANDLE_VALUE){
return false;
}
tFileSize = GetFileSize(tFile,NULL);
if(tFileSize == 0xFFFFFFFF){
CloseHandle(tFile);
CloseHandle(tPrinter);
return false;
}

while(tFileSize>0){
size = tFileSize<MAXPRINTSIZE?tFileSize:MAXPRINTSIZE;
tBuf = (char *)malloc(size);
if(tBuf == NULL){
CloseHandle(tFile);
CloseHandle(tPrinter);
return false;
}
memset(tBuf, 0x0, size);

// 读数据
tReadFileSize = 0;
if(!ReadFile(tFile,(LPVOID)tBuf,size,&tReadFileSize,NULL) || size != tReadFileSize){
CloseHandle(tFile);
CloseHandle(tPrinter);
free(tBuf);
return false;
}

// 写入打印机
tReadFileSize = 0;
if(!WritePrinter(tPrinter, tBuf, size, &tReadFileSize) || size != tReadFileSize){
free(tBuf);
CloseHandle(tFile);
CloseHandle(tPrinter);
return false;
}
free(tBuf);

tFileSize = tFileSize - size;
}

//关闭文件
CloseHandle(tFile);

//结束打印,关闭打印机
EndPagePrinter(tPrinter);
if(!EndDocPrinter(tPrinter)){
CloseHandle(tPrinter);
return false;
}
CloseHandle(tPrinter);

return true;
}

执行后打印机状态为已暂停,名为my document的文档没有打印,跪求各位大虾指点
...全文
评论 6
收藏 已收藏
分享
返回顶部
ren_fwei
硬件/系统 2,644 成员 17,229 内容