Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sélectionner l'alimentation manuel d'une imprimante URGENT !!

5 réponses
Avatar
S i m b a d
Bonjour,
J'ai un problème en vb6.
Dans mon programme je veux sélectionner l'alimentation manuel pour imprimer
sur un format «legal», dans mon autre bac j'ai du papier «letter».
J'attribue les valeurs :
- Printer.PaperSize = vbPRPSLegal (5)
et j'ai un message d'erreur : valeur de propriété incorrecte

Comment dois-je faire pour prendre le bac d'alimentation manuel et avoir du
papier legal ?

Merci

P. Bouchard

5 réponses

Avatar
jmn
Il faut utiliser la propriété printer.PaperBin, avec l'une des valeurs
suivantes :

vbPRBNUpper 1 Use paper from the upper bin.
vbPRBNLower 2 Use paper from the lower bin.
vbPRBNMiddle 3 Use paper from the middle bin.
vbPRBNManual 4 Wait for manual insertion of each sheet of paper.
vbPRBNEnvelope 5 Use envelopes from the envelope feeder.
vbPRBNEnvManual 6 Use envelopes from the envelope feeder, but wait for
manual insertion.
vbPRBNAuto 7 (Default) Use paper from the current default bin.
vbPRBNTractor 8 Use paper fed from the tractor feeder.
vbPRBNSmallFmt 9 Use paper from the small paper feeder.
vbPRBNLargeFmt 10 Use paper from the large paper bin.
vbPRBNLargeCapacity 11 Use paper from the large capacity feeder.
vbPRBNCassette 14 Use paper from the attached cassette cartridge


Attention, pour de nombreuses imprimantes 'exotiques' (genre photocop multi
fonctions) il convient de faire des essais car les drivers fournis ne
respectent pas toujours ces conventions.
Avatar
Pascal B.
|"jmn" wrote in message:
| Attention, pour de nombreuses imprimantes 'exotiques' (genre photocop multi
| fonctions) il convient de faire des essais car les drivers fournis ne
| respectent pas toujours ces conventions.

C'est pour cela qu'il exist une DLL qui permet de connaître les différents "PaperBin" d'une imprimante:

Private Declare Function DeviceCapabilities Lib "winspool.drv" _
Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, _
ByVal lpPort As String, ByVal iIndex As Long, lpOutput As Any, _
ByVal dev As Long) As Long

Ici le lien (http://support.microsoft.com/kb/q194789/) pour son fonctionnement.

Amicalement,
Pascal B.
Avatar
S i m b a d
Merci pour la DLL, je vais la garder.

Mais ça ne fonctionne toujours pas... j'ai encore la même erreur ! Soit
380 - Valeur de propriété incorrecte.

J'ai essayé avec la DLL pour connaître les différents «PaperBin» de
l'imprimante :
Apple LaserWriter 16/600 PS
15 Automatically Select
257 Multipurpose Tray
258 Envelope Feeder
259 Cassette (250 Sheets)
260 Cassette (500 Sheets)
4 Manual Feed

Peu importe la sélection du :
- PaperBin = 4 et PaperSize = vbPRPSLegal
- PaperBin = 15 et PaperSize = vbPRPSLegal
J'ai toujours la même erreur !
J'ai essayé aussi de sélectionner le PaperBin = 4 (Manuel Feed) sans
spécifier de PaperSize, mais en assignant le valeur de Printer.ScaleWidth 11900 et Printer.ScaleHeight = 18600. Effectivement le bac sélectionner est
manuel mais l'impression est compressée sur la longeur en format «letter».

Je ne sais pas comment contourner le problème ! As-tu une autre solution...


Merci d'avance !

P. Bouchard



"Pascal B." wrote in message
news:%
|"jmn" wrote in message:
| Attention, pour de nombreuses imprimantes 'exotiques' (genre photocop


multi
| fonctions) il convient de faire des essais car les drivers fournis ne
| respectent pas toujours ces conventions.

C'est pour cela qu'il exist une DLL qui permet de connaître les différents


"PaperBin" d'une imprimante:

Private Declare Function DeviceCapabilities Lib "winspool.drv" _
Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, _
ByVal lpPort As String, ByVal iIndex As Long, lpOutput As Any, _
ByVal dev As Long) As Long

Ici le lien (http://support.microsoft.com/kb/q194789/) pour son


fonctionnement.

Amicalement,
Pascal B.




Avatar
Alfred Wallace
Bonjour,

VB ne permet de modifier que les propriétés de l'imprimante par défaut.
Est-ce bien ton cas ?

Sinon à tout hasard, pour positionner l'imprimante sélectionnée comme
défaut:

Dim xPrt As Printer
xPrt.DeviceName = "Imprimante Laser XX" ' DeviceName de
l'imprimante cible
Set Printer = xPrt

Voir également les articles de la KB sur l'objet Printer car manifestement
il pose pas mal de problèmes à l'utilisation.

Perso, j'ai choisi depuis longtemps d'utiliser les API pour les propriétés
d'une imprimante.
Luc


"S i m b a d" a écrit dans le message de
news:%
Bonjour,
J'ai un problème en vb6.
Dans mon programme je veux sélectionner l'alimentation manuel pour


imprimer
sur un format «legal», dans mon autre bac j'ai du papier «letter».
J'attribue les valeurs :
- Printer.PaperSize = vbPRPSLegal (5)
et j'ai un message d'erreur : valeur de propriété incorrecte

Comment dois-je faire pour prendre le bac d'alimentation manuel et avoir


du
papier legal ?

Merci

P. Bouchard




Avatar
S i m b a d
Comment faire pour utiliser les API d'imprimante.

Merci


"Alfred Wallace" <nobody> a écrit dans le message de news:

Bonjour,

VB ne permet de modifier que les propriétés de l'imprimante par défaut.
Est-ce bien ton cas ?

Sinon à tout hasard, pour positionner l'imprimante sélectionnée comme
défaut:

Dim xPrt As Printer
xPrt.DeviceName = "Imprimante Laser XX" ' DeviceName de
l'imprimante cible
Set Printer = xPrt

Voir également les articles de la KB sur l'objet Printer car manifestement
il pose pas mal de problèmes à l'utilisation.

Perso, j'ai choisi depuis longtemps d'utiliser les API pour les propriétés
d'une imprimante.
Luc


"S i m b a d" a écrit dans le message de
news:%
Bonjour,
J'ai un problème en vb6.
Dans mon programme je veux sélectionner l'alimentation manuel pour


imprimer
sur un format «legal», dans mon autre bac j'ai du papier «letter».
J'attribue les valeurs :
- Printer.PaperSize = vbPRPSLegal (5)
et j'ai un message d'erreur : valeur de propriété incorrecte

Comment dois-je faire pour prendre le bac d'alimentation manuel et avoir


du
papier legal ?

Merci

P. Bouchard