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 vb lente


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut impression vb lente
    bonjour à tous
    je cherche à optimiser l'impression sous vb 2010
    Voila mon problème
    aucun souci d'impression mais une lenteur dans la création des pages a prévisualiser
    2 à 3 secondes par page en preview en je vais avoir besoin d'imprimer en masse une centaine de pages nécessairement en passant par une prévisualisation
    Je ne trouve pas le moyen d'accélerer le processus
    Sous access ,avec des états,, c'est habituellement rapide d'où ma question...
    Si quelqu'un a un idée je suis preneur
    Je fournis mon code si besoin..
    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 PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            Static Dim PageNumber As Integer = 5
            Static Dim Rectoverso As Integer = 0
     
     
            If PageNumber > 0 Then
                Select Case Rectoverso
                    Case 0
                        e.Graphics.DrawString("recto page " & PageNumber, New Font("Arial", 80, FontStyle.Bold), Brushes.Black, 150, 125)
                        Rectoverso = 1
                        e.HasMorePages = True
                    Case 1
                        e.Graphics.DrawString("verso page " & PageNumber, New Font("Arial", 80, FontStyle.Bold), Brushes.Black, 150, 125)
                        Rectoverso = 0
                        PageNumber -= 1
                        e.HasMorePages = True
                End Select
            End If
            If PageNumber = 0 And Rectoverso = 0 Then e.HasMorePages = False
        End Sub
    Merci d'avance

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Je crois que ta condition If PageNumber = 0 And Rectoverso = 0 Then e.HasMorePages = False n'est jamias réalisée.

    Peux-tu essayer de coder de cette manière :

    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
     
        Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            Static Dim PageNumber As Integer = 5
            Static Dim Rectoverso As Integer = 0
     
     
            If PageNumber > 0 Then
                Select Case Rectoverso
                    Case 0
                        e.Graphics.DrawString("recto page " & PageNumber, New Font("Arial", 80, FontStyle.Bold), Brushes.Black, 150, 125)
                        Rectoverso = 1
                        e.HasMorePages = True
                    Case 1
                        e.Graphics.DrawString("verso page " & PageNumber, New Font("Arial", 80, FontStyle.Bold), Brushes.Black, 150, 125)
                        Rectoverso = 0
                        PageNumber -= 1
                         If PageNumber = 0 Then 
                             e.HasMorePages = False
                         Else
                             e.HasMorePages = True
                         End If
                End Select
            End If
     
        End Sub
    Attention que s'il y a 6 faces à imprimer, il faut revoir cette condition de même que la première If PageNumber > 0 Then ....

    Bonne journée,

  3. #3
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Merci Phil Rob pour votre aide mais cela ne change rien en matière d'optimisation comme je le voudrais...
    Ma boucle ne diverge pas, le souci n'est pas là
    Si quelqu'un a une idée supplémentaire... je suis preneur

    J'aurais pensé au niveau du e.Graphics.DrawString... mais je ne sais pas trop comment faire autrement

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Désolé, tu as raison, ton code fonctionne correctement.

    J'ai voulu tester pour apprécier la lenteur d'impression et j'ai fait un petit programme avec un bouton et un PrintDocument : ImpressionSimple.zip

    Comme je n 'ai pas implémenté de PrintDialog, l'impression est envoyée à l'imprimante par défaut. La vitesse d'impression est normale.

    Bonne soirée


  5. #5
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Merci Phil Rob de suivre ce fil
    Mais le temps d'exécution me semble réellement trop long.... 2 minutes pour prévisualiser une cinquantaine de pages me semble inacceptable; il y a c'est sûr un autre moyen !
    Je vais reformuler mon problème

    Je voudrais imprimer des fiches de données à partir d'enregistrements de base de données ou classeur, peu importe
    Du style un formulaire, mais en impression
    La page est identique en ce qui concerne le design pour les enregistrements, seulement les données changent

    Mon problème vient-il de la programmation de System.Drawing.Printing ?

    Merci de vos réponses

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Avec PrintPage, il n'y a pas d'autre manière de faire et c'est le seul dispositif d'impression directe en VB.
    La méthode Draw... n'est certainement pas en cause.
    Si ton programme est plus lent que celui que je t'ai envoyé, alors le problème est ailleurs dans ton code, pas dans PrintPage.
    SI je comprends bien ton explication, tu veux imprimer un formulaire semblable à ceux d'Access.
    Il existe CrystalReport pour cela ou, plus facile si Office est installé sur l'ordi, c'est le formulaire Word. J'ai un exemple quelque part, si cela t'intéresse... Avec Word, on prépare le formulaire avec des champs de fusion et/ou des tableaux et ta procédure d'impression doit juste passer les datas et demander l'impression. On a aussi l'avantage de faire facilement une mise en page sophistiquée.
    Bonne nuit 🙂

  7. #7
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Cela ne peut pas venir d'ailleurs dans mon code car il n'y a que cette méthode PrintPage et le clic sur un bouton qui déclenche la prévisualisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            '    //Set the size, location, and name.
            Dim dlg As New PrintPreviewDialog
            dlg.Document = PrintDocument1
            dlg.ShowDialog()
        End Sub
    Non, pas un formulaire semblable à access, pas du tout... un état plutôt
    Je ne veux pas passer par Office car dans ce cas, je me pencherai sur Access plutôt que Word
    Je ne veux pas non plus utiliser CrystalRerport car je ne serai pas le seul à utiliser mon programme.

    Et puis je ne comprends toujours pas cette lenteur !...


    Bonne journée

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    J'ai ajouté le PrintPreviewDialog à mon code et cela fonctionne toujours correctement.
    Vois la video : https://www.dropbox.com/s/ds952ssx7a...imple.mp4?dl=0

    Voici mon projet ImpressionSimple2.zip .
    Je te propose de l'exécuter et de voir si c'est plus ou moins rapide que ton programme. Cela nous donnera peut-être une piste de réflexion ...


  9. #9
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Je viens de regarder la vidéo et tout est normal...
    Chez moi c'est si lent !
    J'essaye le projet fourni et je réagis

  10. #10
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Pas mieux...
    Au vu de la vidéo tout semble simplement normal
    Et chez moi, c'est lent, que ce soit avec mon projet ou celui de Phil Rob...
    C'est à n'y rien comprendre !

  11. #11
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Je reviens vers vous après plusieurs essais chez moi
    Le problème ne vient donc pas du code mais plutôt de l'installation de mes imprimantes...
    J'ai réussi à accélérer la prévisualisation de mes pages, qui est "normal" maintenant à mon sens, mais ceci au détriment de l'impression maintenant !
    J'ai donc déplacé, mais pas résolu mon problème
    Je veux imprimer sur une imprimante en réseau éthernet et le problème vient de la configuration de l'imprimante dans w10, je ne sais plus comment la paramétrer correctement...
    On dirait que le problème vient du port
    Je ne sais plus quel port d'impression choisir.. ET, WSD...
    Ce n'est certainement plus le bon endroit dans le forum pour cette discussion
    Si quelqu'un peut m'aiguiller

    Merci à vous

  12. #12
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,
    Pour être sûr que c'est bien là le problème, je te propose d'essayer ceci :
    Dans le panneau de configuration, dans gestion des imprimantes, tu dois trouver ton imprimante réseau (l'ajouter si elle n'y est pas) et la désigner "Imprimante par défaut".
    Tu dois pouvoir demander alors l' impression d'une page de test. Cette page doit d'imprimer correctement.
    Tu peux ensuite imprimer une page d'un pdf ou d'un docx, et cela doit se faire à vitesse normale.
    Si c'est bien le cas, ton programme doit aussi imprimer normalement vers cette imprimante par défaut.
    Si l'imprimante est lente pour le docx ou le pdf, alors c'est bien un problème imprimante et/ou réseau.
    Bon travail ...

  13. #13
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Le souci reste là
    Car bonne communication avec l'imprimante
    Elle est vue en réseau sur un ping sans souci, la réponse est correcte
    La page de test est rapidement envoyée et imprimée
    Mais alors les pdf ou autres documents, c'est à pleurer...
    Ca spoule un moment puis deux pages sortent, puis cinq ou dix munutes de latence, puis viennent deux suivantes...
    Hier, j'ai mis 1h pour imprimer une quinzaine de pages recto verso ! Et c'est une laser...

  14. #14
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Effectivement, pas de doute, c'est l'installation de l'imprimante réseau sur ton PC qui pose le problème.
    Là, je ne peux t'aider (je ne suis même pas en W10).
    Tu peux encore faire l'essai de rajouter cette imprimante réseau (avec un autre nom) et la désigner par défaut, mais faire cet ajout AVEC les paramètres par défaut. Ils sont généralement bons et on ne se préoccupe par du port, du spooler, ....
    Sinon, voir le spécialiste réseau du coin ...

  15. #15
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    J'ai déjà réinstallé l'imprimante hier et j'ai gagné en preview...sauf que j'ai perdu en impression seule
    Je vais l'installer en local pour ensuite la partager sur le réseau, peut être y a t-il a y gagner
    ou pour commencer par la mettre en ip fixe
    Je teste tout cela dès que j'ai du temps

    Merci phil rob pour toutes ces réponses

  16. #16
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    En effet, l'IP fixe pour l'imprimante peut résoudre des problèmes.

  17. #17
    Membre averti
    Homme Profil pro
    manut
    Inscrit en
    Octobre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : manut

    Informations forums :
    Inscription : Octobre 2017
    Messages : 14
    Par défaut
    Le problème semble résolu chez moi
    Un souci de configuration d'imprimante... le code n'était donc pas en question !
    Après réinstallation des drivers, cela semble aller mieux en terme de réactivité
    Et mon lecteur pdf parait lui aussi ralentir l'impresssion car avec edge, tout est normal

    Je ferme la discussion

    Merci à tous

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

Discussions similaires

  1. [Java] Impression lente
    Par horalass dans le forum Jasper
    Réponses: 5
    Dernier message: 20/05/2009, 16h55
  2. impression tres lente sur serveur
    Par passion_info dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 24/01/2009, 16h11
  3. Impression très lente
    Par sylvain-ecvf dans le forum LabVIEW
    Réponses: 0
    Dernier message: 01/12/2008, 16h36
  4. Impressions lentes - Changement de PC
    Par hisy dans le forum Access
    Réponses: 3
    Dernier message: 07/09/2006, 14h18
  5. Impression très très lente avec Samba
    Par Daav dans le forum Réseau
    Réponses: 4
    Dernier message: 29/12/2004, 18h45

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