MARGE IMPRESSION

Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007 - 6 janv. 2004 à 23:03
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 23 juin 2005 à 12:39
SIMON LEBON:
Sur VB, il semble que toute impression lancée avec l'objet printer, obéit à une marge.
Est-il possible de modifier cette marge?

Dans mon cas, je veux imprimer une form de hauteur 29 cm.
Mais le bout de cette form est coupé a environ 1 cm de la fin.

C'est super important pour mon boulot! Pleeeeeeeeeeeease.

9 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 janv. 2004 à 06:54
Il faut déja que tu valide le fait que tu ne cherches pas à imprimer en dehors des marges physiques de ton imprimante....... (29 Cm , ca laisse 7mm de marge.... soir 3.5mm de chaque coté.... pas très grand comme marge !!! )

sinon, tout dépends de ton code pour imprimer...

si tu utilises PrintForm, tu n'a je crois que très peu de controle sur ce que tu fais. Essaies de t'orienter vers un PaintPicture.

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
ludocam21 Messages postés 29 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 22 juin 2005
22 juin 2005 à 11:24
Bonjour, je pense que mon problème est similaire,

en fait je voudrais établir une marge de 2 cm à gauche à l'impression de ma textbox mais je n'y arrive pas. J'ai essayé avec ça:

Printer.ScaleMode = vbMillimeters
Printer.CurrentX = 20

mais la marge ne s'applique qu'à la première ligne de texte et pas au reste.

si quelqu'un peut m'aider ça serait sympa
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 juin 2005 à 12:11
donne moi les quelques instructions qui suivent, qui concernent l'impression.
CurrentX definit la position X courante... elle est constamment modifiée dès que qq chose est dessiné.

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
ludocam21 Messages postés 29 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 22 juin 2005
22 juin 2005 à 12:24
voici mon code en entier:

Private Sub IMPRIMER_SELECTION_Click()
Printer.Font = "Times New Roman"
Printer.FontSize = 12
Printer.ScaleMode = vbMillimeters
Printer.CurrentY = 20
Printer.Print Text1.SelText
Printer.EndDoc
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 juin 2005 à 13:19
ok.... Print reviens a la ligne a chaque fois, et ce faisant replace CurrentX à 0 ...

pour corriger cela, il faut imprimer les lignes une a une... voici a quoi peut ressembler le code nécessaire

Dim Lignes() As String
Lignes = Split ( Text1.SelText , VbNewLine )

For i = LBound ( Lignes) to Ubound ( Lignes)
Printer.CurrentX = 20
Printer.Print Lignes(i)
Printer.CurrentY = Printer.CurrentY + 7
Next i

CurrentX = 20

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
ludocam21 Messages postés 29 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 22 juin 2005
23 juin 2005 à 10:39
Merci, ton code m'aide beaucoup; mais c'est pas encore bon; en fait la marge est appliquée aux autres lignes, mais il m'imprime deux fois la même chose à la suite; d'abord le texte avec la marge à deux centimètres (ça c'est bon) et le même texte sans la marge à la suite;
Voici mon code avec ce que tu m'a passé:

Private Sub IMPRIMER_SELECTION_Click()
Dim Lignes() As String
Lignes = Split(Text1.SelText, vbNewLine)


For i = LBound(Lignes) To UBound(Lignes)
Printer.CurrentX = 20
Printer.Print Lignes(i)
Printer.CurrentY = Printer.CurrentY + 7
Next i

Printer.ScaleMode = vbMillimeters
Printer.CurrentX = 20
Printer.Font = "Times New Roman"
Printer.FontSize = 12
Printer.Print Text1.SelText
Printer.EndDoc
End Sub

Et un autre problème c'est que ça saute une ligne entre chaque ligne - je me suis dit que c'était à cause de "Printer.CurrentY = Printer.CurrentY + 7"
donc j'ai enlevé le "+7" et la ça imprime bien mais y'a toujours les texte en double et superposé sur la fin;

merci de ton aide si tu vois pourquoi ça peut faire ça
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 juin 2005 à 12:03
normal, tu lui dit toujours d'impreimer le texte "a l'ancienne"

Private Sub IMPRIMER_SELECTION_Click()
Dim Lignes() As String
Lignes = Split(Text1.SelText, vbNewLine)

Printer.ScaleMode = vbMillimeters
Printer.Font = "Times New Roman"
Printer.FontSize = 12

For i = LBound(Lignes) To UBound(Lignes)
Printer.CurrentX = 20
Printer.Print Lignes(i)
' Printer.CurrentY = Printer.CurrentY + 7 INUTILE : Print décale tout seul le curseur afin de sauter une ligne
Next i

' Printer.Print Text1.SelText NE PAS REDESSINER LE TEXTE ....
Printer.EndDoc
End Sub

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
ludocam21 Messages postés 29 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 22 juin 2005
23 juin 2005 à 12:31
Merci! c'est génial ça marche nickel !


juste une dernière question, tant que j'y suis, pour définir la marge à droite, et celle d'en haut et d'en bas, il faut faire comment ?


Il me sembe que celle du haut ça doit être currenty, mais je sais pas trop pour le reste.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 juin 2005 à 12:39
Il va falloir t'amuser avec d'autres armes, si tu veux créer une marge droite.

Je pense aux API, et plus particulièrement à DrawText.

l'avantage est que tu n'aura besoin que d'un appel pour gérer toutes tes marges, et toutes tes lignes (plus de Split)

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
Rejoignez-nous