Auteur de questions
Impression avec Visual Basic Express 2008

Question
-
Salut,
Après plusieurs semaines de recherches infructueuses, je me tourne vers vous pour savoir si quelqu'un pourrait m'aider.
J'ai créé une application sous VB Express 2008 et n'arrive pas à résoudre mon problème d'impression.
J'aimerais lors d'un click sur un bouton lancer l'impression de plusieurs fichiers word sur une imprimante avec certaines pages en couleurs et d'autres en noir et blanc.
Dans mon code, j'ai déjà les instructions pour connaître l'imprimante actuellement par défaut du poste (GetDefautPrinter), la changer par celle voulue pour l'impression (SetDefautPrinter) et les ordres spécifiques de l'impression des fichiers.
Mon souci réside dans l'utilisation du SetPrinter, OpenPrinter, ClosePrinter, GetPrinter avec les transferts d'informations vers les structures DEVMODE, PRINTER_DEFAULTS, etc.
Je sais que pour la couleur, il faut changer le dmColor dans le DEVMODE mais comment faire ?
Merci par avance de me filer un coup de main parce que là, je suis sec.
Toutes les réponses
-
-
Bonjour,
Voici mon code pour l'impression :
aWord =
New Word.Application()aWord.Visible = visible
Dim Missing As Object = System.Reflection.Missing.ValueaDoc = aWord.Documents.Open(fileName, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing)
Dim myTrue As Object = True Dim myFalse As Object = False Dim missingValue As Object = Type.Missing Dim range As Object = Word.WdPrintOutRange.wdPrintRangeOfPages Dim items As Object = Word.WdPrintOutItem.wdPrintDocumentContent Dim copies As Object = NbCopies Dim pages As Object = PlagePages Dim pageType As Object = Word.WdPrintOutPages.wdPrintAllPagesaDoc.PrintOut(myFalse, myFalse, range, missingValue, missingValue, missingValue, items, copies, pages, pageType, myFalse, myTrue, _
missingValue, myFalse, missingValue, missingValue, missingValue, missingValue)
aWord.Quit(myFalse, missingValue, missingValue)
aWord =
NothingaDoc =
Nothing CatchMessageBox.Show(
"Erreur lors de l'ouverture du document") End Try End SubJ'ai récupéré ce code au gré de mes recherches sur le site. J'en ai fait une classe.
Quand j'appelle la fonction ImprimerFichierWord, l'impression se fait sur l'imprimante que j'ai choisi avec le SetDefautPrinter.
ImprimerFichierWord(
"C:\NomFichier.doc", False, 1, "1, 6-7") Mais je ne sais pas comment changer les paramètres de l'imprimante (color) avec le OpenPrinter, puis SetPrinter.Celà répond-il à la question ?
Merci en tout cas de tenter de m'aider.
-
Je reviens vers vous. Je vois ma question qui descend doucement dans la liste et je m'inquiète. C'est la dernière partie de mon application et la plus importante en même temps. Tout le reste fonctionne sauf cette impression.
Personne n'a de solution pour moi ?
-
Bonjour,
Je ne suis pas sur que cela fonctionnera...
Word effectue lui-même un OpenPrinter, et paramètre lui même l'imprimante via SetPrinter.
Le fait d'ouvrir à nouveau l'imprimante via OpenPrinter, ne vous permettra pas de régler les paramétrages d'impression de votre document Word.
Une autre solution est créer 2 imprimantes sous Windows, l'une paramétrer en N&B l'autre en couleur et de lancer l'impression en conséquence.
Par contre je ne sais pas si avec les PIA de Word, il est possible de choisir l'imprimante sur laquel on veut imprimer...
Cordialement