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

Java Discussion :

Forcer l'impression sur une imprimante définie


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut Forcer l'impression sur une imprimante définie
    Bonjour à tous

    je fais appel à vous aujourd'hui car je n'ai absolument aucune connaissance en java et j'ai un problème bien particulier, qu'à priori java pourrait résoudre.

    Je développe pour ma petite entreprise un système de gestion en php/mysql. Ce système permet l'impression de tickets de caisse. Or l'impression de ces tickets doit se faire sur une imprimante spécifique, différente de l'impression par défaut. La question : comment forcer le choix de l'imprimante et supprimer la boite de dialogue d'impression ? Si vous avez des pistes ou des tutos, je vous remercie d'avance du temps que vous consacrerez à mon problème

  2. #2
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Salut,

    Il faut faire ca en 2 etapes :
    1 - Recuperer la liste des imprimantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
             DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
             PrintService printService[] = PrintServiceLookup.lookupPrintServices(
                   flavor, pras);
             for (int i = 0; i < printService.length; i++)
             {
                System.out.println(i + ":" + printService[i]);
             }
    De la, tu recuperes le printservice qui t'interesse.

    2 -L'utiliser pour imprimer. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PrinterJob printJob = PrinterJob.getPrinterJob();
             printJob.setPrintable(maClasseAImprimer);
             printJob.setPrintService(printService[1]);
    a+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut
    et comment on intègre ce code dans une page web ?

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    On nep eux pas d'une page web forcer l'impression sur une imprimante sélectionnée du poste du client.

    Si on met ce code sur un serveur Java, les imprimantes récupérées par ce code seront celles du serveur et non pas celles du client.

    S'il s'agit d'une application destinée à fonctionner sur un réseau local, et que le serveur connaît le serveur d'impression partagé, ça peut avoir du sens de procéder ainsi mais c'est le seul cas que je vois...
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par shaihulud1979 Voir le message
    et comment on intègre ce code dans une page web ?
    Tu as posté ta question sur un forum Java, pas javascript donc tu as eu une réponse pour un programme Java.
    Peut etre que tu peux t'en tirer en créant une petite applet (mais il y aura surement des problemes de droits pour accéder aux periphériques qui feront que l'applet devra etre signée...)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut
    Citation Envoyé par CyberChouan Voir le message
    On nep eux pas d'une page web forcer l'impression sur une imprimante sélectionnée du poste du client.

    Si on met ce code sur un serveur Java, les imprimantes récupérées par ce code seront celles du serveur et non pas celles du client.

    S'il s'agit d'une application destinée à fonctionner sur un réseau local, et que le serveur connaît le serveur d'impression partagé, ça peut avoir du sens de procéder ainsi mais c'est le seul cas que je vois...
    Je développe un logiciel en php/mysql sur un réseau local, un pc équipé de xampp fait office de serveur et c'est un poste client qui fera office de poste de saisie et qui sera équipé de ladite imprimante.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut
    Citation Envoyé par hwoarang Voir le message
    Tu as posté ta question sur un forum Java, pas javascript donc tu as eu une réponse pour un programme Java.
    Peut etre que tu peux t'en tirer en créant une petite applet (mais il y aura surement des problemes de droits pour accéder aux periphériques qui feront que l'applet devra etre signée...)
    Bonjour,
    j'ai fait des recherches sur le net avant de poster, le javascript ne permet pas à priori de faire ce que je cherche à faire. Mon souci c'est que comme j'y connais rien en java, je me suis permis de vous déranger à ce sujet, mais c'est vrai qu'en étant plus précis, ma question aurait peut être été plus claire.

  8. #8
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Du code java ne peut pas etre intégré en l'etat sur une page web. Il faut faire une applet. Mais comme je l'ai souligné, il est possible qu'il y ait besoin de signer l'applet pour qu'elle fonctionne. Mais bon, ca me parait compliqué pour ce que c'est. Le client est fatigué au point de ne pas pouvoir cliquer sur OK sur le formulaire d'impression?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut
    Désolé pour le déterrage de topci en fait mon appli locale sera un programme pour gérer une caisse mais le pc sur lequel ce programme sera utilisé a encore d'autres fonctions et est relié à plusieurs imprimantes pour des besoins divers. Je voudrais donc limiter les "mais pourquoi mon ticket de caisse s'imprime sur les grandes feuilles et pas sur les tickets ?"

  10. #10
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    Je ne comprends pas ton besoin?

  11. #11
    Membre chevronné Avatar de Drakiss
    Homme Profil pro
    Consultant MOE
    Inscrit en
    Octobre 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant MOE
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 185
    Par défaut
    Je ne comprend pas vraiment non plus le besoin de passer par java, étant donné que tu code en php.
    Je pense effectivement que javascript ne pourra pas faire ça, mais php ??

    Le poste client fait un appel au serveur qui imprime le ticket sur l'imprimante par défaut avec le choix d'un bac, et hop c'est réglé...

    Ou alors j'ai rien compris, et je m'excuse de mon intervention parasite...

    php printer
    diverses discutions

  12. #12
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Un logiciel de caisse sur web?
    Comment feras-tu pour gérer les terminaux carte de crédit? Les lecteurs de badge etc..?

    La solution qui a été retenue par le module caisse de openErp (ou un autre grand erp java open source intégrant une caisse) c'est d'installer un mini-serveur http sur le client (style appli java web start) et de lui envoyer les textes à imprimer à l'aide de requêtes javascript sur 127.0.0.1 depuis le browser web.

    Mais là encore, c'est pas si évident que ça en a l'air.

  13. #13
    Membre chevronné Avatar de Drakiss
    Homme Profil pro
    Consultant MOE
    Inscrit en
    Octobre 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant MOE
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 185
    Par défaut
    Citation Envoyé par _skip Voir le message
    Un logiciel de caisse sur web?
    Tiens j'avais pas vu ce côté sécurité...
    Je ne voyais que le fait de faire un réseaux en local pour imprimer, mais c'est sûr que dit comme tu le fait...

  14. #14
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Citation Envoyé par Drakiss Voir le message
    Tiens j'avais pas vu ce côté sécurité...
    Je ne voyais que le fait de faire un réseaux en local pour imprimer, mais c'est sûr que dit comme tu le fait...
    J'ai peut être rien compris à ce qu'il veut aussi .
    Il a pas super bien décrit son projet non plus.

    Peut être que sa caisse est un fat client et qu'il veut juste un portail web pour les tâches backoffice?

  15. #15
    Membre chevronné Avatar de Drakiss
    Homme Profil pro
    Consultant MOE
    Inscrit en
    Octobre 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant MOE
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 185
    Par défaut
    Citation Envoyé par _skip Voir le message
    J'ai peut être rien compris à ce qu'il veut aussi .
    Il a pas super bien décrit son projet non plus.
    C'est sur...

    On attend donc une description plus précise pour te faire avancer shaihulud1979...

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut
    alors d'abord un grand merci à tous ceux qui se cassent la tête sur mon problème. DONC : on a une petite station service avec un garage, entreprise familiale modeste. Les solutions de gestion de station service qui existent ne sont que des monstres faits pour gérer les stations d'autoroute et coutent la peau des fesses. J'ai donc installé sur un pc du garage Xampp de manière à l'utiliser comme un serveur web, mais en local (pas d'utilisation sur le web ou sur un autre pc donc ). Parti de là j'ai programmé en php/mysql un "logiciel" pour l'édition des tickets de caisse. Pour cela j'ai donc une page de saisie qui stock les données du ticket dans une table et quand le ticket est fini, un bouton ouvre un pop up avec le ticket à imprimer et ouvre la boite de dialogue d'impression. Cependant comme il y a plusieurs imprimantes d'installées sur ce pc j'aurai voulu trouver un moyen pour ce "programme" d'ouvrir la boite de dialogue, mais également de définir directement l'imprimante à utiliser et de lancer l'impression ( le pop up se ferme déjà toute seul après impression et vide la table 'ticket' )
    Mon problème est que mes connaissances se limitent au php/mysql/html, quelques notions de javascript. Je pensais donc à java pour résoudre mon problème. Voilà qu'en dites vous, ai je été assez précis dans mon besoin ?

  17. #17
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Ce n'est pas possible ne javascript mais suivant ce que tu veux il est peut être possible de trouver une alternative.
    L'imprimante est-elle accessible depuis le serveur (= la machine qui héberge xampp)?

    Si c'est le cas, tu peux créer une servlet toute conne sur un jetty et lui poster le document a l'aide d'une requete javascript.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut
    Ben comme dit les serveur est aussi le poste de travail, c'est le même pc.

Discussions similaires

  1. [WD14] Impression sur une imprimante à tickets
    Par sousana_fly dans le forum WinDev
    Réponses: 3
    Dernier message: 20/10/2010, 18h50
  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