Impression sur vb.net [Résolu]

Messages postés
50
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
4 novembre 2008
- - Dernière réponse : cs_vara956
Messages postés
50
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
4 novembre 2008
- 27 juil. 2006 à 15:51
Salut,

je sais maitriser le composant printdocument dans mon apli, faire un apercu, imprimer mais je pige pas comment fait on pour faire une deuxieme page ?

voici un morceaux de mon code

'icone(logo)e.Graphics.DrawString("ABB Entrelec", printfontA, Brush, 20, 35)

e.Graphics.DrawLine(blackPen, x1, y1, x2, y2)

e.Graphics.DrawString("Siège social :" & vbTab & "10 rue ampère", printfontb, Brush, 100, 60)

e.Graphics.DrawString(vbTab & vbTab & "ZI - BP 114", printfontb, Brush, 100, 75)

e.Graphics.DrawString(vbTab & vbTab & "69685 Chassieu cédex", printfontb, Brush, 100, 90)

e.Graphics.DrawImage(newImage.FromFile("C:\solufast\data\ABB_logo.gif"), 630.0F, 30.0F)

'destinatairex = 20

y = 170

e.Graphics.DrawString("Télécopie", printfont1, Brush, x, y - 50)

e.Graphics.DrawString("De / From : " & usernom.ToString.ToUpper, printfont, Brush, x, y - 20)

e.Graphics.DrawString("Comercial : " & sel_iv.ToString.ToUpper, printfont, Brush, x, y + 20)

e.Graphics.DrawString("Tél.: " & usertel.ToString, printfont, Brush, x + 550, y - 20)

e.Graphics.DrawString("Fax.: " & userfax.ToString, printfont, Brush, x + 550, y)

e.Graphics.DrawString("Gsm.: " & sel_faxliv.ToString, printfont, Brush, x + 550, y + 20)

e.Graphics.DrawString("A / To: Société: " & sel_client.ToString.ToUpper, printfont, Brush, x, y + 60)

e.Graphics.DrawString(" Nom: " & sel_interloc.ToString.ToUpper, printfont, Brush, x, y + 80)

e.Graphics.DrawString("Tel.: " & sel_telint.ToString, printfont, Brush, x + 550, y + 100)

e.Graphics.DrawString("Fax.: " & sel_faxint.ToString, printfont, Brush, x + 550, y + 120)

bref ya d'autere ligne pour remplir la premier feuille mais je voudrai mettre des info sur le deuxieme page !! et la je bloque

c super important merci de votre aide
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
121
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
27 juillet 2006
3
Merci
Si il y a toujours 2 pages, tu peux faire comme ceci. J'espère que ça te sera plus clair.


Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage


      Static Premiere as Boolean = True


      If Premiere then
          'Ici c'est la première page


          Premiere = False
          e.HasMorePages = True
      Else
          'Ici c'est la deuxième page


          Premiere = True
          e.HasMorePages = False
      End if


End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de addamsmercredi
Messages postés
121
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
27 juillet 2006
0
Merci
Voilà un petit code pour montrer comment imprimer plusieurs pages.
e.HasMorePages permet d'indiquer s'il y a d'autres pages à imprimer.
A chaque page, c'est la même fonction qui est exécutée, il faut donc utiliser des variables Static pour mémoriser où ça en est.


Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage


    Static i as Integer = 1


    e.Graphics.DrawString("C'est la page numéro " & i, ....)


    i += 1


    If (tout est imprimé) Then
        e.HasMorePages = False
    Else
        e.HasMorePages = True
    End If


End Sub
Commenter la réponse de addamsmercredi
Messages postés
50
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
4 novembre 2008
0
Merci
merci d'avoir répondu mais j'ai du mal a comprendre ce qui lui dits qui est dans la page 2, Comme c 'est moi qui lui dit a chaque ligne sa position celle ci ne s'incrémente pas seul  bref comment lui faire comprendre que tel et tel ligne doivent etre sur la page 2

Puis je t'envoye le code de l'impression ? pour que tu vois ce que je veux dire
!!

Merci a toi encore
seb

voici le code complet de l'impression :

Private
Sub PrintDocument1_PrintPage(
ByVal sender
As System.Object,
ByVal e
As System.Drawing.Printing.PrintPageEventArgs)
Handles PrintDocument1.PrintPage 

Dim drawFormat
As
New StringFormat

Dim blackPen
As
New Pen(Color.Black, 1)

Dim x
As
Single

Dim y
As
Single

Dim linesPerPage
As
Single = 0

Dim width
As
Single = 200.0F

Dim height
As
Single = 50.0F

Dim drawRect
As
New RectangleF(x, y, width, height)

Dim printfont
As
New Font("Arial", 13)

Dim printfontA
As
New Font("Arial", 16)

Dim printfontb
As
New Font("Arial", 8)

Dim printfont1
As
New Font("Arial", 18)

Dim printfont2
As
New Font("Arial", 20)

Dim Brush
As
New SolidBrush(Color.Black) 

 

Try

'ligne

Dim x1
As
Single = 20.0F

Dim y1
As
Single = 60.0F

Dim x2
As
Single = 600.0F

Dim y2
AsSingle 60.0FlinesPerPage e.MarginBounds.Height / printfont.GetHeight(e.Graphics)

'icone(logo)e.Graphics.DrawString("ABB Entrelec", printfontA, Brush, 20, 35, drawFormat)

e.Graphics.DrawLine(blackPen, x1, y1, x2, y2)

e.Graphics.DrawString("Siège social :" & vbTab & "10 rue ampère", printfontb, Brush, 100, 60, drawFormat)

e.Graphics.DrawString(vbTab & vbTab & "ZI - BP 114", printfontb, Brush, 100, 75, drawFormat)

e.Graphics.DrawString(vbTab & vbTab & "69685 Chassieu cédex", printfontb, Brush, 100, 90, drawFormat)

e.Graphics.DrawImage(newImage.FromFile("C:\solufast\data\ABB_logo.gif"), 630.0F, 30.0F)

'destinatairex = 20

y = 170

e.Graphics.DrawString("Télécopie", printfont1, Brush, x, y - 50, drawFormat)

e.Graphics.DrawString("De / From : " & usernom.ToString.ToUpper, printfont, Brush, x, y - 20, drawFormat)

e.Graphics.DrawString("Comercial : " & sel_iv.ToString.ToUpper, printfont, Brush, x, y + 20, drawFormat)

e.Graphics.DrawString("Tél.: " & usertel.ToString, printfont, Brush, x + 550, y - 20, drawFormat)

e.Graphics.DrawString("Fax.: " & userfax.ToString, printfont, Brush, x + 550, y, drawFormat)

e.Graphics.DrawString("Gsm.: " & sel_faxliv.ToString, printfont, Brush, x + 550, y + 20, drawFormat)

e.Graphics.DrawString("A / To: Société: " & sel_client.ToString.ToUpper, printfont, Brush, x, y + 60, drawFormat)

e.Graphics.DrawString(" Nom: " & sel_interloc.ToString.ToUpper, printfont, Brush, x, y + 80, drawFormat)

e.Graphics.DrawString("Tel.: " & sel_telint.ToString, printfont, Brush, x + 550, y + 60, drawFormat)

e.Graphics.DrawString("Fax.: " & sel_faxint.ToString, printfont, Brush, x + 550, y + 80, drawFormat)

'info devise.Graphics.DrawString("V/Réf.: " & Affairedevis.ToString, printfont, Brush, x, y + 140, drawFormat)

e.Graphics.DrawString("Offre de prix N° : " & numdevis.ToString.ToUpper, printfont, Brush, x, y + 160, drawFormat)

e.Graphics.DrawString("Rueil, le " &

Date.Now.Today.ToLongDateString, printfont, Brush, x + 450, y + 180, drawFormat)e.Graphics.DrawString("Madame, Monsieur,", printfont, Brush, x, y + 220, drawFormat)

e.Graphics.DrawString("En réponse à votre demande pour l'affaire citée en objet, nous vous prions de bien vouloir " & vbCrLf & " trouver ci-joint notre meilleur offre de prix pour la founiture de matériel Basse Tension au" & vbCrLf & "prix Net total H.T de : ", printfont, Brush, x, y + 260, drawFormat)

'e.Graphics.DrawString("vouloir trouver ci-joint notre meilleur offre de prix pour la founiture de matériel Basse" & vbCrLf & "Tension au prix Net total H.T de : ", printfont, Brush, x, y + 260)e.Graphics.DrawString("Cette proposition s'entend avec les conditions suivantes : ", printfont, Brush, x, y + 350, drawFormat)

e.Graphics.DrawString("- Condition de livraison" & vbTab & ": Port à facturer", printfont, Brush, 40, y + 370, drawFormat)

e.Graphics.DrawString("- Délai de livraison" & vbTab & ": Voir Page matériel", printfont, Brush, 40, y + 390, drawFormat)

If etude =
True
Thene.Graphics.DrawString("- Condition de paiement" & vbTab & ": Par distributeur", printfont, Brush, 40, y + 410, drawFormat)

Elsee.Graphics.DrawString("- Condition de paiement" & vbTab & ": 60 jours", printfont, Brush, 40, y + 410, drawFormat)

End
Ife.Graphics.DrawString("- Validité de l'offre" & vbTab & ": " & valide.ToString.ToUpper, printfont, Brush, 40, y + 430, drawFormat)

e.Graphics.DrawString("La présente offre est soumise au condition générales de vente en vigueur dans la société" & vbCrLf & "ABB Entrelec, conditions disponibles, dans nos catalogues ou sur simple demande auprès" & vbCrLf & "de votre interlocuteur commercial.", printfont, Brush, 20, y + 470, drawFormat)

e.Graphics.DrawString("Espérant avoir répondu à votre demande et restant à votre entière disposition pour tous" & vbCrLf & "renseignements complémentaire nécessaires à vous-même ou vos services nous vous" & vbCrLf & "prions de croire Madame, Monsieur en l'expression de nos sincères salutations.", printfont, Brush, 20, y + 550, drawFormat)

If Len(infoclient.ToString) <> 0
Thene.Graphics.DrawString("****************************************** ATTENTION ******************************************", printfont, Brush, 20, y + 670, drawFormat)

e.Graphics.DrawString(infoclient.ToString.ToUpper, printfont, Brush, 40, y + 710, drawFormat)

End
Ife.Graphics.DrawString("Solufast version ABB V1.00", printfontb, Brush, 360, 1100, drawFormat)

 

'mettre c info sur la page page(2)e.Graphics.DrawString("Nom de l'affaire: " & Affairedevis.ToString, printfontA, Brush, x, y + 1500, drawFormat)

e.Graphics.DrawString("N° offre: " & numdevis.ToString.ToUpper, printfontb, Brush, x, y + 1520, drawFormat)

e.Graphics.DrawString("Date du chiffrage: " &

Date.Now.Today.ToLongDateString, printfontb, Brush, x, y + 1540, drawFormat)e.Graphics.DrawString("Nom du demandeur: " & sel_interloc.ToString.ToUpper, printfontb, Brush, x, y + 1560, drawFormat)

e.Graphics.DrawString("Nom de la société: " & sel_client.ToString.ToUpper, printfontb, Brush, x, y + 1580, drawFormat)

If etude =
True
Thene.Graphics.DrawString("Type de chiffrage: Etude de prix", printfontb, Brush, x + 500, y + 1520, drawFormat)

Elsee.Graphics.DrawString("Type de chiffrage: Offre de prix", printfontb, Brush, x + 500, y + 1520, drawFormat)

End
Ife.Graphics.DrawString("Liste du matériel", printfont2, Brush, x + 350, y + 1550, drawFormat)

'e.Graphics.DrawLine(blackPen, x1, y1, x2, y2)e.Graphics.DrawString("Référence" & usernom.ToString.ToUpper, printfontb, Brush, x, y + 1620, drawFormat)

e.Graphics.DrawString("Désignation" & sel_iv.ToString.ToUpper, printfontb, Brush, x + 50, y + 1620, drawFormat)

e.Graphics.DrawString("Qts." & usertel.ToString, printfontb, Brush, x + 150, y + 1620, drawFormat)

e.Graphics.DrawString("Col." & sel_faxint.ToString, printfontb, Brush, x + 200, y + 1620, drawFormat)

e.Graphics.DrawString("Prix Net" & userfax.ToString, printfontb, Brush, x + 250, y + 1620, drawFormat)

e.Graphics.DrawString("Délai" & sel_faxliv.ToString, printfontb, Brush, x + 300, y + 1620, drawFormat)

e.Graphics.DrawString("Info" & sel_telint.ToString, printfontb, Brush, x + 350, y + 1620, drawFormat)

y1 = y1 + 200

y2 = y2 + 1620

'e.Graphics.DrawLine(blackPen, x1, y1, x2, y2)e.HasMorePages =

True 

Catch ex
As ExceptionMsgBox(ex.Message, MsgBoxStyle.Critical)

End
Try
Commenter la réponse de cs_vara956
Messages postés
50
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
4 novembre 2008
0
Merci
PS :  la partie avant le ' a mettre sur la page 2 fonctionne tres bien sur une page ,


 
Commenter la réponse de cs_vara956
Messages postés
50
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
4 novembre 2008
0
Merci
encore merci a toi
ca marche je devrai y comprendre  meiux
Commenter la réponse de cs_vara956