Question 13

Comment ajouter un aperçu avant impression à mon application VB ?

Il n'existe pas de contrôle permettant de le faire automatiquement, il faut le programmer manuellement. La méthode pour le programmer est plus simple depuis la version 5 de Visual Basic car l'objet Printer n'y est plus un objet système et il peut donc être passé en paramètre d'une fonction ou d'une procédure. Les fiches suivantes de la base de connaissance MSDN permettent
de se documenter sur le sujet :

Pour les versions 5.0 et 6.0 de Visual Basic, le principe est le suivant :

  1. Placer un contrôle PictureBox sur une feuille
  2. Calculer le ratio entre ses dimensions et celles de l'objet Printer (cf. la routine proposée par Microsoft)
  3. Redimensionner le PictureBox de façon qu'il soit une copie de la feuille physique (donc de l'objet printer) : cela permet d'obtenir le bon ratio longueur/largeur pour le PictureBox (qu'il ait le même que l'objet printer)
  4. Ecrire la routine d'impression de façon à ce que l'on puisse passer en argument soit l'objet PictureBox, soit l'objet Printer

Par exemple pour Ecrire « Salut tout le monde », en Times New Roman, gras, Police 14, et souligné, en position X=200, Y=500 de la feuille et en voir l'aperçu, la routine serait la suivante :

Private sub Impression_ou_Aperçu (objDestination as Object, Optional dRatio as double = 1)
'dRatio est le rapport précédemment cité entre la taille du PictureBox et
'celle de l'objet Printer

    With objDestination
        .FontName = "Times New Roman"
        .FontSize = 14 * dRatio
        .FontUnderline = true
        .CurrentX = 200 * dRatio
        .CurrentY = 500 * dRatio
    End With

    ObjDestination.Print "Salut tout le monde"

End Sub

Il ne reste plus qu'à appeler la routine comme ceci (prenons par exemple un PictureBox qui fasse le quart de taille de l'objet printer, le ratio est donc de 0,25)

'Pour l'aperçu :
Call Impression_ou_Aperçu (PictureBox, 0.25)

'Pour l'impression :
Call Impression_ou_Aperçu (Printer)

Pour l'impression des images, le principe est le même, il suffit d'appliquer le fameux ratio dRatio aux dimensions et coordonnées de l'image à afficher sur l'un ou l'autre des objets destination et d'utiliser la fonction objDestination.PaintPicture.

Date de publication : 07 juillet 2002
Dernière modification : 07 juillet 2002
Rubriques : Impression
Mots-clés : aperçu, impression