Préambule
Le présent article va concerner l’utilisation de l’objet printer. Dans la première partie de cet article nous étudierons l’objet, ses propriétés et ses méthodes. Dans la seconde, nous verrons plusieurs méthodes pour simplifier son utilisation.
L’objet printer minus
Peu d’objet de Visual Basic crée une telle répulsion que l’objet printer. De par le fait de sa simplicité, et parce que l’impression est véritablement propre à chaque application, on ne trouve que très peu d’exemple d’utilisation de cet objet. Dans l’imaginaire, l’objet printer évoque des codes interminables, impossible à maintenir et demandant des heures de mises au point. Ceci est tellement vrai que l’on rencontre beaucoup de contrôles payants, souvent assez chers, censés simplifier la tâche. Quelques utilisateurs ont contourné le problème en détournant le Data Report pour réaliser leurs impressions. Je vais tenter de démontrer dans cet article, que la réputation sulfureuse de cet objet est infondée et qu’il s’agit d’un objet puissant, aisé à utiliser, permettant de réaliser des impressions de grandes qualités.
J’imprime vers…
Avant de pouvoir imprimer, il va falloir utiliser un outil pour configurer l’imprimante et l’impression. Bien que les méthodes soient nombreuses, je préconise d’utiliser la boite de dialogue d’impression des CommonDialogs. Elle est simple à utiliser, et couvre largement les besoins classiques. A noter toutefois qu’il faut utiliser la propriété Flags pour la configurer au mieux.
Quelques points à noter toutefois :
- Il faut que la propriété Printer Default soit vraie pour que le choix de l’utilisateur se répercute correctement.
- Changer l’imprimante par défaut, n’est valide que pour la durée du programme.
- On valorise la propriétés Flags=&H40& pour appeler la boite de configuration de l’imprimante.
L’objet printer à terre
En lui-même, cet objet est très simple. Il est membre de la collection Printers, qui représente l’ensemble des imprimantes disponibles sur le système. Regardons d’abord ses propriétés en les rangeant en deux catégories. Celles que l’on utilise en configuration, et celles dont on se sert au cours de l’impression. La notation (RcdImp) signifie qu’on valorise la propriété en général lors de la récupération de la boite de dialogue impression. Cette liste n’est pas exhaustive.
N.B : Dans cet article nous utiliserons le terme méthode graphique pour toutes les impressions qui ne sont pas du texte. (Ex : Circle, Line, PaintPicture…).
Configuration
- ColorMode : Défini si une imprimante couleur imprime ou non en couleur.
- Copies (RcdImp) : Nombre de copies
- Duplex : Impression recto verso
- Height, Width : Servent à connaître les dimensions de la feuille. Utilisez les seulement en lecture, afin de ne pas modifier la propriété PaperSize implicitement, ce qui risquerait de provoquer une erreur.
- Orientation (RcdImp) : Portrait ou paysage.
- PaperSize : Taille du papier. Dans cet article, tout sera construit autour du format A4.
- PrintQuality : Qualité de l’impression, va de brouillon à haute.
- ScaleMode : Unité de l’échelle. Par habitude j’utilise toujours 6 – Millimeter. Cette propriété est très importante, car elle va permettre de contrôler la position exacte de l’impression. Il est donc fortement conseillé de la définir au début et de ne plus la modifier.
Impression
- DrawMode, DrawStyle, DrawWidth sont des propriétés de traçage des méthodes graphiques telles que l’épaisseur du trait, pointillés etc…
- FillColor et FillStyle sont des propriétés de remplissage des méthodes graphiques.
- Font, FontBold, FontItalic, FontStrikethru, FontUnderline, FontSize, FontName sont les propriétés de police du texte.
- CurrentX, CurrentY sont les propriétés de position d’impression. Elles définissent le coin supérieur gauche du début de l’impression. Elles sont fondamentales à l’écriture d’un gestionnaire d’impression réussie, mais j’y reviendrai largement dans la deuxième partie. CurrentX augmente de la gauche vers la droite, et CurrentY du haut vers le bas.