IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Forcer l'impression sur plusieurs pages


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2012
    Messages : 26
    Par défaut Forcer l'impression sur plusieurs pages
    Bonsoir,
    En m’appuyant sur le Cours VB.NET par Philippe Lasserre.Je voudrais forcer l'impression sur plusieurs pages.
    voila un exemple du code que j'utilise :

    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
     
    Imports System.Drawing.Printing
     
    Public Class Form2
        Dim pd As New PrintDocument
        Dim StandardPrintController As New StandardPrintController 'pour ne pas afficher page 1/x a l'impression
     
        Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            pd.PrintController = StandardPrintController 'pour ne pas afficher page 1/x a l'impression
     
            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)
            e.Graphics.DrawString("TEST", New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 1, 1)
            e.HasMorePages = True
            e.Graphics.DrawString("TEST", New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 1, 1)
            e.HasMorePages = False
        End Sub
     
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim dllg As New PrintPreviewDialog
     
            dllg.Document = pd
     
            dllg.ShowDialog()
        End Sub
    End Class
    Je pensai utiliser e.HasMorePages = True pour générer une nouvelle page mais cela ne fonctionne pas.

    Avez vous une solution ?

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,

    HasMorePages spécifie qu'il faut que la procédure PrintPage soit rappelée et une nouvelle page créé dans la nouvelle itération de la procédure, donc en faisant :

    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
          private NumPage as integer = 1
     
        Private Sub Pd_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
            select case NumPage 
                    case 1
                              ' contenu page 1
                              e.Graphics.DrawString("TEST", New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 1, 1)
                              e.HasMorePages = True
                              NumPage += 1
                    case 2
                              ' contenu page 2
                              e.Graphics.DrawString("TEST", New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 1, 1)
                              e.HasMorePages = False
                              NumPage = 1
     
                    case else
                              ' ne devrait pas arriver
            end select
     
        End Sub
    ca devrait fonctionner (code tapé à la volée)

  3. #3
    Membre averti
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2012
    Messages : 26
    Par défaut
    Merci,
    Effectivement je n'avais pas bien compris le fonctionnement HasMorePages.c'est plus clair maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impression sur plusieurs pages
    Par p1k1 dans le forum Silverlight
    Réponses: 4
    Dernier message: 29/06/2011, 13h33
  2. [AC-2007] Impression sur plusieurs pages
    Par Chris 81 dans le forum VBA Access
    Réponses: 0
    Dernier message: 28/04/2009, 10h00
  3. Impression sur plusieurs page Objet ocument)
    Par totoprog dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/04/2009, 18h18
  4. [D7 et Quickreport 3] Impression sur plusieurs pages
    Par Moine dans le forum Débuter
    Réponses: 3
    Dernier message: 13/12/2007, 12h01
  5. Pb d'impression sur plusieurs pages d'un JGraph
    Par StephG31 dans le forum 2D
    Réponses: 1
    Dernier message: 15/06/2006, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo