En galère avec les images...

lepolio Messages postés 6 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 9 mars 2006 - 6 oct. 2003 à 13:33
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 6 oct. 2003 à 16:32
lepoliolepolio

Voilà, dans le cadre de mon activité j'ai scanné plusieurs documents pré-imprimés (formulaires, chèques, factures, bon de livraison...) tout simplement pour garder l'agencement et j'aimerais après traitement imprimé uniquement les labels modifié sur mes feuilles pré-imprimées. Avec la méthode printform l'image en arrière plan est quand même imprimée malgré sa propriété visible à false...
Je ne vous parle pas des feuilles au format A4 que j'aimerais afficher et modifier à l'écran avec une barre de défilement verticale par exemple.
D'avance merci à celui ou celle qui me sortira de cette galère.

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
6 oct. 2003 à 16:32
Public Sub print_form()
Call Me.init_Form
For Each ctrl In Me.Controls
Call print_control(printer, ctrl)
Next
printer.EndDoc
End Sub

Private Sub print_control(printer As printer, ByVal control As Object)
If (Left(control.Name, 4) = "Line") Then
printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
ElseIf (Left(control.Name, 5) = "Image") Then
'printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
Dim stdPict As New StdPicture
Set stdPict = LoadPicture(App.Path & "\un logo.jpg")
printer.PaintPicture stdPict, control.Left, control.Top, control.Width, control.Height
Else

Select Case control.Alignment
Case vbCenter

printer.CurrentX = control.Left + control.Width / 2 - printer.TextWidth(control.Caption) \ 2
Case vbLeftJustify
printer.CurrentX = control.Left
Case vbRightJustify
printer.CurrentX = control.Left + control.Width - printer.TextWidth(control.Caption)
End Select

printer.CurrentY = control.Top

printer.FontBold = control.Font.Bold
printer.Font.Name = control.Font.Name
printer.Font.Size = control.Font.Size
If (LCase(Left(control.Name, 2) "lb")) Or (Left(control.Name, 5) "Label") Then
printer.Print control.Caption
Else
MsgBox control.Name
End If
End If
End Sub

avec cette methode j'ai l'image de fond qui reste j'imprime que les controles

le pb c'esst que les controles ne correspond pas trop au emplacement sur l'image de fond

:-)
0
Rejoignez-nous