Procédures inopérantes

Résolu
Zermelo - 23 sept. 2012 à 08:15
 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.

12 réponses

Utilisateur anonyme
25 sept. 2012 à 12:51
D'autres personnes ont eu le même problème que toi comme ici.

Bonne prog.
3
Utilisateur anonyme
25 sept. 2012 à 13:32
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.
3
Utilisateur anonyme
25 sept. 2012 à 13:35
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.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 sept. 2012 à 10:04
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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 : ×
0
Utilisateur anonyme
23 sept. 2012 à 17:49
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.
0
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 : ×
0
Utilisateur anonyme
23 sept. 2012 à 20:22
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
0
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 : ×
0
Utilisateur anonyme
25 sept. 2012 à 13:09
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 ?
0
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 : ×
0
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 : ×
0
Rejoignez-nous