Comment centrer un texte sur une page à imprimer ?
Comme toujours quand il s'agit d'impression, il faut le faire
"à la main", avec du code, car il n'existe pas de fonction toute
faite le permettant.
L'idée est de se servir de la fonction "TextWidth" de l'objet "Printer",
qui permet de déterminer la largeur d'une chaîne de caractères en fonction de
la police choisie. Avant d'utiliser cette fonction, il faut donc évidemment
déterminer la taille et le type de la police qui sera utilisée, sinon la
valeur renvoyée ne sera pas exacte.
Dim sTexte as String
sTexte = "Ceci est un texte centré"
Printer.ScaleMode = vbCentimeters
Printer.FontSize = 14
Printer.FontName = "Times New Roman"
Printer.CurrentX = (Printer.Width - Printer.TextWidth (sTexte)) / 2
Printer.CurrentY = (Printer.Height - Printer.TextHeight (sTexte)) / 2
Printer.Print sTexte
Printer.EndDoc
Pour centrer un texte verticalement, le principe est exactement
le même avec la méthode "TextHeight" de l'objet "Printer". |