2009-03-25 4 views
2

j'ai écrit le code suivant comme,Comment imprimer le rapport de cristal directement sur imprimante réseau en Vb.net ou C# .net dans les applications Windows

 Dim report As New ReportDocument 
     report.PrintOptions.PrinterName = "\\network\printer" 
     report.Load(CrystalReportName.rpt, OpenReportMethod.OpenReportByDefault) 
     report.PrintToPrinter(1, False, 0, 0) 

quand je suis en train d'exécuter ce code, il montre la message d'erreur "Invalid Printer Specified". Si je donne le nom de l'imprimante locale, cela fonctionne très bien. Mais je ne peux pas imprimer le rapport de cristal directement sur l'imprimante réseau. Aide aimable nécessaire. Merci d'avance.

Sivakumar.P

Répondre

2

Utilisez ce code pour connaître les imprimantes installées

Imports System.Drawing 
Imports System.Drawing.Printing 

et ce code sur la fonction de charge ... vous remplirez un combobox avec les imprimantes et leurs noms correctement, puis utilisez votre code

For Each Printer In PrinterSettings.InstalledPrinters 
    cmbPrinters.Items.Add(Printer) 
Next 
1

Pour toute personne ayant un problème similaire, cela peut être une solution:

report.PrintOptions.PrinterName = "\\\\\\\\network\\\\printer" 
0

En ASP.Net, un simple et la solution douce consiste à installer les mêmes pilotes d'imprimante (comme HP ou Zebra), y compris la version à la fois dans le serveur et clinet Meachine, il fonctionnera avec @\\\ipaddress\printername.

+1

Comment cette réponse se rapporte à la question sur l'impression dans les applications Windows? –

2

Dans le cas où quelqu'un d'autre a encore ce problème:

Dans le document du rapport de cristal que vous essayez d'imprimer, aller à:

Design -> Mise en page

Une imprimante par défaut pas installé côté serveur peut avoir été sélectionné. Retirez-le ou remplacez-le et enregistrez le document. Ensuite, exécutez votre code .Net pour définir l'imprimante dynamiquement si vous le souhaitez.

1

utilisateur 4 antislashs i.e. \\ avant réseau et 2 antislashs i.e. \ avant printername

\\\\[Network Address]\\[printer name] 
Questions connexes