Choisir une imprimante sous asp.net

Signaler
Messages postés
13
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 janvier 2005
-
Messages postés
3
Date d'inscription
dimanche 2 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2006
-
Bonjour,
je rencontre un probleme lorsque je veux imprimer un etat crystal report, sur mon poste je n'ai que des imprimantes réseau. Quand J'imprime j'ai un message d'erreur qui me dit que je n'est pas d'imprimante installé.

le code saisie est (C#):
rphd.PrintOptions.PrinterName = "";// imprimante par defaut
rphd.PrintToPrinter(1,false,0,0);
pour que ca fonctionne je doit ecrire en dur le nom de l'imprimante

rphd.PrintOptions.PrinterName = "Ricoh Aficio AP3200 PCL";
rphd.PrintToPrinter(1,false,0,0);
Quelqu'un aurait -il une solution:
- soit pour trouver le nom de l'imprimante par défaut
- soit selectionner une imprimante

Merci D'avance
:shy) Xavier

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Essaye de poser ta question sur www.csharpfr.com car ici on traite de l'asp, il y a encore pas beaucoup de personne qui connaissent le .net et en asp principalement VB.net donc encore moins le C#
mais bon courage

Cyril (Alias Jesusonline)
Messages postés
13
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 janvier 2005

j'ai oublier de le préciser mais mon application tourne en asp.net et si quelqu'un a une solution (vb.net ou javascript ) je suis preneur
merci

:shy) Xavier
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
si ton application tourne chez le client et que tu veux imprimer chez le client tu peux pas en utilisant un language serveur. Ce que tu pourras eventuellement faire, c'est imprimer ton rapport sur l'imprimante de ton serveur :p

Donc je te propose une solution javascript des plus simples :
<script language=javascript>
print();
</script>

Mais je connais pas crystal report, j'en ai encore jamais eu besoin mais pour imprimer chez le client je ferais comme ca

Cyril (Alias Jesusonline)
Messages postés
28
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
16 juin 2008

André

InstalledPrinters de PrinterSettings est une méthode partagée que tu peux
accéder sans en créer une instance. Le code suivant liste le nom des imprimantes dans un ComboBox. Sers-toi de ces noms pour passer à la propriétée

PrintOptions.PrinterName de ton Crystal Report et la banane
est dans la poche:)

Dim StPrt As String
For Each StPrt In PrinterSettings.InstalledPrinters()
cboImprimantes.Items.Add(StPrt)
Next

If (me.ispostback=false) then

cboImprimantes.databind()

end if

J'espere que c'est ce que tu cherchais!!!
andlah@hotmail.com
Messages postés
13
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 janvier 2005

Bonjour et merci de ta réponse. Malheureusement j'ai essayer ta methode mais elle me liste les imprimantes installer sur le serveur web et non les imprimantes du poste client, d'autre part elle ne me trouve pas les imprimantes réseaux je suis obligé de creer les ports lpr sur mon serveur.
Merci quand meme pour ton aide
Xavier
:shy) Xavier
Messages postés
28
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
16 juin 2008

Tu ne peux pas utiliser de fonctionnalités serveur d’impression (i.e VB.NET) pour imprimer à partir du client puisque ces fonctionnalités s’exécutent sur le serveur. Donc adieu les Printer.QuelqueChose et les PrinterOptions etc. Tout ce qu’il te reste (et c’est pas une joke) c’est un bouton HTML ajouté aux côtés de ton CrystalReportViewer au sein duquel tu ajoutes le code JavaScript suivant :







Technologie client oblige. Et il n’y a pas d’histoires de création de port, etc… La seule autre technique possible est la création et le téléchargement sur le client (avec son autorisation) d’un plugIn un peu comme le lecteur Flash.
Messages postés
3
Date d'inscription
dimanche 2 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2006

Bonjour, voila mon code, si kk1 peut me dire pk ca marche pa

Try
Dim nom_imp As String
For Each nom_imp In PrinterSettings.InstalledPrinters
dd_imp.Items.Add(nom_imp)
Next
lbl_msg.Text = "Passage par le try"
Catch ex2 As Exception
lbl_msg.Text = ex2.Message
End Try

Et voici le import : Imports System.Drawing.Printing