Problème d'impression en VB.NET Double page

Signaler
Messages postés
8
Date d'inscription
dimanche 16 septembre 2007
Statut
Membre
Dernière intervention
6 août 2008
-
Messages postés
14765
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 janvier 2021
-
Bonjour,

Je suis nouveaux sur ce site et merci de m'avoir aider dans plusieurs projet que j'ai pus avoir des renseignement.

Mais la j'ai un problème J'ai fais un traitement de texte que j'ai
séparé la fenêtre en deux avec un Richtext 1 et un Richtext2 , tous vas
bien sauf pour imprimer le Richtext 1 tous vas bien mais pour le
Richtext 2 rien s'imprime ,j'ai pourtant mis PrintPreviewDialog1 et
PrintPreviewDialog2 aussi PrintDocument1 et PrintDocument2 et
PrintDialog1 et PrintDialog2 avec 2 bouttons impression page 1 et
impression page 2 car les 2 fenêtres sont cote a cote .

Voici le code que j'ai écrit pour la page 1---------------- PrintDocument1

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

Dim intPrintAreaWidth As Integer

Dim intPrintAreaHeight As Integer

Dim font As New Font("Microsoft Sans Serif", 10)

Dim myPen As New Pen(Color.Blue, 2)

Dim nWidth As Integer = PrintDocument1.PrinterSettings.DefaultPageSettings.PaperSize.Width

Dim nHeight As Integer = PrintDocument1.PrinterSettings.DefaultPageSettings.PaperSize.Height

With PrintDocument1.DefaultPageSettings

intPrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right

intPrintAreaHeight = .PaperSize.Height - .Margins.Top

End With

m_nFirstCharOnPage = Me.FormatRange(False, _

e, _

m_nFirstCharOnPage, _

RichTextBox1.Text.Length)

e.Graphics.DrawString("page: " & CStr(ipage), font, Brushes.Blue, intPrintAreaWidth + 90, intPrintAreaHeight + 50)

If (m_nFirstCharOnPage < RichTextBox1.Text.Length) Then

ipage = ipage + 1

e.HasMorePages = True

Else

e.HasMorePages = False

End If

End Sub

------------------------------------------------------------------------------------------­---------------------

Et maintenant pour la page 2 ---------PRINTDOCUMENT 2

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

Dim intPrintAreaWidth As Integer

Dim intPrintAreaHeight As Integer

Dim font As New Font("Microsoft Sans Serif", 10)

Dim myPen As New Pen(Color.Blue, 2)

Dim nWidth As Integer = PrintDocument2.PrinterSettings.DefaultPageSettings.PaperSize.Width

Dim nHeight As Integer = PrintDocument2.PrinterSettings.DefaultPageSettings.PaperSize.Height

With PrintDocument1.DefaultPageSettings

intPrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right

intPrintAreaHeight = .PaperSize.Height - .Margins.Top

End With

m_nFirstCharOnPage = Me.FormatRange(False, _

e, _

m_nFirstCharOnPage, _

RichTextBox2.Text.Length)

e.Graphics.DrawString("page: " & CStr(ipage), font, Brushes.Blue, intPrintAreaWidth + 90, intPrintAreaHeight + 50)

If (m_nFirstCharOnPage < RichTextBox2.Text.Length) Then

ipage = ipage + 1

e.HasMorePages = True

Else

e.HasMorePages = False

End If

------------------------------------------------------------------------------------------­-

Pour le boutton 1

Private Sub MenuItem10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem10.Click

Try

PrintDialog1.Document = PrintDocument1

Dim result As DialogResult = PrintDialog1.ShowDialog()

If result = DialogResult.OK Then

PrintDocument1.Print()

End If

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try

End Sub

---------------------------------------------------------------

Pour le boutton 2

Private Sub MenuItem29_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem29.Click

Try

PrintDialog2.Document = PrintDocument2

Dim result As DialogResult = PrintDialog1.ShowDialog()

If result = DialogResult.OK Then

PrintDocument2.Print()

End If

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try

End Sub

J'ai essayer de trouver le pourquoi que sa imprime pas mais j'arrive pas .

Merci d'avance

2 réponses

Messages postés
164
Date d'inscription
samedi 11 décembre 2004
Statut
Membre
Dernière intervention
14 août 2013
2
Bonjour,
A tout hasrd :
Dans la prcédure bouton 2, on a :
PrintDialog2.Document = PrintDocument2
Dim result As DialogResult = PrintDialog1.ShowDialog()
Ne faudrait-il pas PrintDialog2 ?
Messages postés
14765
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 janvier 2021
151
Bonjour

Normalement, tu ne devrais pas avoir besoin d'utiliser 2 fois les éléments, une seule instance devrait être utile, ensuite avec un attribut privé d'objet, tu indique si tu imprime Le 1er ou le 2ième RichTextBox.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site