sierrov
Messages postés2Date d'inscriptionlundi 11 mai 2015StatutMembreDernière intervention12 mai 2015
-
11 mai 2015 à 17:13
sierrov
Messages postés2Date d'inscriptionlundi 11 mai 2015StatutMembreDernière intervention12 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 ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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
sierrov
Messages postés2Date d'inscriptionlundi 11 mai 2015StatutMembreDernière intervention12 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.
12 mai 2015 à 09:12
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