none
Impression avec Visual Basic Express 2008 RRS feed

  • 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.

    jeudi 16 octobre 2008 07:02

Toutes les réponses

  • Bonjour,

     

    Pouvez-vous expliquer comment souhaitez vous imprimer vos fichiers Word ? Par pilotage de Word ou par ligne de commande ?

     

    Cordialement

     

    jeudi 16 octobre 2008 18:15
    Modérateur
  • Bonjour,

     

    Voici mon code pour l'impression :

     

    Public Shared Sub ImprimerFichierWord(ByVal fileName As Object, ByVal visible As Boolean, ByVal NbCopies As Integer, ByVal PlagePages As String)

    Try

    Dim aWord As Word.Application

    Dim aDoc As Word.Document

    aWord = New Word.Application()

    aWord.Visible = visible

    Dim Missing As Object = System.Reflection.Missing.Value

    aDoc = 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.wdPrintAllPages

    aDoc.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 = Nothing

    aDoc = Nothing

    Catch

    MessageBox.Show("Erreur lors de l'ouverture du document")

    End Try

    End Sub

     

    J'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.

    jeudi 16 octobre 2008 21:48
  • 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 ?

     

    mardi 21 octobre 2008 08:36
  • 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

     

    dimanche 26 octobre 2008 09:47
    Modérateur