Bonjour,

Je crée une appli qui a pour but de sortir un document papier ou pdf.

je veux apercevoir mon document avant de l'imprimer.

quand je suis dans l’aperçu, mon document s'affiche toujours bien.
quand je clique sur l'imprimante (dans l'aperçu en haut a gauche) mon document s'imprime (pdf creator) bien mais seulement si je n'ai qu'une seule page
Dés que j'ai 2 ou plusieurs pages l'aperçu reste bon, mais à l'impression j'ai une page blanche.

j'ai tester d’après le code du tuto de Philippe Lasserre et ça ne marche pas non plus avec deux pages.

voici le code simplifié

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Option Explicit On
 
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Printing
 
 
 
Public Class Form1
    Inherits Form
 
    Private WithEvents pd As New PrintDocument 'Assumes the default printer 
    Dim page As Integer = 1
 
 
    Private Sub Mission_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
 
        AddHandler pd.PrintPage, AddressOf Me.Pd_PrintPage
 
    End Sub
 
 
    Private Sub Pd_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pd.PrintPage
 
        If page = 1 Then
 
            e.Graphics.DrawString("Hello", New Font("Arial", 80, FontStyle.Bold), Brushes.Black, 150, 125)
 
            e.HasMorePages = True
 
        End If
 
        If page = 2 Then
 
            ' Pour tester==========
            Dim monim As Image
            monim = Image.FromFile("c:/1.jpg")
            e.Graphics.DrawImage(monim, 60, 30)
            ' Fin test ============
 
            e.HasMorePages = False
        End If
        page += 1
 
    End Sub
 
    Private Sub ButtonPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPrint.Click
 
        Dim dlg As New PrintDialog
        dlg.Document = pd
 
        Dim result As DialogResult = dlg.ShowDialog()
 
        If (result = System.Windows.Forms.DialogResult.OK) Then
 
            Dim dllg As New PrintPreviewDialog
 
            dllg.Document = pd
 
            dllg.ShowDialog()
 
        End If
 
    End Sub
 
End Class
Y'a un truc qui est passé a travers mais je sais pas quoi.

quelqu'un a-t-il une piste??

Merci