Silmon
Messages postés85Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 7 mai 2007
-
6 janv. 2004 à 23:03
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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é.
ludocam21
Messages postés29Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention22 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
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