Centrer une texte

cs_sandrine77 Messages postés 8 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 3 novembre 2003 - 3 nov. 2003 à 17:52
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 3 nov. 2003 à 22:09
'Salut TLM
'Voila c'est un code que j'ai trouver sur http://faq.vb.free.fr pour imprimer un texte centrer, mais ma feuille s'imprime vide aucun texte n'est imprimer J'ai étudier ce code qui ma permi de 'concevoir un autres code, le miens marche bient sauf qu'il ya le probleme de la taille des caracteres.
'si vous avez une solution aider moi svp ( je cherche a imprimer text1 au centre d'une feuille A4.
'Merci d'avance

'Voici le code de http://faq.vb.free.fr aucun texte n'est imprimer

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

'Et voici mon code 'quand j'imprime 20 caracteres de "IIIIIIIIIIIIIIIIIIII" ca s'imprime sur la gauche et quand j'imprime 20 caracteres de "WWWWWWWWWWWWWWWWWWWW" ca s'imprime sur la droit.

Dim longueur
longueur = Len(Text1.Text)
Printer.FontSize = 14
Printer.FontName = "Times New Roman"
Printer.CurrentY = 3
Printer.CurrentX = (21 - 0.51 * longueur) / 2
Printer.Print Text1.Text
Printer.EndDoc

'Merci d'avance

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 nov. 2003 à 18:11
il faudrait que tu essaies de changer le ScaleMode.

le mettre en VbPixels, serait une bonne idee.....

parce que la, tu utilise des constantes (.51) et tu te reference par rappor au nombre de caracteres de te chaine. tu considere donc que tu utilises une police a chasse fixe : que tous les caractères sont de la même taille, ce qui est faux pour une Times New Roman (c'est vrai pour une Courrier, par exemple...). Cette facon de coder est vraiment mauvaise :-(

il faudrais que tu exploite toi aussi TextHeight et TextWidth.

je n'ai pas de quoi tester, la ou je suis, mais le code que tu as pu trouver ne me semble pas mauvais. une simple erreur d'echelle, peut-etre.....

de plus, assures toi que Printer.Width et Printer.height soient bien renseignés....

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 nov. 2003 à 20:21
Salut sandrine77
Oui, RenField a raison.
Ne confonds pas Len(Texte) et TextWidth(Texte) :
Len te renverra le nombre de caractères
TextWidth te renverra la taille, en twips, de ton texte, en tenant compte de ta police et de sa taille.

Donc, après avoir choisi ta police et la taille (et le gras, italic ...), le code que tu présente au début est correct.

Vala
Jack
0
cs_sandrine77 Messages postés 8 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 3 novembre 2003
3 nov. 2003 à 22:07
Ben Vraiment bravo

'j'ai mis 9300 car Printer.Width n'imprime pas vraiment au milieu.
'je tien aussi a vous dir que c'est grace a vous que j'ai resolut ce probleme car il dur de 3 longues journee.

Dim sTexte As String
sTexte = Text1.Text
Printer.ScaleMode = vbPixels
Printer.FontSize = 10
Printer.FontName = "Times New Roman"Printer.CurrentX (9300 - Printer.TextWidth(sTexte)) / 2 Printer.ScaleMode vbCentimeters
Printer.CurrentY = 10 ' La hauteur
Printer.Print sTexte
Printer.EndDoc

1000 fois Merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 nov. 2003 à 22:09
Pas de problème....
Content que cela fonctionne.....

tu aurais pu t'epargner 3 jours d'attente, mais c'est bien de perceverer..... c'est bien aussi de savoir appeler a l'&aide ;)

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
Rejoignez-nous