cs_sandrine77
Messages postés8Date d'inscriptionlundi 15 juillet 2002StatutMembreDernière intervention 3 novembre 2003
-
3 nov. 2003 à 17:52
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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
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.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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....
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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.
cs_sandrine77
Messages postés8Date d'inscriptionlundi 15 juillet 2002StatutMembreDerniè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