关于打印机的问题, 为什么用writeprinter,已经加入打印任务, 但打印机没反应?代码如下

catyou 2003-03-07 10:30:29
LPTSTR pName = _T("EPSONTM88");
HANDLE hPrint = 0;
bool flag = false;
flag = OpenPrinter(pName, &hPrint, NULL);
if( !flag )
int i = GetLastError();

DOC_INFO_1 s_info;
s_info.pDocName = "文档";
s_info.pOutputFile = NULL;
s_info.pDatatype = "RAW";
unsigned char pDoc[256] = {0};//&s_info;
memcpy(pDoc, (char*)&s_info, sizeof(s_info));
DWORD dwJob = StartDocPrinter(hPrint, 1, pDoc);
if( !dwJob )
{
ClosePrinter( hPrint );
return;
}

flag = StartPagePrinter(hPrint);
if( !flag )
{
EndDocPrinter( hPrint );
ClosePrinter( hPrint );
return;
}


LPVOID data = "how are u";
DWORD len = strlen((char*)data);
DWORD wLen = 0;
flag = WritePrinter(hPrint, data, len, &wLen);
if( !flag )
{
EndPagePrinter( hPrint );
EndDocPrinter( hPrint );
ClosePrinter( hPrint );
return ;
}

flag = EndPagePrinter(hPrint);
if( !flag )
{
EndDocPrinter( hPrint );
ClosePrinter( hPrint );
return ;
}


flag = EndDocPrinter(hPrint);
if( !flag )
{
ClosePrinter( hPrint );
return ;
}


flag = ClosePrinter(hPrint);
if( !flag )
int i = GetLastError();

if( wLen != len )
return ;
...全文
531 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
catyou 2003-03-07
  • 打赏
  • 举报
回复
打印机没问题啊, 用word打印也可以;并且已经加入到打印任务当中了;
如果用fopen("LPT1", "w");
fsprintf来打印也可以
yaven365 2003-03-07
  • 打赏
  • 举报
回复
to :zxm954712(三绝剑)

niu!
zxm954712 2003-03-07
  • 打赏
  • 举报
回复
I try it with your source code. It is OK. I think your printer maybe get trouble.

You try it:)
The following is the source code I test.
#include "windows.h"
#include "winspool.h"
#include "stdio.h"


void print()
{
LPTSTR pName = "\\\\server01\\si"; // the printer name is \\server01\si
HANDLE hPrint = 0;
BOOL flag = false;
flag = OpenPrinter(pName, &hPrint, NULL);
if( !flag )
int i = GetLastError();

DOC_INFO_1 s_info;
s_info.pDocName = "Îĵµ";
s_info.pOutputFile = NULL;
s_info.pDatatype = "RAW";
unsigned char pDoc[256] = {0};//&s_info;
memcpy(pDoc, (char*)&s_info, sizeof(s_info));
DWORD dwJob = StartDocPrinter(hPrint, 1, pDoc);
if( !dwJob )
{
ClosePrinter( hPrint );
return;
}

flag = StartPagePrinter(hPrint);
if( !flag )
{
EndDocPrinter( hPrint );
ClosePrinter( hPrint );
return;
}


LPVOID data = "how are u";
DWORD len = strlen((char*)data);
DWORD wLen = 0;
flag = WritePrinter(hPrint, data, len, &wLen);
if( !flag )
{
EndPagePrinter( hPrint );
EndDocPrinter( hPrint );
ClosePrinter( hPrint );
return ;
}

flag = EndPagePrinter(hPrint);
if( !flag )
{
EndDocPrinter( hPrint );
ClosePrinter( hPrint );
return ;
}


flag = EndDocPrinter(hPrint);
if( !flag )
{
ClosePrinter( hPrint );
return ;
}


flag = ClosePrinter(hPrint);
if( !flag )
int i = GetLastError();

if( wLen != len )
return ;
}

void main()
{
print();
}
yaven365 2003-03-07
  • 打赏
  • 举报
回复
看看flag等多少,hprint应该定一成LPHANDLE

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧