Procédures inopérantes [Résolu]

- - Dernière réponse :  Zermelo - 25 sept. 2012 à 16:07
Bonjour.

Tout nouveau sur ce forum, je vais sans doute être très maladroit. Qu'on veuille bien m'en excuser.

Les tests que j'ai effectués semblent montrer que les procédures

PrinterSettings.Duplex
DefaultPageSettings.Color


de la classe

PrintDocument


sont inopérantes. Cela est-il dû au fait que j'utilise VB 2010 Express ?

Merci d'avance à qui voudra me répondre.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
3
Merci
D'autres personnes ont eu le même problème que toi comme ici.

Bonne prog.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
3
Merci
Avant de payer un professionnel, il serait bon de poser la question par mail au fabricant de l'imprimante si la couleur peut être définie par une application tierce.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
3
Merci
Sur le lien que je t'ai donné, la personne dit qu'il est possible de changer la couleur en affichant une PrintPreviewDialog, peut-être que ça suffira dans ton cas.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
264
0
Merci
Bonjour,
1) avec quel code ?
2) as-tu au moins vérifié la possibilité (en utilisant CanDuplex) ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
0
Merci
Bonjour.

Voici le code que j'ai employé

Imports System.Drawing.Printing
Public Class Acceuil
    Private Prt As New PrintDocument

    Public Property OkClr As Boolean 'sélection de la couleur plutôt que le noir et blanc
        Get
            Return Prt.DefaultPageSettings.Color
        End Get
        Set(ByVal Ok As Boolean)
            If Prt.PrinterSettings.SupportsColor Then
                Prt.DefaultPageSettings.Color = Ok
            Else
                Prt.DefaultPageSettings.Color = False
                MsgBox("Cette imprimante ne dispose pas de la couleur")
            End If
        End Set
    End Property

    Public Property OkR_V As Boolean 'sélection du recto-verso plutôt que le recto seul
        Get
            Return Prt.PrinterSettings.Duplex
        End Get
        Set(ByVal Ok As Boolean)
            If Prt.PrinterSettings.CanDuplex Then
                Prt.PrinterSettings.Duplex = Ok
            Else
                Prt.PrinterSettings.Duplex = False
                MsgBox("Cette imprimante ne dispose pas du recto-verso")
            End If
        End Set
    End Property
End Class


Vous seriez bien aimable de me dire ce que vous en pensez.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Merci
Bonjour,

Il faut que tu renseignes la propriété Document à quelque part. Si ce n'est pas dans le PrintDocument, c'est dans le PrinterSettings.

Si tu utilises les contôles d'impression, c'est dans un des trois. Mais là, j'ai la flemme de fouiller dans l'aide à ta place.
Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour.

Les contrôles d'impression que j'utilise sont dans les PrintersSettings et les DefaultPageSettings. Et je les prends bien dans un PrintDocument, comme le prouve la troisième ligne de mon code. D'ailleurs l'emploi des booléens OkClr et OkR_V n'engendre aucune erreur. Mais mon imprimante Dell 5100cn les ignore. D'autre part, j'ai aussi d'autres OkMachin, bâtis sur le même modèle, qui sont parfaitement opérants. J'ajoute que sauf erreur de ma part, le composant PrintDialog ne permet pas non plus de configurer les deux paramètres dont je parle. Le mystère reste donc entier.

Merci de m'avoir répondu.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Merci
Bonjour,

Tu dois fournir une instance de la classe PrinterSettings, qui contient déjà les paramètres de ton imprimante par défaut et que tu peux modifier auparavant, à la propriété PrinterSettings de ton PrintDocument :
Dim MesParametresImpression As New PrinterSettings
MesParametresImpression.Duplex = Duplex.Horizontal
Prt.PrinterSettings = MesParametresImpression


De même pour PageSettings :
Dim MesParametresPage As New PageSettings
MesParametresPage.Color = True
Prt.DefaultPageSettings = MesParametresPage
Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour banana32.

Comme mon imprimante est configurée en couleur, j'ai écrit le code

Dim MesParametresPage As New PageSettings
MesParametresPage.Color = False
Prt.DefaultPageSettings = MesParametresPage


et j'ai lancé une impression. Elle s'est faite en couleur.

Qu'en pensez-vous ?


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Merci
Le driver de ton imprimante a-t-il été automatiquement installé par windows ou l'as-tu installé toi même ?
Peut-être existe-t-il une mise à jour du driver sur le site du fabricant de ton imprimante ?
Commenter la réponse de Utilisateur anonyme
0
Merci
J'ai fait installer mon imprimante par un professionnel, car en matière d'installation j'ai toujours la trouille de faire un çonnerie. (Je vous autorise à vous f... de ma g... ). Je vais lui demander de faire une mise à jour du pilote, et je vous ferai savoir ce qui en résulte.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Merci
Bonjour à nouveau.

Effectivement, il existe trois boîtes de dialogue PageSetupDialog, PrintPreviewDialog, et PrintDialog qui permettent d'accéder à la boîte de dialogue du pilote de l'imprimante. Mais mon ambition est, à terme, de fabriquer une dll facilitant l'impression, non seulement pour manipuler l'imprimante, mais aussi pour faciliter les dessins de texte, de figures, et d'une manière générale tout ce qui peut être dessiné. J'ai d'ailleurs l'intension de la proposer comme code source quand ce travail sera plus avancé.

En attendant, merci pour tout.



Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.