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 :

Imprimer en vb


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Imprimer en vb
    bonjour,
    c'est un site remarquable pour trouver de l'aide sur la programmation
    j'aurai besoin de votre aide
    je fais un petit programme c'est un bloc note et le probleme c'est qu'il ne veut pas imprimer
    voici le code:

    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
    Private Sub ImprimerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImprimerToolStripMenuItem.Click
            cmd.PrinterSettings.Copies = 3
            cmd.AllowCurrentPage = True
            cmd.AllowPrintToFile = True
            cmd.PrinterSettings.PrintToFile = False
            cmd.AllowSelection = True
            cmd.AllowSomePages = True
            If cmd.ShowDialog() = Windows.Forms.DialogResult.OK Then
                RichTextBox1.Text = "paramètres enregistrés."
            Else
                RichTextBox1.Text = "les paramètres n'ont pas été pris en compte."
            End If
     
        End Sub
    End Class
    alors quand je teste le prog quand je clique sur imprimer la boite de dialogue s'ouvre, la je trouve les imprimante et quand je clique sur imprimer bin rien ne se passe
    pouvez vous me dire pourquoi ?
    merci d'avance,
    Dernière modification par Deepin ; 08/03/2010 à 08h38. Motif: Cliquer sur le bouton Résolu (et non pas rajouter [Résolu] dans le titre)

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    le problème de l'impression en dotnet, c'est qu'il faut se taper tout le travail. Les différents contrôles mis à disposition te permettent de sélectionner les imprimantes, configurer l'impression, ... bref de bien préparer ton impression. Mais au final, c'est à toi de réellement faire l'impression c'est à dire de faire la mise en forme en fonction du contenu ; j'avoue c'est pas toujours évident.

    Pour cela, il y a l'objet PrintDocument et l'event PrintPage. En t'abonnement, tu devras faire le dessin par printPageEventArgs.Graphics.DrawString (par exemple pour une chaîne).

    Si ton impression est simple, cela devrait suffire.

  3. #3
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Tu peux aussi t'essayer à Crystal Report qui est pas mal (pas présent dans la toutes les versions de VS)
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  4. #4
    Invité
    Invité(e)
    Par défaut
    merci pour vos réponse

    j'ai rajouté se code après end if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Imprime en utilisant un gestionnaire d'erreurs pour intercepter les problemes
        try
        'déclare la variable imprimerdoc de type printdocument
        Dim imprimerdoc As New PrintDocument
        imprimerdoc.print()    'imprime le texte
            Catch ex As Exception
            End Try
        End Sub
    mais la il m'imprime une page blanche
    que faire je comprend pas trop bien

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Si tu besoin est juste d'imprimer une ligne de texte, ajoute alors un handler sur PrintDoc.PrintPage dans lequel tu vas faire un e.Graphics.DrawString(..).

    Si tu n'ajoutes pas de handler c'est normal d'avoir une page vide, car c'est à toi de dire ce qu'il imprimer.

  6. #6
    Invité
    Invité(e)
    Par défaut
    voici le nouveau code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     'Imprime en utilisant un gestionnaire d'erreurs pour intercepter les problemes
        try
        'déclare la variable imprimerdoc de type printdocument
                Dim imprimerdoc As New PrintDocument
                AddHandler imprimerdoc.PrintPage, AddressOf Me.imprimertexte
        imprimerdoc.print()    'imprime le texte
            Catch ex As Exception
            End Try
            ev.graphics.drawstring(RichTextBox1.Text)
        End Sub
    le probleme c'est qu'il me souligne me.imprimertexte il me dit que imprimertexte n'est pas un membre de bloc note et quand je le remplace par richtextbox1 sa ne marche pas n'ont plus
    en plus de sa il me dit que ev n'est pas déclarer

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ev.graphics.drawstring(RichTextBox1.Text)
    est mal placé il doit être dans imprimertexte

  8. #8
    Invité
    Invité(e)
    Par défaut
    euh la vraiment dsl
    mais je doit remplacer cette phrase a la place de imprimetexte ???

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    à voir tes questions, je pense que tu n'es pas expert en vb. je reformule :
    il faut que tu attaches un event handler sur l'évènement PrintPage de l'objet PrintDocument. Dans cette méthode (event handler), tu effectues l'affichage, c'est à dire le e.Graphics.DrawString(...).

    Encore une fois, j'espère que ce que tu as à imprimer est très simple ... car la gestion du rendu de l'impression n'est pas évident, surtout pour quelqu'un inexpérimenté.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cybermaxs Voir le message
    à voir tes questions, je pense que tu n'es pas expert en vb. dans le mille oui je ne suis pas un grand expert je reformule :
    il faut que tu attaches un event handler sur l'évènement PrintPage de l'objet PrintDocument. Dans cette méthode (event handler), tu effectues l'affichage, c'est à dire le e.Graphics.DrawString(...).

    Encore une fois, j'espère que ce que tu as à imprimer est très simple ... car la gestion du rendu de l'impression n'est pas évident, surtout pour quelqu'un inexpérimenté.
    je vais éssayer se que tu me dit
    normallement c'est un bloc note donc il faut juste qu'il imprime du texte

  11. #11
    Invité
    Invité(e)
    Par défaut
    j'ai beau éssayer plusieurs chose mais non j'y arrive pas
    pouvez vous me dire la solution

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120

  13. #13
    Invité
    Invité(e)
    Par défaut
    merci je l'avait déja trouvé se site mais s'en faire vraiment attention
    j'ai éssayer avec se nouveau code

    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
    Dim doc As New PrintDocument
            Dim pagesetup As New PageSetupDialog
            With pagesetup
                .Document = doc
                .ShowDialog(Me)
            End With
            With Me.RichTextBox1
                .Text = doc.PrinterSettings.PrinterName & vbCrLf
                .Text = .Text = "nb de copies:"
                doc.PrinterSettings.Copies.ToString()
                .Text = .Text = "assemblées:"
                doc.PrinterSettings.Collate.ToString()
                .Text = .Text = "couleur :"
                doc.DefaultPageSettings.Color.ToString()
                .Text = .Text = "orientation:"
                IIf(doc.DefaultPageSettings.Landscape.ToString, "paysage", "portrait")
                .Text = .Text = "format:"
                doc.DefaultPageSettings.PaperSize.ToString()
     
            End With
        End Sub
    mais le probleme est toujours le meme il m'affiche une boite de dialogue mais sa n'imprime pas
    Dernière modification par Invité ; 04/03/2010 à 17h49.

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Tout est dans le doc, avec un exmple page 25.

  15. #15
    Invité
    Invité(e)
    Par défaut
    bonjour,
    voila mon nouveau code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ImprimerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImprimerToolStripMenuItem.Click
            'Imprime en utilisant un gestionnaire d'érreurs pour intercepter les problemes
            Try
                ' déclare la variable imprimerdoc de type printDocument
                Dim ImprimerDoc As New PrintDocument
                AddHandler ImprimerDoc.PrintPage, AddressOf Me.ImprimerTexte
                ImprimerDoc.Print()      ' imprime le texte
            Catch ex As Exception    ' intercepte les exceptions d'impression
                MessageBox.Show("Désolé, il y a un probleme d'impression", ex.ToString())
            End Try
    et aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ImprimerTexte(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
            'Utilise drawstring pour créer le texte dans un object graphics
            ev.Graphics.DrawString(RichTextBox1.Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 120, 120)
            'indique que ceci est la derniere page a imprimer
            ev.HasMorePages = False
        End Sub
    le code marche j'arrive a imprimer mais le souci c'est que
    il imprime pas les couleur ni la différence de police
    je sais pas comment faire pour résoudre sa
    Dernière modification par Invité ; 05/03/2010 à 16h31.

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Oui c'est précisement ce dont je t'ai parlé. Tu utilises un composant de texte riche avec mise en forme.
    Cette méthode d'impression t'oblige à tout gérer tout seul : la couleur, la pole, ... via le DrawString(...).

  17. #17
    Invité
    Invité(e)
    Par défaut
    donc il faut que je change de methode alors ?
    mais après sa risque de devenir complexe parce que tu ma dit que
    la gestion du rendu de l'impression n'est pas évident

  18. #18
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Oui cette méthode est complexe à mettre en oeuvre. Le mieux dans ton cas maintenant que je connais un peu mieux le problème, est d'essayer de trouver un composant qui fera ce travail pour toi.

  19. #19
    Invité
    Invité(e)
    Par défaut
    merci pour ton aide
    je vais marquer résolu au post parce que maintenaint j'arrive a avoir une boite de dialogue et d'imprimer aussi
    je vérrait par la suite pour optimisé cette impression

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. Comment imprimer des tabulations ?
    Par Invité dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 11h30
  3. [VB6][Flexgrid] Imprimer
    Par tiboleo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/10/2002, 14h14
  4. [VB6] [Outlook] Imprimer un mail en VB
    Par der dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/09/2002, 14h20
  5. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 15h41

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