从Windows服务打印

时间:2011-02-09 13:00:36

标签: c# printing windows-services

如何在不需要任何用户互动的情况下从Windows服务打印特定打印机上的文档?

字符串或文本文件。也许Crystalreport?

感谢。

5 个答案:

答案 0 :(得分:2)

关键不在于如何从Windows服务或应用程序进行打印,如果您不希望需要任何用户交互,则必须指定所有打印参数而无需显示打印对话框(您可以因为Windows服务无权访问UI。

见这里:http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.aspx

答案 1 :(得分:0)

尝试创建多线程服务。使用Admin previledges创建服务后,用户不会受到干扰。 (实际上我没有理解“不需要任何用户互动”)

答案 2 :(得分:0)

使用水晶报告还有另一个讨论: Print without Printer selection dialog

这是打印html的另一个 Print html document from Windows Service without print dialog

希望他们能让你开始朝着正确的方向前进。

答案 3 :(得分:0)

// Class that handles printing
class MyPrintDocument : PrintDocument
    {
       //...
    }

当你想要打印时:

        // Create an instance of your printer class
        MyPrintDocument printer = new MyPrintDocument();

        // Set StandardPrintController so status dialog won't appear
        printer.PrintController = new StandardPrintController();

答案 4 :(得分:0)

要从Windows服务“静默”打印,您应该使用Win32 GDI API

如果您正在开发Microsoft .NET应用程序,则可以使用Platform Invocation Services(PInvoke)来调用Win32 GDI API进行打印。 Heres a nice PInvoke tutorialTake a look here for Win32 GDI methods etc

以下是有关从Microsoft DSUI团队的Windows服务打印的更多信息和示例... take a look