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 :

Impression de documents multipages en Visual Basic - Initiation


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Impression de documents multipages en Visual Basic - Initiation
    J'ai un document comprenant plusieurs pages (A4) mises en forme par une logique d'impression comportant des caractères de polices différentes, des lignes pour présenter les choses sous forme de tableaux, des variables fournies par le programme, etc...
    le langage de programmation fournit des outils PrintPreviewDialog et PrintDialog qui affichent des fenêtres modales. Très bien.
    Mais toute la documentation (très confuse) fournie par le programme se limite systématiquement aux documents d'une seule page. L'instruction HasMorePages débouche toujours sur False.
    Comment arriver à importer dans les fenêtres modales le nombre de pages, la page à visualiser, la plage de pages à imprimer, bref, tout ce qu'on a l'habitude de faire quand on écrit un document avec Word (ou autre) et qu'on désire n'imprimer que certaines pages.
    J'ai longuement pataugé dans la semoule des différents sites soit disant destinés à répondre à ce genre de questions et toutes les réponses trouvées sont soit incompréhensibles soit inopérantes.
    Quelqu'un pourrait-il me venir sérieusement en aide. Je sais que mon programme VisualBasic.Net Initiation commence à dater (2002) mais est-ce une raison pour qu'il ne puisse pas assurer des opérations qui me semblent élémentaires.
    Si quelqu'un réussit à m'expliquer clairement (et lentement comme dirait Averell) je lui en serait très reconnaissant.
    Achessé (c'est un pseudonyme - je m'appelle Henri)

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    hasmorepages c'est à toi de mettre true dedans si tu veux plusieurs pages
    l'event printpage est levé lors de la demande d'impression, là tu dois faire tes calculs de mise en page, et quand tu arrives en bas de page s'il te reste des choses à imprimer tu mets hasmorepages à true, tu enregistres quelque part où tu en es et tu sors de l'event
    si hasmorepages est à true en sortie d'event, l'event est redéclenché dans la foulée pour la page suivante
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 842
    Points : 983
    Points
    983
    Par défaut
    Ce lien peut raisonnablement répondre à ton besoin d'explication : Imprimer un fichier texte composé de plusieurs pages dans les Windows Forms
    https://msdn.microsoft.com/fr-fr/lib...(v=vs.90).aspx
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Comme dit par Pol63 ,ta "logique d'impression comportant ..." doit etre appelé dans l'event Printage¨de PrintDocument...
    Le mieux est de disposer d'une variable -compteurPage- à incrementer jusqu'à egaliser une variable -TotalPages, condition pour avoir e.HasMorePages=True

    code exemple .vb:
    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
     
    Public Class Form3
     
        Private compteurPage As Integer = 1
        Private totalPages As Integer = 10
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            PrintDocument1.Print()
     
        End Sub
        Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            VotreLogique()
            compteurPage += 1
            e.HasMorePages = (compteurPage <= totalPages)
        End Sub
        Private Sub VotreLogique()
     
        End Sub
     
     
    End Class
    bon code...

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/11/2009, 15h37
  2. Documentation de visual basic . Net 2008.
    Par dahmane2007 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/09/2008, 08h57
  3. Impression multiple dans visual basic
    Par lokdos dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/02/2008, 09h36
  4. Documentation de Microsoft Visual Basic
    Par Lexot2 dans le forum Général VBA
    Réponses: 5
    Dernier message: 13/09/2006, 14h27
  5. Réponses: 1
    Dernier message: 07/07/2006, 15h49

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