Windows Service打印ActiveReport报表
请教斑竹!我在Windows Service里面直接打印,发现打印机没有接收到打印任务。是否ActiveRepor不支持Windows Service程序打印?还是需要其他的配置?
相关代码如下:
opt.Run(false);//数据已经填充好
string strError = opt.PrintLable(Gps.GetPrinterName()); //执行方法后打印机没反应,也没报错。
public string PrintLable(string strPrinterName)
{
try
{
Document.Printer.PrinterName = strPrinterName;
Document.Print(false, false, false);
}
catch (Exception ex)
{
return ex.Message;
}
return "";
} 更简单的:
//启动服务
protected override void OnStart(string[] args)
{
WriteToLog("服务启动","");
try
{
NewActiveReport2 rpt = new NewActiveReport2();
rpt.Run();
rpt.Document.Printer.PrinterName = "pdfFactory Pro";
rpt.Document.Print(false, false, false);
WriteToLog("打印成功", "");
}
catch (Exception ex)
{
WriteToLog("打印出错", ex.Message);
}
}
日志显示:
服务启动
打印成功
关键是打印机仍然没有反应。 您好,
根据现有代码判断
Document.Print(false, false, false);
是在winforms程序下,打印的方法。
我对您的Windows Service程序理解是一个web程序。这种调用的方式,受到IIS的权限控制。
我这样理解是否正确,欢迎补充。 回复 3楼frank.zhang的帖子
Windows Service程序是后台程序,就是Services.msc里面跑的什么和SQL服务一类的。
并不是发布到IIS服务器上的Web程序。
这个Print方法我在Web也有用到,提升权限后就可以打印。
也就是在Web、winform下都可以进行ActiveReport,
但是Windows Service好像没有见过打印例子。
我看看Activereport还提供了哪些Print方法吧。 您好,
非常抱歉,我对这个问题,没有理解。
Services.msc的程序,通常会提供一个端口。并且提供相关的使用协议。
您指的直接打印调用 Windows Service程序,这个打印的程序是否也提供一个端口和相关的协议呢?
否则,这个Services.msc的程序怎么知道被调用了呢? 回复 5楼frank.zhang的帖子
不是打印调用Windows Service程序,是在Windows Service程序里面写了打印功能,
服务一启动,就实现打印功能,类似于winform一运行窗体,就可以打印,Web一运行网站,就可以打印。
难道是服务运行使用的账户权限问题?我调查看看。 您好,问题已经收到,我这边正在帮您处理。请稍后。 回复 7楼frank.zhang的帖子
感谢斑竹回复,我这边暂时没有进展,查不出是什么问题。
实在不行只能用winform开发,后台运行了。 您好,
这个我会帮您调查一下,由于验证需要时间,会在一个工作日内,给您反馈。请稍候。 逻辑上应该没什么问题吧. LZ 有检查过权限吗? 以管理员权限启动
页:
[1]
2