VB6 : changement de bac d'imprimante

Signaler
Messages postés
2
Date d'inscription
lundi 11 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015
-
Messages postés
2
Date d'inscription
lundi 11 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015
-
Bonjour,
Suite à un changement de système d'impression dans mon entreprise, je dois adapter mon application VB6 pour que l'utilisateur puisse changer de bac d'impression.

Besoin métier :
Les utilisateurs génèrent différents types de rapports, sur du papier à en-tête, des feuilles en couleur ou des feuilles blanches.
Ils doivent donc pouvoir sélectionner le bac correspondant au papier voulu.

Situation actuelle :
L'application utilise l'objet vsPrinter (VideoSoft VSVIEW 6.0). Avant d'appeler la méthode .PrintDoc, je change la valeur de la propriété .PaperBin pour le choix du bac à utiliser.
Quel que soit le bac sélectionné, c'est systématiquement le bac configuré dans l'imprimante par défaut qui est utilisé. J'arrive à forcer un changement d'imprimante (propriété .Device), mais le bac reste toujours celui par défaut.
Si l'imprimante par défaut est changée pendant que l'application VB est active, ce changement n'est pas pris en compte par l'application ; pour qu'il soit effectif, il faut arrêter puis relancer l'application.

En fouillant de nombreux forums, dont celui-ci, j'ai trouvé plusieurs descriptions de ce bug identifié ainsi que plusieurs "solutions" pouvant résoudre mon problème ; malheureusement, aucune ne fonctionne.

Dans cette même configuration (VB6, composant vsPrinter, Windows serveur 2003), qqn a trouvé une solution pour forcer un changement de bac ?

Merci d'avance !

1 réponse

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjouyr,
Je ne connais pas ce composant. J'utilise personnellement l'objet Printer de VB6.
Mais une chose est certaine, quel que soit le composant utilisé :
Tout dépend du pilote de l'imprimante et de sa totale compatibilité avec Windows.
Lis ceci :
http://helpcentral.componentone.com/nethelp/vsview8/default.htm#!paperbinproperty.htm
et intéresse-toi plus particulièrement à ce moreceau de code qui y est suggéré :
For i = 1 To 15
If vp.PaperBins(i) Then Debug.Print " bin "; i; " available"
Next


Notons que ce serait la même chose avec l'objet Printer de VB6

Messages postés
2
Date d'inscription
lundi 11 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015

Bonjour ucfoutu,
Merci pour ta réponse.

J'avais malheureusement déjà vérifié la disponibilité des bacs et ce code me confirme que le bac que je veux sélectionner est bien géré par le driver.
Je vais donc continuer mes recherches.

Bonne journée