petiflamand
Messages postés675Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention26 mai 2013
-
6 avril 2007 à 20:26
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
7 avril 2007 à 12:08
Bonjour , j' ai un probleme avec l' impression de cadre avec la
fonction Printer.Line (l + 40, H + 5)-(l + 150, H + 20), vbBlack, B
J' ai une page pour imprimer des codebars quand je les imprimes cela fonctionne tres bien
Mais quand je revient sur l'impression avec
Printer.Line (l + 40, H + 5)-(l + 150, H + 20), vbBlack, B
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 6 avril 2007 à 21:31
Bonsoir,
Des idées et sans ton code ?
Oh oui ! plusieurs quand même !
On commence par des questions toute bêtes :
1) que sont l et H ? des variables ? coment leur valeur est-elle déterminée ? dans une boucle ou autrement ?
2) quel est donc le scalemode donné à ton objet Printer (car 150 millimètres sont très différents de 150 twips, surtout si tu es dans une boucle de l et de H)
Bref : on ne va pas continuer à jouer aux devinettes et on attend ton code commenté pour pouvoir t'éclairer en connaissance de cause ...
petiflamand
Messages postés675Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention26 mai 20131 6 avril 2007 à 22:20
voici pour l'impression du codebare
Function Impetiq70x36() As String
' ici pour le code
Dim nbr As Integer
Dim NomPrinter As String
Dim bool As Boolean
Dim i As Integer
Dim compt As Integer
Dim x As Integer
'CommonDialog1.Action = 5
'bool = CommonDialog1.PrinterDefault
If Option1.Value = True Then
nbr = 1
Else:
nbr = 2
End If
Printer.EndDoc
For i = 0 To 21
List1(i).Clear
Next i
List2.Clear
Text3.Text = ""
Frame2.Caption = "Page 1"
Command4.Caption = ""
ReDim Barcode(3, 0)
ro = 0i 0 ET VOICI POUR L'IMPRESSION DE MES COLONNE===
===========================================
un petit morceau
Dim pag As Integer
nomImprimante = "imprimante cloture"
For Each imprimante In Printers
If nomImprimante = imprimante.DeviceName Then
Set Printer = imprimante
Exit For
End If
Next
b = 0
'-----------------debut impression----------------------------
Set db = OpenDatabase(App.Path & "\manager.mdb")
Set rs = db.OpenRecordset("param")
param(1) = rs!nom
param(2) = rs!rue
param(3) = rs!commune
param(4) = rs!telephone
param(8) = rs!fax
param(5) = rs!gsm
param(6) = rs!compte
param(7) = rs!n_entrepriseIf facturation.Option1.Value True Then nbr 1If facturation.Option2.Value True Then nbr 2
Printer.Copies = (nbr)
Printer.DrawWidth = 1
Printer.CurrentX = 5
Printer.CurrentY = 5
l = Printer.CurrentX
H = Printer.CurrentY
Printer.ScaleMode = vbMillimeters
Printer.Print
Printer.Font = "Times New Roman"
Printer.Line (l + 40, H + 5)-(l + 150, H + 20), vbBlack, B 'cadre titre
'Printer.Line (L + 24, H)-(L + 24, H + 39.5), vbBlack
Printer.FontBold = True
Printer.CurrentX = l + 60 - (Len(param(1)) / 2)
Printer.CurrentY = H + 8
Printer.FontSize = 20
Printer.Print param(1) ' "STATION PILOTH"
Printer.FontBold = False
Printer.Line (l, H + 23)-(l + 57, H + 55), vbBlack, B ' cadre detail societer
Printer.FontBold = True
Printer.FontSize = 10
Printer.CurrentX = 8
Printer.CurrentY = 30
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 6 avril 2007 à 23:04
Bon...
Nous allons ensemble parler de choses sérieuses :
Il n'y a aucune différence entre une pictureBox et l'ibjet printer :
J'ai donc fait un petit test sur ma machine (et je t'engage à en faire autant), que voilà
Private Sub Command1_Click()
Dim param(1)
param(1) = "totototototo"
Picture1.DrawWidth = 1
Picture1.CurrentX = 5
Picture1.CurrentY = 5
l = Picture1.CurrentX
H = Picture1.CurrentY
Picture1.ScaleMode = vbMillimeters
Picture1.Print
Picture1.Font = "Times New Roman"
Picture1.Line (l + 40, H + 5)-(l + 150, H + 20), vbBlack, B 'cadre titre
'picture1.Line (L + 24, H)-(L + 24, H + 39.5), vbBlack
Picture1.FontBold = True
Picture1.CurrentX = l + 60 - (Len(param(1)) / 2)
Picture1.CurrentY = H + 8
Picture1.FontSize = 20
Picture1.Print param(1) ' "STATION PILOTH"
Picture1.FontBold = False
Picture1.Line (l, H + 23)-(l + 57, H + 55), vbBlack, B ' cadre detail societer
Picture1.FontBold = True
Picture1.FontSize = 10
Picture1.CurrentX = 8
Picture1.CurrentY = 30
End Sub
Ru remarqueras que, dans l'ignorance totale de ce qu'il y a dans param(1), il m'a fallu tester avec une valeur arbitraire (en rouge)
et je n'ai eu aucun problème
observation toutefois : avec un chaine plus longue, le texte de param(1) déborderait di 1er cadre, dans certains cas et ne serait carrément pas imprimé dans d'autres cas (selon la longueur, si elle est très grande)
Ceci étant dit :
- tu n'y vas pas avec le dos de la cyeullère avec un scalemode en centimètres (des millimètres seraient suffisants et plus précis) mais bon.... le problème n'est pas là
- je ne vois nulle part où tu as défini les dimensions (hauteur et largeur en centimètres) de ton objet Printer... et le problème est très probablement là !...ma foi ...
petiflamand
Messages postés675Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention26 mai 20131 7 avril 2007 à 08:38
Merci d' avoir voulu m' aider , j' ai trouvé , c' est une erreur de ma pars
pour imprimer les codebares j' imprime avec : Printer.DrawStyle = 5
alors que pour mes cadres il y avait rien , donc il gardait ce 5
j'ai remis Printer.DrawStyle = 0 avant d'imprimer mes cadres et cela fonctionne NIKEL
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 7 avril 2007 à 12:08
Re,
Dis-moi,
J'ai relu ton code, qui me parait bien dépendant de la police utilisée, de sa taille, etc...
Tu devrais peut-être t'intéresser à TextWidth et TextHeight (vois ton aide en ligne).
Tu en tirerais sanbs aucun doute le plus grand bénéfice pour la "cadrage" de ton impression