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

JavaScript Discussion :

[POO] Quel langage pour imprimer sur une imprimante spécifique


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut [POO] Quel langage pour imprimer sur une imprimante spécifique
    Bonjour à tous,

    Je suis confronté à un soucis très banal qui à postériori ne se résout pas en javascript : comment imprimer sur une imprimante spécifique sans lancer la boite de sélection de l'imprimante.

    J'ai lu sur d'ancien post le conseil d'un spécialiste Javascript qui préconisait l'utilisation d'un script activeX pour pouvoir envoyer l'impression sur l'imprimante désirée.
    Es-ce la meilleure solution envisageable ? N'est-il pas possible de passer par un fichier bat configuré pour imprimer sur la bonne imprimante et qui accepterai en paramètre le fichier à imprimer ? Ou peut-être en passant par JAVA ?
    Si ActiveX est la meilleure solution, comment se fait la communication avec Javascript ? Quel est le processus :

    A) Je passe un tableau ou un objet de JS à VB6
    VB6 crée le fichier à imprimer et l'imprime sur la bonne imprimante

    ou

    B) Je génére une sortie print en PHP que je renvois à VB6 en passant par javascript et VB6 lance l'impression sur la bonne imprimante (je dis peut-être un énorme bétise)

    (J'imprime sur une imprimante à ticket 88mm )

    Bon ... j'ai déjà trouvé une doc intéressante : http://vb.developpez.com/bidou/vb-impression/?page=emploi#LV-A


    Merci pour vos bons conseils

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    bonjour,

    Citation Envoyé par popovitch130 Voir le message
    Je suis confronté à un soucis très banal qui à postériori ne se résout pas en javascript : comment imprimer sur une imprimante spécifique sans lancer la boite de sélection de l'imprimante.
    tu ne peux pas....

    Citation Envoyé par popovitch130 Voir le message
    J'ai lu sur d'ancien post le conseil d'un spécialiste Javascript qui préconisait l'utilisation d'un script activeX pour pouvoir envoyer l'impression sur l'imprimante désirée.
    Qui dit ActiveX dit IE exclusivement...

    Citation Envoyé par popovitch130 Voir le message
    Es-ce la meilleure solution envisageable ? N'est-il pas possible de passer par un fichier bat configuré pour imprimer sur la bonne imprimante et qui accepterai en paramètre le fichier à imprimer ? Ou peut-être en passant par JAVA ?
    Oui et si je ne veux pas télécharger le fichier .bat ?? Parce que c'est ce que devra faire l'utilisateur.
    Quant à Java... c'est bien compliqué pour faire si peu.



    Citation Envoyé par popovitch130 Voir le message
    Si ActiveX est la meilleure solution, comment se fait la communication avec Javascript ? Quel est le processus :

    A) Je passe un tableau ou un objet de JS à VB6
    VB6 crée le fichier à imprimer et l'imprime sur la bonne imprimante

    ou

    B) Je génére une sortie print en PHP que je renvois à VB6 en passant par javascript et VB6 lance l'impression sur la bonne imprimante (je dis peut-être un énorme bétise)

    (J'imprime sur une imprimante à ticket 88mm )
    euh....
    Comment tu fais l'étape A ? Car en dehors de la page Web dans laquelle se trouve ton script, il n'y a rien

    De même pour l'étape B : comment VB6 récupère les données ???
    L'imprimante se trouve du côté client pas du côté serveur

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Salut Auteur,

    En fait, il n'y a qu'un seul poste concerné donc je peux mettre le .bat sur le poste client.

    Pour Etape A et Etape B, j'ai imaginé des choses impossibles apparemment

    Et puis, j'avais oublié qu'activeX c'est que pour IE ce n'est donc pas satisfaisant dans ce cas

    La solution en .bat me semble difficilement réalisable.

    Je vais chercher du côté de java, peux-être en passant par une applet qui jouerait le rôle d'intermédiaire pour l'impression ...(en passant par LiveConnect)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Avec une applet java, je ne suis pas sur que ce soit possible et surtout je pense qu'il risque d'y avoir un temps de latence trop important entre la demande d'impression et l'impression.

    Je vais donc passer le navigateur client en IE8 et passer par un activeX.

    D'après ce que je comprends une des méthodes possibles serait celle-ci :

    1) L'utilisateur clique sur imprimer

    2) PHP génére le ticket de commande (format quelconque ? XLS, PDF, TXT ?)
    3) Javascript appelle la méthode print de l'objet ActiveX et lui passe l'url du ticket de commande généré sur le serveur par php ?

    Es-ce que cette méthode est crédible ou doit-elle être optimisée davantage ?

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Peut-être pas besoin de passer par un activeX pour ça car en JS il existe la méthode print(). Maintenant ça sera à l'utilisateur de choisir la bonne imprimante.


    1) L'utilisateur clique sur imprimer
    => ok un input de type button fera l'affaire qui lancera une requête PHP....

    2) PHP génére le ticket de commande (format quelconque ? XLS, PDF, TXT ?)
    => ça je crois que c'est faisable : tu envoies une requête vers le serveur qui génère le fichier au format désiré.


    3) Javascript appelle la méthode print de l'objet ActiveX et lui passe l'url du ticket de commande généré sur le serveur par php ?
    Comme je l'ai dit plus haut tu as la méthode print en JS : dès que ton script PHP a préparé ton ticket au format demandé, tu l'envoies au client dans une pop-up. Dès que le contenu de la pop-up est totalement chargé (événement onload) tu exécutes la méthode print en JS.
    Mais ça sera à l'utilisateur final de sélectionner la bonne imprimante

  6. #6
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut Par une applet
    Même si tu as mis cette solution de côté, sache que c'est réalisable avec une applet (SIGNEE), donc multi-navigateurs...
    Et, cerise sur le gateau, c'est donc faisable en JS car ton JS peut appeler l'applet (sous certaines conditions, mais c'est réalisable).

    ERE
    Quand une tête pense seule, elle devient folle.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Ok. L'idée c'est que je dois impérativement m'affranchir de la selection manuelle de l'imprimante. C'est pour cela que je pense soit passer par un activeX.

    Concernant l'utilisation d'une applet Java, le truc c'est que toute mon appli doit rester en PHP. L'applet Java servirait en quelque sorte de serveur d'impression mais je ne suis pas sur que ça puisse fonctionner :
    Idéalement, l'applet serait exécutée en daemon coté client (là ou il y a l'imprimante) et serait en attente d'un fichier à imprimer qui serait envoyé par JS. Quand bien même on pourrait faire tourner l'applet en tâche de fond (je ne sais pas si ça se fait), reste la transmition du fichier que me semble impossible sans intervention utilisateur ...

  8. #8
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par popovitch130 Voir le message
    Ok. L'idée c'est que je dois impérativement m'affranchir de la selection manuelle de l'imprimante. C'est pour cela que je pense soit passer par un activeX.
    Concernant l'utilisation d'une applet Java, le truc c'est que toute mon appli doit rester en PHP.
    Quelle différence fonctionnelle fais tu entre une applet et un activex ?

    ERE
    Quand une tête pense seule, elle devient folle.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Dans mes lointains souvenirs, une applet est un programme JAVA qui s'execute dans une page web et un ActiveX (j'ai jamais codé en VB) serait un Objet instanciable par IE pour faire des opérations qui ne serait pas possible de faire pour des raisons de sécurité.

    Es-ce que je répond à la question ?

  10. #10
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut ActiveX Applet
    Tous les deux sont des Objets qui s'incorporent dans une page web via la balise object. Tous les 2 sont soumis à des contraintes de sécurité (il suffit d'aller dans les options de IE pour le voir)
    Mais c'est vrai qu'étant donné que les ActiveX sont propres à IE, donc Windows, c'est peut-être plus "facile" pour manipuler des objets système.

    Remarque complémentaire: si tu écris ton ActiveX en VB6, pense aussi au fait fait que tu as besoin des runtime VB (VBRUNXX.dll, ...) pour que l'ActiveX s'exécute dans IE. Ceux-ci seront téléchargés automatiquement sur le poste client lors de la première exécution (s'ils ne sont pas déjà présents).

    Bon courage pour ton dev,

    ERE
    Quand une tête pense seule, elle devient folle.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Merci

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

Discussions similaires

  1. [Impression] Imprimer sur une imprimante non installée
    Par MattC dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 25/11/2008, 18h35
  2. Imprimer un Etat sur une imprimante spécifique
    Par djodu69 dans le forum Access
    Réponses: 1
    Dernier message: 09/09/2008, 13h48
  3. Imprimer sur une imprimante particulière
    Par b.avet dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 10/01/2007, 15h44
  4. Imprimer sur une imprimante donnée
    Par scorpion37 dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/06/2006, 11h32

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