OVH Cloud OVH Cloud

Paramétrer une Imprimante

5 réponses
Avatar
Nicolas Poirier
Je veux utiliser une fenêtre pour paramétrer l'impression, alors j'utilise
un "Common Dialog Box" comme ceci:

Me.objDialogBox.DialogTitle = "Paramètres d'Impression"
Me.objDialogBox.Flags = cdlPDPrintSetup
Me.objDialogBox.Orientation = cdlPortrait
Me.objDialogBox.PrinterDefault = False
Me.objDialogBox.ShowPrinter

Comme je veux choisir une imprimante, et y imprimer sans changer
l'imprimante par défaut du système, j'ai sélectionné: PrinterDefault to
false.

Comment faire alors pour appliquer la sélection d'imprimante sur l'objet
"Printer" ?
Peu importe les choix effectués dans la fenêtre des paramètres, ils ne
s'appliquent pas à l'objet "Printer" .
Comment faire pour dire à l'objet "Printer" de se servir de l'imprimante
choisie?
Utiliser la collection "Printers" pour spécifier une imprimante
particulière, comme avec Printers(3), fait en sorte que ses propiétées
peuvent seulement être accédées en lecture seule.

Également, à propos du "Common Dialog Box", j'ai touvé la propriété
"Orientation" pour lire et écrire l'orientation du papier à utiliser.
Quelles sont les propriétées ou les façons qui permettent d'accéder au type
de chargeur de feuilles, au format de papier et à la qualité d'impression?

Merci
Nicolas Poirier

5 réponses

Avatar
David
Bonjour Nicolas,

Voila comment j'y suis arrivé :

Private Sub MnuC5_Click()
Dim sOldPrinterName As String

' on conserve le nom de l'imprimante par défaut
''Printer.TrackDefault = True
sOldPrinterName = Printer.DeviceName

' on permet la sélection d'une nouvelle imprimante
CommonDialog1.ShowPrinter

' on vérifie si l'imprimante à changé
If (Printer.DeviceName <> sOldPrinterName) Then
' on réselectionne l'ancienne imprimante
Call SelectPrinter(sOldPrinterName)

' permet de remettre l'imprimante intiale par défaut
' sans attendre la fermeture du formulaire
'''Call SetDefaultPrinter(sOldPrinterName)
End If

Printer.TrackDefault = True

End Sub

a+
Jean-Pol DAVID
mailto:
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Nicolas Poirier" a écrit dans le message de news:
FQ_2d.29378$
Je veux utiliser une fenêtre pour paramétrer l'impression, alors j'utilise
un "Common Dialog Box" comme ceci:

Me.objDialogBox.DialogTitle = "Paramètres d'Impression"
Me.objDialogBox.Flags = cdlPDPrintSetup
Me.objDialogBox.Orientation = cdlPortrait
Me.objDialogBox.PrinterDefault = False
Me.objDialogBox.ShowPrinter

Comme je veux choisir une imprimante, et y imprimer sans changer
l'imprimante par défaut du système, j'ai sélectionné: PrinterDefault to
false.

Comment faire alors pour appliquer la sélection d'imprimante sur l'objet
"Printer" ?
Peu importe les choix effectués dans la fenêtre des paramètres, ils ne
s'appliquent pas à l'objet "Printer" .
Comment faire pour dire à l'objet "Printer" de se servir de l'imprimante
choisie?
Utiliser la collection "Printers" pour spécifier une imprimante
particulière, comme avec Printers(3), fait en sorte que ses propiétées
peuvent seulement être accédées en lecture seule.

Également, à propos du "Common Dialog Box", j'ai touvé la propriété
"Orientation" pour lire et écrire l'orientation du papier à utiliser.
Quelles sont les propriétées ou les façons qui permettent d'accéder au


type
de chargeur de feuilles, au format de papier et à la qualité d'impression?

Merci
Nicolas Poirier




Avatar
Nicolas Poirier
La propriétée PrinterDefault fait en sorte que l'imprimante sélectionnée
devient celle par défaut peu importe si la propriétée est vraie ou faux.
Ainsi, le seul choix qu'il me reste est de trouver une manière de remettre
automatiquement l'ancienne imprimante par défaut à la fin du processus
d'impression.
Comment faire cela?

Merci
Nicolas Poirier

"Nicolas Poirier" a écrit dans le message de
news:FQ_2d.29378$
Je veux utiliser une fenêtre pour paramétrer l'impression, alors j'utilise
un "Common Dialog Box" comme ceci:

Me.objDialogBox.DialogTitle = "Paramètres d'Impression"
Me.objDialogBox.Flags = cdlPDPrintSetup
Me.objDialogBox.Orientation = cdlPortrait
Me.objDialogBox.PrinterDefault = False
Me.objDialogBox.ShowPrinter

Comme je veux choisir une imprimante, et y imprimer sans changer
l'imprimante par défaut du système, j'ai sélectionné: PrinterDefault to
false.

Comment faire alors pour appliquer la sélection d'imprimante sur l'objet
"Printer" ?
Peu importe les choix effectués dans la fenêtre des paramètres, ils ne
s'appliquent pas à l'objet "Printer" .
Comment faire pour dire à l'objet "Printer" de se servir de l'imprimante
choisie?
Utiliser la collection "Printers" pour spécifier une imprimante
particulière, comme avec Printers(3), fait en sorte que ses propiétées
peuvent seulement être accédées en lecture seule.

Également, à propos du "Common Dialog Box", j'ai touvé la propriété
"Orientation" pour lire et écrire l'orientation du papier à utiliser.
Quelles sont les propriétées ou les façons qui permettent d'accéder au


type
de chargeur de feuilles, au format de papier et à la qualité d'impression?

Merci
Nicolas Poirier




Avatar
Nicolas Poirier
Merci :-) Mais il y a juste un petit problème, les fonctions SelectPrinter
et SetDefaultPrinter semblent ne pas faire partie des fonctions de VB6...

Nicolas

"David" a écrit dans le message de
news:
Bonjour Nicolas,

Voila comment j'y suis arrivé :

Private Sub MnuC5_Click()
Dim sOldPrinterName As String

' on conserve le nom de l'imprimante par défaut
''Printer.TrackDefault = True
sOldPrinterName = Printer.DeviceName

' on permet la sélection d'une nouvelle imprimante
CommonDialog1.ShowPrinter

' on vérifie si l'imprimante à changé
If (Printer.DeviceName <> sOldPrinterName) Then
' on réselectionne l'ancienne imprimante
Call SelectPrinter(sOldPrinterName)

' permet de remettre l'imprimante intiale par défaut
' sans attendre la fermeture du formulaire
'''Call SetDefaultPrinter(sOldPrinterName)
End If

Printer.TrackDefault = True

End Sub

a+
Jean-Pol DAVID
mailto:
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Nicolas Poirier" a écrit dans le message de news:
FQ_2d.29378$
> Je veux utiliser une fenêtre pour paramétrer l'impression, alors


j'utilise
> un "Common Dialog Box" comme ceci:
>
> Me.objDialogBox.DialogTitle = "Paramètres d'Impression"
> Me.objDialogBox.Flags = cdlPDPrintSetup
> Me.objDialogBox.Orientation = cdlPortrait
> Me.objDialogBox.PrinterDefault = False
> Me.objDialogBox.ShowPrinter
>
> Comme je veux choisir une imprimante, et y imprimer sans changer
> l'imprimante par défaut du système, j'ai sélectionné: PrinterDefault to
> false.
>
> Comment faire alors pour appliquer la sélection d'imprimante sur l'objet
> "Printer" ?
> Peu importe les choix effectués dans la fenêtre des paramètres, ils ne
> s'appliquent pas à l'objet "Printer" .
> Comment faire pour dire à l'objet "Printer" de se servir de l'imprimante
> choisie?
> Utiliser la collection "Printers" pour spécifier une imprimante
> particulière, comme avec Printers(3), fait en sorte que ses propiétées
> peuvent seulement être accédées en lecture seule.
>
> Également, à propos du "Common Dialog Box", j'ai touvé la propriété
> "Orientation" pour lire et écrire l'orientation du papier à utiliser.
> Quelles sont les propriétées ou les façons qui permettent d'accéder au
type
> de chargeur de feuilles, au format de papier et à la qualité


d'impression?
>
> Merci
> Nicolas Poirier
>
>




Avatar
David
Bonjour Nicolas,

Désolé pour l'oubli ! !

''Private Declare Function SetDefaultPrinter _
'' Lib "winspool.drv" Alias "SetDefaultPrinterA" _
'' (ByVal pszPrinter As String) As Boolean


Private Sub SelectPrinter(ByRef sPrinterName As String)
Dim prt As Printer

For Each prt In Printers
If (prt.DeviceName = sPrinterName) Then
Set Printer = prt
Exit For
End If
Next prt

End Sub

a+
Jean-Pol DAVID
mailto:
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Nicolas Poirier" a écrit dans le message de news:
lB03d.31004$
Merci :-) Mais il y a juste un petit problème, les fonctions SelectPrinter
et SetDefaultPrinter semblent ne pas faire partie des fonctions de VB6...

Nicolas

"David" a écrit dans le message de
news:
> Bonjour Nicolas,
>
> Voila comment j'y suis arrivé :
>
> Private Sub MnuC5_Click()
> Dim sOldPrinterName As String
>
> ' on conserve le nom de l'imprimante par défaut
> ''Printer.TrackDefault = True
> sOldPrinterName = Printer.DeviceName
>
> ' on permet la sélection d'une nouvelle imprimante
> CommonDialog1.ShowPrinter
>
> ' on vérifie si l'imprimante à changé
> If (Printer.DeviceName <> sOldPrinterName) Then
> ' on réselectionne l'ancienne imprimante
> Call SelectPrinter(sOldPrinterName)
>
> ' permet de remettre l'imprimante intiale par défaut
> ' sans attendre la fermeture du formulaire
> '''Call SetDefaultPrinter(sOldPrinterName)
> End If
>
> Printer.TrackDefault = True
>
> End Sub
>
> a+
> Jean-Pol DAVID
> mailto:
> ICQ 28394733
> --
> Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
> "Nicolas Poirier" a écrit dans le message de news:
> FQ_2d.29378$
> > Je veux utiliser une fenêtre pour paramétrer l'impression, alors
j'utilise
> > un "Common Dialog Box" comme ceci:
> >
> > Me.objDialogBox.DialogTitle = "Paramètres d'Impression"
> > Me.objDialogBox.Flags = cdlPDPrintSetup
> > Me.objDialogBox.Orientation = cdlPortrait
> > Me.objDialogBox.PrinterDefault = False
> > Me.objDialogBox.ShowPrinter
> >
> > Comme je veux choisir une imprimante, et y imprimer sans changer
> > l'imprimante par défaut du système, j'ai sélectionné: PrinterDefault


to
> > false.
> >
> > Comment faire alors pour appliquer la sélection d'imprimante sur


l'objet
> > "Printer" ?
> > Peu importe les choix effectués dans la fenêtre des paramètres, ils ne
> > s'appliquent pas à l'objet "Printer" .
> > Comment faire pour dire à l'objet "Printer" de se servir de


l'imprimante
> > choisie?
> > Utiliser la collection "Printers" pour spécifier une imprimante
> > particulière, comme avec Printers(3), fait en sorte que ses propiétées
> > peuvent seulement être accédées en lecture seule.
> >
> > Également, à propos du "Common Dialog Box", j'ai touvé la propriété
> > "Orientation" pour lire et écrire l'orientation du papier à utiliser.
> > Quelles sont les propriétées ou les façons qui permettent d'accéder au
> type
> > de chargeur de feuilles, au format de papier et à la qualité
d'impression?
> >
> > Merci
> > Nicolas Poirier
> >
> >
>
>




Avatar
André de la Chevrotière
Merci beaucoup pour les renseignements :-)

Ma recherche m'a fait découvrir un contrôle meilleur que le "Common Dialog
Box" qui s'appelle un "Print Dialog Box"
En voici tous les détails :

Microsoft Knowledge Base Article - 198712
PRB: CommonDialog Changes System Wide Printer Properties
http://support.microsoft.com/default.aspx?scid=kb;en-us;198712

Microsoft Knowledge Base Article - 322710
HOW TO: Raise and Control Print Dialog Boxes from Visual Basic
http://support.microsoft.com/default.aspx?scid=kb;en-us;322710

"David" a écrit dans le message de
news:
Bonjour Nicolas,

Désolé pour l'oubli ! !

''Private Declare Function SetDefaultPrinter _
'' Lib "winspool.drv" Alias "SetDefaultPrinterA" _
'' (ByVal pszPrinter As String) As Boolean


Private Sub SelectPrinter(ByRef sPrinterName As String)
Dim prt As Printer

For Each prt In Printers
If (prt.DeviceName = sPrinterName) Then
Set Printer = prt
Exit For
End If
Next prt

End Sub

a+
Jean-Pol DAVID
mailto:
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Nicolas Poirier" a écrit dans le message de news:
lB03d.31004$
> Merci :-) Mais il y a juste un petit problème, les fonctions


SelectPrinter
> et SetDefaultPrinter semblent ne pas faire partie des fonctions de


VB6...
>
> Nicolas
>
> "David" a écrit dans le message de
> news:
> > Bonjour Nicolas,
> >
> > Voila comment j'y suis arrivé :
> >
> > Private Sub MnuC5_Click()
> > Dim sOldPrinterName As String
> >
> > ' on conserve le nom de l'imprimante par défaut
> > ''Printer.TrackDefault = True
> > sOldPrinterName = Printer.DeviceName
> >
> > ' on permet la sélection d'une nouvelle imprimante
> > CommonDialog1.ShowPrinter
> >
> > ' on vérifie si l'imprimante à changé
> > If (Printer.DeviceName <> sOldPrinterName) Then
> > ' on réselectionne l'ancienne imprimante
> > Call SelectPrinter(sOldPrinterName)
> >
> > ' permet de remettre l'imprimante intiale par défaut
> > ' sans attendre la fermeture du formulaire
> > '''Call SetDefaultPrinter(sOldPrinterName)
> > End If
> >
> > Printer.TrackDefault = True
> >
> > End Sub
> >
> > a+
> > Jean-Pol DAVID
> > mailto:
> > ICQ 28394733
> > --
> > Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
> > "Nicolas Poirier" a écrit dans le message de news:
> > FQ_2d.29378$
> > > Je veux utiliser une fenêtre pour paramétrer l'impression, alors
> j'utilise
> > > un "Common Dialog Box" comme ceci:
> > >
> > > Me.objDialogBox.DialogTitle = "Paramètres d'Impression"
> > > Me.objDialogBox.Flags = cdlPDPrintSetup
> > > Me.objDialogBox.Orientation = cdlPortrait
> > > Me.objDialogBox.PrinterDefault = False
> > > Me.objDialogBox.ShowPrinter
> > >
> > > Comme je veux choisir une imprimante, et y imprimer sans changer
> > > l'imprimante par défaut du système, j'ai sélectionné: PrinterDefault
to
> > > false.
> > >
> > > Comment faire alors pour appliquer la sélection d'imprimante sur
l'objet
> > > "Printer" ?
> > > Peu importe les choix effectués dans la fenêtre des paramètres, ils


ne
> > > s'appliquent pas à l'objet "Printer" .
> > > Comment faire pour dire à l'objet "Printer" de se servir de
l'imprimante
> > > choisie?
> > > Utiliser la collection "Printers" pour spécifier une imprimante
> > > particulière, comme avec Printers(3), fait en sorte que ses


propiétées
> > > peuvent seulement être accédées en lecture seule.
> > >
> > > Également, à propos du "Common Dialog Box", j'ai touvé la propriété
> > > "Orientation" pour lire et écrire l'orientation du papier à


utiliser.
> > > Quelles sont les propriétées ou les façons qui permettent d'accéder


au
> > type
> > > de chargeur de feuilles, au format de papier et à la qualité
> d'impression?
> > >
> > > Merci
> > > Nicolas Poirier
> > >
> > >
> >
> >
>
>