Bonjour,

J'ai un formulaire qui me permet de choisir mes imprimantes dans une combobox ainsi que leur mise en page via un pagesetupdialog. Je visualise avec un print previewdialog.

Tout ça fonctionne assez bien sauf le cas suivant.

- Si mon imprimante par défaut est Pdfcreator (par exemple), j'arrive bien à créer tout type de formats avec cette imprimante (jusqu'au A0).

- Par contre, si l'imprimante par défaut en est une autre et que je sélectionne PdfCréator, voici que je n'arrive qu'à imprimer des A4 au maximum (même si A0 est bien sélectionné dans le pagesetupdialog).

J'ai bien peur de mal coder tout ça. Il y a un truc qui m'échappe.

Voici le code qui attribue l'imprimante au printdocument lors d'une nouvelle selection :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
 
        'je reinitialise
        PrintDocument1.PrinterSettings = New PrinterSettings
        PrintDocument1.DefaultPageSettings = New PageSettings
 
        'je redéfinis l'imprimante
        PrintDocument1.PrinterSettings.PrinterName = ComboBox1.Text
    End Sub
Et voici le code associé au pagesetupdialog :
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
  Private Sub Mise_en_page(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
 
        Dim pagesetupdialog1 As New PageSetupDialog
        Dim lepagesettings As New PageSettings
 
        pagesetupdialog1.PrinterSettings = New PrinterSettings
        pagesetupdialog1.PrinterSettings.PrinterName = ComboBox1.Text
 
        pagesetupdialog1.PageSettings = lepagesettings
 
        Try
 
            Dim result As DialogResult = pagesetupdialog1.ShowDialog
            If result = DialogResult.OK Then
                PrintDocument1.DefaultPageSettings = lepagesettings
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
 
    End Sub
Merci de m'aider.