找回密码
 立即注册

QQ登录

只需一步,快速开始

sethashan

注册会员

6

主题

25

帖子

104

积分

注册会员

积分
104

活字格认证

sethashan
注册会员   /  发表于:2015-7-1 16:48  /   查看:12613  /  回复:19
请教斑竹!我在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 "";
        }

19 个回复

倒序浏览
sethashan
注册会员   /  发表于:2015-7-1 17:33:00
沙发
更简单的:

    //启动服务
        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);
            }
               
        }

日志显示:
服务启动
打印成功

关键是打印机仍然没有反应。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-1 17:35:00
板凳
您好,
根据现有代码判断
  1. Document.Print(false, false, false);
复制代码
是在winforms程序下,打印的方法。

我对您的Windows Service程序理解是一个web程序。这种调用的方式,受到IIS的权限控制。

我这样理解是否正确,欢迎补充。
回复 使用道具 举报
sethashan
注册会员   /  发表于:2015-7-1 17:42:00
地板
回复 3楼frank.zhang的帖子

Windows Service程序是后台程序,就是Services.msc里面跑的什么和SQL服务一类的。
并不是发布到IIS服务器上的Web程序。

这个Print方法我在Web也有用到,提升权限后就可以打印。

也就是在Web、winform下都可以进行ActiveReport,

但是Windows Service好像没有见过打印例子。

我看看Activereport还提供了哪些Print方法吧。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-1 17:51:00
5#
您好,
非常抱歉,我对这个问题,没有理解。
Services.msc的程序,通常会提供一个端口。并且提供相关的使用协议。
您指的直接打印调用 Windows Service程序,这个打印的程序是否也提供一个端口和相关的协议呢?
否则,这个Services.msc的程序怎么知道被调用了呢?
回复 使用道具 举报
sethashan
注册会员   /  发表于:2015-7-1 18:04:00
6#
回复 5楼frank.zhang的帖子

不是打印调用Windows Service程序,是在Windows Service程序里面写了打印功能,
服务一启动,就实现打印功能,类似于winform一运行窗体,就可以打印,Web一运行网站,就可以打印。
难道是服务运行使用的账户权限问题?我调查看看。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-2 09:13:00
7#
您好,问题已经收到,我这边正在帮您处理。请稍后。
回复 使用道具 举报
sethashan
注册会员   /  发表于:2015-7-2 11:06:00
8#
回复 7楼frank.zhang的帖子

感谢斑竹回复,我这边暂时没有进展,查不出是什么问题。
实在不行只能用winform开发,后台运行了。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-2 12:26:00
9#
您好,
这个我会帮您调查一下,由于验证需要时间,会在一个工作日内,给您反馈。请稍候。
回复 使用道具 举报
qakmak
论坛元老   /  发表于:2015-7-2 16:10:00
10#
逻辑上应该没什么问题吧. LZ 有检查过权限吗? 以管理员权限启动
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部