Windows服务打印PDF

时间:2014-09-26 15:38:13

标签: c# .net windows service printing

需要每晚启动创建基于PDF的报告(财务图表)的流程。过去的开发人员生成了一个使用System.Drawing和System.Printing的组件,使用Amyuni创建报告并将其保存为PDF目录。现在,我们希望使用该组件为分析师在第二天生成PDF时间。实际图形是使用GDI +与DrawLine,DrawString等自定义绘制的。使用PrintPageEventArgs Graphics属性作为绘图的画布。

使用该组件可以很好地从Windows窗体应用程序工作正常。当使用在用户帐户(而不是LocalSystem)下运行的组件时,服务对打印机的访问权限不会因任何异常而失败,但不会创建任何文件。

我知道Windows服务并不真正支持System.Drawing和System.Printing,但支持并不意味着不起作用。只是意味着MS不会帮助你解决问题。

知道我们可以做些什么才能让它发挥作用?这不是一个高容量的过程。目前,他们使用命令行程序和Windows任务计划程序执行此操作,但这需要用户保持登录状态。

更新: 所以我尝试将其作为.NET控制台应用程序并使用Windows任务计划程序启动它,并出现同样的问题。从桌面运行控制台应用程序,它的工作原理。从它运行的任务计划程序运行它,但不创建任何文件。我确实进行了大量的日志记录,没有例外情况正在发生,看起来这个过程确实正在创建图表。它们只是不会出现在输出目录中。我将任务设置为在我登录的同一帐户下运行。以前完成的任务是Visual Basic 6解决方案而不是.NET解决方案。

1 个答案:

答案 0 :(得分:1)

对于本文的未来读者,此问题中描述的问题是由Windows Server操作系统上的Amyuni库的许可限制引起的(Amyuni Technologies根据正在开发的应用程序提供了多种许可模型)。对于这个特殊情况,在联系Amyuni支持后提供了新的许可信息,问题得到了解决 免责声明:我为Amyuni Technologies工作。