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 document


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut impression de document
    Bonjour

    Je recherche un peut de doc et exemple de code sur

    PrintPreviewDialog
    PrintDialog
    PrintDocument

    Et ma question principale pour continuer mes investiguation serait de savoir
    quelle est la méthode pour afficher le printDialog en cliquant sur le bonton print du PrintPreviewDialog

    En fait pouvoir achier la boite de dialogue de choix d'umprimante avant ou apres le previewdialog

  2. #2
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Bonjour Thierry007.

    Nous nous retrouvons, et ce n'est pas l'effet du hasard.

    Vous trouverez ce qui vous intéresse dans Philippe Lasserre pages 689 à 693. Personnellement, j'en ai fait mon miel.

    Amicales salutations.

  3. #3
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Ha la oui, re-bonjour

    mais le problème c'est que cette doc est en fait a peut de chose prêt la même que chez Crosoft, mais ce que je cherche c'est comment aller de PrintPreviewDialog vers printDialog en cliquant sur le bouton print du PrintPreviewDialog...

    En fait quand j'ai vu la preview , pouvoir choisir l'imprimante sur la quelle je souhaite envoyer le document...

  4. #4
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Je vais donc faire comme la fois précédente, vous préparer un petit quelque chose, et vous demander d'attendre un ou deux jours.

    À bientôt.

  5. #5
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Bien après qq recheche, je peut ajouter un objet de type button... wouaouw

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Public WithEvents BtnChoixPrinter As New ToolStripButton
     
     CType(PrintPreviewDialog1.Controls(1), ToolStrip).Items.Add(BtnChoixPrinter)
     
      With BtnChoixPrinter
                      .Image = New Bitmap(My.Application.Info.DirectoryPath & "\prtchoix.png")
                      .ToolTipText = "Choix imprimante"
                      .Text = "Choix Imp."
                      .Width = 110
                End With
    Maintenant je souhaite retirer ou rendre invisible le bouton qui fait partie d'origine du controle PrintPreviwDialog

  6. #6
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    DAns le même concept , je veux imprimer sur 2 ou plusieurs pages, mais le code ici ,ne fait pas le sut de page , quelqu'un peut m'orienter dans le code ci dessous

    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
     Private Sub PageDocumentToPrint_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PageDocumentToPrint.PrintPage
                Dim Ligne As Int16
     
                e.Graphics.PageUnit = GraphicsUnit.Millimeter
     
                Ligne = 100
     
                For i = 1 To 70
     
                      e.Graphics.DrawString(TextBox1.Text & " - " & i & " - " & Ligne, PrintFont, Brushes.Black, 100, Ligne)
     
                      Ligne += 4
     
                      If Ligne >= 260 Then
     
                            Ligne = 100
                            e.HasMorePages = True
     
                      Else
     
                            e.HasMorePages = False
     
                      End If
     
                Next
     
          End Sub

  7. #7
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Le but dans mon cas est de pouvoir imprimer des listings ou autre
    parfois sur plusieurs centaines de page....
    Je regarde a détecter plus ou moins mon bas de page et passer a la page suivante


    dans votre code vous appeler chaque fois une page

    Par contre pour le premier code c'est a concervé -> merci bien

    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
     Private Sub PageDocumentToPrint_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PageDocumentToPrint.PrintPage
                Dim Ligne As Int16
     
                e.Graphics.PageUnit = GraphicsUnit.Millimeter
     
                Ligne = 100
     
                For i = 1 To 70
     
                      e.Graphics.DrawString(TextBox1.Text & " - " & i & " - " & Ligne, PrintFont, Brushes.Black, 100, Ligne)
     
                      Ligne += 4
     
                      If Ligne >= 260 Then
     
                            Ligne = 100
                            e.HasMorePages = True
     
                      Else
     
                            e.HasMorePages = False
     
                      End If
     
                Next
     
          End Sub
    [/quote]

  8. #8
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Bonjour thierry007.

    Je réponds d'abord à la question initiale.

    J'ai réalisé pour cela un petit programme qui tient sur un formulaire nommé Accueil, sur lequel j'ai déposé divers contrôles

    Classe Button, name = bImp, Text = "Imprimer"
    Classe Button, name = bPge, Text = "Ouvrir dPge"
    Classe Button, name = bPré, Text = "Ouvrir dPré"
    Classe Button, name = bPrt, Text = "Ouvrir dPrt"
    Classe PageSetupDialog, name = dPge
    Classe PrintPreviewDialog, name = dPré
    Classe PrintDialog, name = dPrt
    Et voici le code utilisé

    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
    Imports System.Drawing.Printing
    Imports System.Drawing.Color
    Public Class Accueil
        Private Prt As New PrintDocument, Grp As Graphics
     
        Private Sub Accueil_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            AddHandler Prt.PrintPage, AddressOf Me.Prt_PrintPage
            dPge.Document = Prt
            dPré.Document = Prt
            dPrt.Document = Prt
        End Sub
     
        Private Sub Prt_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
            Grp = e.Graphics 
            Dessiner()
        End Sub
     
        Private Sub Dessiner()
            Dim Fnt As New Font("Times New Roman", 10, FontStyle.Regular)
            Dim Pnc As New SolidBrush(Color.Black)
            Dim Pnt As New PointF(100, 200)
            Grp.DrawString("Toto, manges ta soupe.", Fnt, Pnc, Pnt)
        End Sub
     
        Private Sub bImp_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bImp.Click
            Prt.Print()
        End Sub
     
        Private Sub bPge_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bPge.Click
            dPge.ShowDialog()
        End Sub
     
        Private Sub bPré_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bPré.Click
            dPré.ShowDialog()
        End Sub
     
        Private Sub bPrt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bPrt.Click
            dPrt.ShowDialog()
        End Sub
    End Class
    En cliquant sur les différents boutons, vous pourrez tester tout ce qui se passe. À mon avis, c'est le PrintDialog qui est le plus intéressant, car en cliquant sur son bouton Préférences, on accède directement à la boîte de dialogue du pilote de l'imprimante.

    Amicales salutations.

  9. #9
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Et maintenant, pour illustrer l'impression sur plusieurs pages, voici les modifications que j'ai apportées à mon programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Class Accueil
        Private Prt As New PrintDocument, Grp As Graphics, i As Integer = 1
    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
     Private Sub Prt_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
            Grp = e.Graphics
            If i = 1 Then
                DessinerPage1()
                i = 2 : e.HasMorePages = True
            ElseIf i = 2 Then
                DessinerPage2()
                i = 3 : e.HasMorePages = True
            ElseIf i = 3 Then
                DessinerPage3()
                e.HasMorePages = False
            End If
        End Sub
     
        Private Sub DessinerPage1()
            Dim Fnt As New Font("Times New Roman", 10, FontStyle.Regular)
            Dim Pnc As New SolidBrush(Color.Black)
            Dim Pnt As New PointF(100, 200)
            Grp.DrawString("Toto, manges ta soupe,", Fnt, Pnc, Pnt)
        End Sub
     
        Private Sub DessinerPage2()
            Dim Fnt As New Font("Times New Roman", 10, FontStyle.Regular)
            Dim Pnc As New SolidBrush(Color.Black)
            Dim Pnt As New PointF(100, 200)
            Grp.DrawString("et tu grandiras.", Fnt, Pnc, Pnt)
        End Sub
     
        Private Sub DessinerPage3()
            Dim Fnt As New Font("Times New Roman", 10, FontStyle.Regular)
            Dim Pnc As New SolidBrush(Color.Black)
            Dim Pnt As New PointF(100, 200)
            Grp.DrawString("Nan, j'ai pas faim.", Fnt, Pnc, Pnt)
        End Sub

Discussions similaires

  1. [C++/CLI] Impression de document
    Par Casimir33 dans le forum C++/CLI
    Réponses: 3
    Dernier message: 14/09/2006, 16h34
  2. Réponses: 4
    Dernier message: 08/08/2006, 19h57
  3. [C++/CLI] Impression de document
    Par Casimir33 dans le forum Visual C++
    Réponses: 0
    Dernier message: 26/07/2006, 11h30
  4. [Librairies] Questions relatives à l'impression de documents
    Par Ronin dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/12/2005, 15h53
  5. [Stratégie] Impression de documents
    Par gegev2 dans le forum Documents
    Réponses: 1
    Dernier message: 12/07/2005, 11h19

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