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 :

[C#] Impression sur bac imprimante différent


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut [C#] Impression sur bac imprimante différent
    Bonjour,

    Je me trouve avec un problème dont je n'ai aucune réponse sur internet. Je dois lancer une impression dans le bac secondaire d'une imprimante.

    J'ai essayé d'utiliser "monPrintDocument.DefaultPageSettings.PaperSource" mais ça ne semble pas marcher

    Si vous avec d'autres idée pour paramétrer une impression faites partager s'il vous plait!

    Merci de m'aider.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    monPrintDocument c'est quelle classe et quel namespace?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut
    monPrintDocument est un PrintDocument.
    Je ne vois pas en quoi le namespace est important mais dans le contexte il se nomme EtiquetteDegradee.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    http://msdn.microsoft.com/en-us/libr...ersources.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monPrintDocument.DefaultPageSettings.PaperSource
    devrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monPrintDocument.PrinterSettings.PaperSource
    Il faut bien entendu que l'instance de PrintDocument connaisse l'imprimante ciblée.

    Voici un exemple de code simple pour lister les bas disponibles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (int i = 0; i < printDoc.PrinterSettings.PaperSources.Count; i++){
        Console.WriteLine(printDoc.PrinterSettings.PaperSources[i]);
    }

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut
    Non malheureusement c'est pas ce que je veux. Déja, c'est "monPrintDocument.PrinterSettings.PaperSources" et non "monPrintDocument.PrinterSettings.PaperSource" avec un "s" (si ce n'est pas une simple faute d'orthographe). Et ça renvoi une collection de Papersource.

    J'arrive à afficher toutes les imprimantes, et tous les bac pour chaque imprimantes sauf que je n'arrive pas à sélectionner un bac.

    Je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monPrintDocument.DefaultPageSettings.PaperSource  = monPrintDocument.PrinterSettings.PaperSources[comboPaperSource.SelectedIndex];
    Avec comboPaperSource, la liste des bac disponible.

    Mais quoi que je choisisse, le papier sort d'un seul et même bac...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Ça c'est du code qui fait justement ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    PrintDocument printDoc = new PrintDocument();
    PaperSize oPS = new PaperSize();
    oPS.RawKind = (int)PaperKind.A4;
    PaperSource oPSource = new PaperSource();
    oPSource.RawKind = (int) PaperSourceKind.Upper;
     
    printDoc.PrinterSettings = new PrinterSettings();
    printDoc.PrinterSettings.PrinterName = sPrinterName;
    printDoc.DefaultPageSettings.PaperSize = oPS;
    printDoc.DefaultPageSettings.PaperSource = oPSource;
    printDoc.PrintPage += new PrintPageEventHandler(printDoc_PrintPage);
    printDoc.Print();
    printDoc.Dispose();

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut
    Ma logique veut dire oui, c'est la réponse à ma question, sauf que ça ne fonctionne toujours pas.
    Les lignes qui définissent quel bac choisir sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PaperSource oPSource = new PaperSource();
    oPSource.RawKind = (int) PaperSourceKind.Upper;
    printDoc.DefaultPageSettings.PaperSource = oPSource;
    Mais rien ne change, que je fasse PaperSourceKind.Upper ou PaperSourceKind.Lower, c'est désespérant.

    (Je précise que j'ai mis le reste du code aussi).

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Salut
    -----

    J'ai déjà eu un souci du même type: je n'arrivais pas à forcer l'imprimante à sélectionner niveaux de gris/couleur (j'avais une page en couleur et des copies en niveaux de gris). Ça ne fonctionnait qu'en changeant via les propriétés de l'imprimante. Les autres fonctionnalités que j'utilisais fonctionnaient

    Mes nombreux tests (dont certains avec d'autres imprimantes) m'ont mené à conclure que le driver fourni par le constructeur n'implémentait pas la reconnaissance de cette fonction, accessible uniquement avec son utilitaire de configuration. Bref, ce n'est pas parce que Microsoft a prévu cette méthode ou propriété que le constructeur a forcément implémenté cette possibilité dans son driver.

    Mon avis est que tu rencontres peut-être un problème du même genre, tu devrais tenter avec une autre marque d'imprimante pour vérifier, surtout si tu es certain que ton code est juste.

    A+
    Claude

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut
    Citation Envoyé par Resumetips Voir le message
    Hai.I do not know, what is monPrintDocument ? What does this actually mean? What is the namespace and the calss ? : Cry:
    monprintdocument is a printDocument.you can found help at : http://msdn.microsoft.com/en-in/libr...(v=vs.80).aspx

    Merci ClaudeBg, à force je me suis dis qu'il y avait un problème de ce genre là. Je vais essayer d'utiliser une autre imprimante.
    Ou sinon comme l'imprimante est en réseau avec un logiciel que je ne connais pas ,je me suis dis qu'il y avait peut être des restrictions...

    Je redis ça une fois des tests sur une autre imprimante fait! Merci!

  10. #10
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Par défaut
    Bonjour,

    Je rencontre le même problème.
    Je ne pense pas que cela vienne de l'imprimante, car la fonction de selection de la source fonctionne, lorsqu'on veut imprimer n'importe quel autre type de document (Excel, word ...).

    Le changement de PaperSource fonctionne lorsqu'on le déclenche au niveau de

    PrintDocument_BeginPrint()

    Apparement il va bien chercher le bon bac, mais ça fait planter l'imprimante.
    Je poursuis mes essais.

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut
    Citation Envoyé par HENRYC Voir le message
    Bonjour,

    Je rencontre le même problème.
    Je ne pense pas que cela vienne de l'imprimante, car la fonction de selection de la source fonctionne, lorsqu'on veut imprimer n'importe quel autre type de document (Excel, word ...).

    Le changement de PaperSource fonctionne lorsqu'on le déclenche au niveau de

    PrintDocument_BeginPrint()

    Apparement il va bien chercher le bon bac, mais ça fait planter l'imprimante.
    Je poursuis mes essais.
    Bonjour, la question est sans doute un peu bête mais le _BeginPrint() commence où dans le code? Juste après l'instanciation du PrintDocument ou juste avant l'impression avec le .print() ?

  12. #12
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Par défaut
    Bonjour,

    Le BeginPrint() commence avant le PrintPage()

    ( Il suffit de se mettre en mode debug et de placer des points d'arrêt).

    Chez moi, maintenant ça marche!
    dans le BeginPrint(), il faut ajouter la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PrintDocument.DefaultPageSettings.PaperSource = printDlg.PrinterSettings.DefaultPageSettings.PaperSource;
    Cela permet à PrintDocument de récupérer tous les parametres du PrintDialog, donc tous les parametres de l'imprimante sélectionnée. (Enfin, c'est ce que je pense avoir compris).
    Mon plantage d'imprimante venait du parametrage de l'imprimante.
    Dans la configuration du magasin, la direction du papier était 'LEF', comme dans le magasin1, et ça me semblait normal puisque le papier est disposé de la même façon dans les 2 magasins. En passant l'orientation du tiroir 2 en 'SEF', je n'ai plus de plantage et ça marche. Maintenant j'aimerai bien comprendre quelquechose à cette histoire d'orientation du papier.

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut
    J'ai moi aussi trouvé ma réponse. En fait, ça ne marchait pas car j'étais en réseau et non en filaire... Le réseau géré par un logiciel ne devait pas donner les bons paramètres à l'imprimante et l'ordinateur ne donnait pas non plus les bonnes données de l'imprimantes.

    Je n'ai pas eu à utiliser "BeginPrint()". Merci quand même d'avoir essayer de m'aider.

    Je met cette discutions en résolu, merci à tout le monde!

  14. #14
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Par défaut
    Question béte!

    C'est quoi 'Etre en filaire' ?

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 22
    Par défaut
    Citation Envoyé par HENRYC Voir le message
    Question béte!

    C'est quoi 'Etre en filaire' ?
    Être en filaire ça veux dire être branché par fil (directement). Si t'es en wifi par exemple, tu n'es pas en filaire. (enfin, d'après moi...)

  16. #16
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Salut
    -----

    Le réseau géré par un logiciel ne devait pas donner les bons paramètres à l'imprimante et l'ordinateur ne donnait pas non plus les bonnes données de l'imprimantes.
    Ou plutôt driver de l'imprimante en mode réseau pas complet

    C'est quoi 'Etre en filaire'
    Il a probablement voulu dire qu'en USB ça fonctionnait mais pas en ethernet.

    A+
    Claude

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/10/2008, 11h32
  2. Impression sur une imprimante matricielle
    Par satmbal dans le forum BIRT
    Réponses: 5
    Dernier message: 17/09/2008, 09h03
  3. Impression sur une imprimante sélectionnée au préalable
    Par Spanish_ dans le forum VBA Access
    Réponses: 3
    Dernier message: 23/04/2008, 11h23
  4. Forcer une impression sur une imprimante donnée
    Par Opo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/02/2008, 20h44
  5. Forcer l'impression sur une imprimante
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 21/11/2006, 00h27

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