Impression

cs_xavier77 Messages postés 95 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 17 avril 2013 - 13 mai 2004 à 10:52
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 13 mai 2004 à 14:35
Salut, alors voila, j'ai un petit soucis....
J'ai un prog en VB6 pour imprimer un fichier texte.... J'utilise l'objet PRINTER. J'arrive à faire des traits, changer la police, .... mais impossible de déterminer l'échelle de ma feuille. C'est à dire que je voudrait donner un nombre de caractères maximum par ligne. J'utilise déjà la police "courier" pour que mes caractères prennents la même place.
En fait, il me faudrait l'équivalant de la propriété ScaleWith pour mes chaines de caractères.

De plus, mon document n'est pas "fixe"; des que je change d'imprimante ou de police, toute la mise en page s'envoie en l'air!!!

Si quelqu'un à une petite idée sur le sujet.....
Merci. Xavier

4 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
13 mai 2004 à 11:27
C'est a toi de gerer la longueur maxi d'une ligne !!
Avant de faire un Printer.Print MaChaine, tu dois vérifier la longueur de MaChaine (=Len(MaChaine)) et éventuellement la couper our l'imprimer sur plusieurs lignes

Christophe R.
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
13 mai 2004 à 11:29
Bonjour
Tu peux utiliser la propriété
Printer.TextWidth("Texte") qui renvoie la longueur de "Texte" imprimé dans l'unité définie par Printer.ScaleMode
0
cs_xavier77 Messages postés 95 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 17 avril 2013
13 mai 2004 à 12:01
En fait mon problème est inverse; je ne veux pas connaitre la longueur de "texte", mais l'imposer !
je récupère un fichier qui s'imprime sous dos avec une certaine mise en page, et mon prog vb doit la reproduire. Je dessine des cadres nickel grace à la propriété scalewidth que je fixe à souhaits, mais je n'arrive pas à fixer la largeur des caractères que j'envoie (le size me va en hauteur mais pas en largeur)
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
13 mai 2004 à 14:35
Essaie un truc du genre :
Printer.FontSize = 72 ' c'est immense !!!
Do While Printer.TextWidth(Ligne_de_Texte) > Largeur_Voulue
   Printer.FontSize = Printer.FontSize - 1
Loop
'et là, tu imprimes avec la taille adéquate.
0
Rejoignez-nous