VB6 : changement de bac d'imprimante

sierrov Messages postés 2 Date d'inscription lundi 11 mai 2015 Statut Membre Dernière intervention 12 mai 2015 - 11 mai 2015 à 17:13
sierrov Messages postés 2 Date d'inscription lundi 11 mai 2015 Statut Membre Dernière intervention 12 mai 2015 - 12 mai 2015 à 09:12
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 mai 2015 à 18:22
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

0
sierrov Messages postés 2 Date d'inscription lundi 11 mai 2015 Statut Membre Dernière intervention 12 mai 2015
12 mai 2015 à 09:12
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
0
Rejoignez-nous