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

C# Discussion :

Fonction d'impression ASYNC [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2022
    Messages : 3
    Par défaut Fonction d'impression ASYNC
    Bonjour à tous,

    Tout d'abord, je me présente. Je m'appelle Corentin , j'ai 29 ans et je suis automaticien.
    Depuis quelques mois maintenant, j'ai commencé à m'intéresser au C# et à l'utilisation de Visual Studio.
    Avec l'aide des différents tutoriels trouver sur le net, j'ai commencé à développer une application qui tourne plutôt bien jusqu'à présent.

    Concernant ce sujet, j'ai recherché "Impression + C#" sur le forum , mais je n'ai pas trouvé d'occurence, je vous prie de bien vouloir m'excuser si un sujet similaire a déjà été ouvert.

    Dans mon application, j'appelle une fonction toute les 500ms pour contrôler des valeurs au sein de mon automate.
    Pour certaines valeurs , il est possible de lancer l'impression d'un document (pdf) de façon automatique.

    Cependant, quand l'impression se lance, le traitement est bloqué tant que l'impression n'est pas terminé.
    En effectuant des recherches, j'ai compris qu'il faudrait que je lance l'impression de façon asynchrone afin de permettre à mon code de continuer d'être exécuté.
    J'ai compris qu'il fallait que j'utilise les termes TASK, async , await , mais j'avoue ne pas comprendre exactement comment mettre cela en place et c'est pourquoi je solicite votre aide.

    A titre d'information, pour l'impression de document en PDF, j'utilise le package Nutget "ceTe.DynamicPDF.Printing.NET".

    Finalement, mon code aujourd'hui ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      public static void Impression(string Printer,string Path)
            {
                PrintJob print = new PrintJob(Printer, Path);
                print.Print();
            }
    Merci d'avance pour vos précieux conseils ..

  2. #2
    Membre éprouvé
    Homme Profil pro
    Passioné ...
    Inscrit en
    Juillet 2020
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Passioné ...
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2020
    Messages : 145
    Par défaut
    Bonjour, tu peux lancer cette impression par l’intermédiaire du BackGroundWorker, afin qu'elle soit traitée dans un autre Thread ... Cordialement Denis

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2022
    Messages : 3
    Par défaut
    Bonjour,

    De ce que j'ai pu voir , ça devrait pouvoir le faire..
    Je vais essayé cela ce soir , je vous tiens au courant !

    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2022
    Messages : 3
    Par défaut
    Et bien ça marche niquel , voilà ce que ça donne :

    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
     
     
    public static void Lecture()
    {
           BackgroundWorker Impression = new BackgroundWorker();
           Impression.DoWork += Impression_DoWork;
     
          if (condition)
         {
         Impression.RunWorkerAsync();
         }
    }
     
     private static void Impression_DoWork(object? sender, DoWorkEventArgs e)
    {
           PrintJob print = new PrintJob(Printer,Path);
           print.Print();
    }
    Par contre je me suis aperçu que le package que j'ai utilisé pour l'impression de PDF est à remplacer.. "Dynamic PDF" est écrit en gros en plein milieu de chaque page.. Faut que je regarde la classe PrintDocument..

    Merci pour l'aide, je n'aurais jamais trouvé seul !

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

Discussions similaires

  1. [AJAX] return dans une fonction ajax avec async: false,
    Par murdok74 dans le forum jQuery
    Réponses: 0
    Dernier message: 29/05/2014, 14h42
  2. [XL-2010] fonction zone impression définir
    Par pilounet54 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/05/2012, 21h33
  3. [XL-2007] Bug sur le calcul d'une fonction avant impression
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/01/2011, 15h22
  4. [WD9] Port COM et fonctions d'impression
    Par Sotros dans le forum WinDev
    Réponses: 4
    Dernier message: 03/04/2008, 08h52
  5. Fonctions d'impression?
    Par el_butcho dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2006, 07h28

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