2011-02-09 3 views
2

Comment puis-je l'impression d'un document sur une imprimante spécifique à partir d'un Windows Service sans la nécessité d'une interaction utilisateur?Impression à partir d'un service Windows

Une chaîne ou un fichier texte. Peut-être Crystalreport?

Merci.

Répondre

2

Le point n'est pas comment imprimer à partir d'un service Windows ou d'une application, si vous ne voulez pas que l'interaction de l'utilisateur soit requis, vous devez spécifier tous les paramètres d'impression sans avoir besoin d'afficher une boîte de dialogue d'impression (ce que vous ne pouvez pas parce qu'un service Windows n'a pas accès à l'interface utilisateur).

voir ici: http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.aspx

+0

Malheureusement, l'impression à partir de services Windows n'est pas recommandée officiellement: [Discussion] (http://stackoverflow.com/a/8094/1182448). – apdevelop

0

Essayez de créer un service multithread. Une fois que vous avez créé le service avec les préfixes Admin, les utilisateurs ne s'en mêlent pas. (En fait, je n'ai pas compris le but de "sans la nécessité d'une interaction de l'utilisateur")

+0

@ David bien, étant donné qu'il a admis qu'il ne comprend pas cette partie de la question, il est injuste de ne pas dire que sa réponse peut ne pas être correcte. vous êtes un commentaire un peu dur. @pawan, je pense que l'OP veut une méthode qui va imprimer par programmation et automatiquement soit via un événement ou d'autres déclencheurs qui n'est pas lancé par l'utilisateur. donc si le service est multithread ou non est sans importance dans ce cas comme david l'a souligné. – Joe

+0

@ David, ya je ne comprenais pas la question, mais j'ai essayé de donner une réponse à mon niveau best.Still J'apprends ... Ne vous inquiétez pas, queX pour me critiquer. Un jour viens où je répondrai mieux que toi. @joe ... thanku, la prochaine fois j'essaie de comprendre la question avant de répondre. – PawanS

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

lorsque vous souhaitez imprimer:

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

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

Pour 'en silence' imprimer à partir d'un service Windows, vous devez utiliser Win32 GDI API.

Si vous développez une application Microsoft .NET, vous pouvez utiliser la plate-forme (PInvoke les services d'appel) pour appeler les API GDI Win32 pour imprimer. Heres a nice PInvoke tutorial. Take a look here for Win32 GDI methods etc.

est ici plus d'informations et un exemple en ce qui concerne l'impression à partir d'un service de fenêtres de l'équipe DSUI de Microsoft ... take a look

Questions connexes