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

Langage Java Discussion :

Impossible d'imprimer une simple String!


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut Impossible d'imprimer une simple String!
    Bonjour bonjour
    J'essaie depuis quelques temps déjà d'imprimer une pauvre petite chaîne de caractères via mon application Swing, sous PC... et là je suis vraiment en train de craquer parce que j'avance pas...
    C'est juste du cdoe, y a pas d'interface, j'essaie de me connecter à l'imprimante par défaut, et je fais ce qu'il faut, en utilisant le docFlavor :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocFlavor.STRING.TEXT_PLAIN
    Mon erreur c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sun.print.PrintJobFlavorException: invalid flavor
    Je comprends pas, c'est pourtant le plus simple, non? C'est le DocFlabor de base je pense.
    Je pète vraiment un cable là et je dois faire marcher çà pour demain soir, donc pleeeaaase aidez-moi je craque!!!

    Nico.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Par défaut
    Voici des exemples bien commenté pour lancer des impression

    clique ici

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut
    Hey merci pour le lien, j'ai regardé mais moi ce que je veux c'est imprimer une chaine de caractères, pas un composant Swing ou quoique ce soit. Du coup ton exemple ne peut pas s'appliquer (j'ai quand même vérifié, mais le printerJob attend un Printable, qui se créé à partir d'un Graphics... or moi je veux faire çà depuis mon serveur, donc pas de Swing...)

  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
    Rien ne t'empêche d'utiliser la classe Graphics, même sans avoir d'IHM Swing sur ton serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Graphics g = new Graphics();
    g.drawString("une chaîne", 0, 0);
    // impression de l'objet g...
    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 confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut
    OK merci j'essaierais demain matin mais bon c'est un poil tordu sachant qu'il y a plus simple mais que, allez savoir pourquoi, çà ne marche pas avec moi
    Je parle de PrintService, de DocPrintJob and so on....
    Je vous dirais ce qu'il en est.

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par CyberChouan Voir le message
    Rien ne t'empêche d'utiliser la classe Graphics, même sans avoir d'IHM Swing sur ton serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Graphics g = new Graphics();
    g.drawString("une chaîne", 0, 0);
    // impression de l'objet g...
    Geuh ? Non ce n'est pas possible, Graphics etant une classe abstraite attachee a un "peripherique" (qui peut etre l'ecran, l'imprimante, une image, un fichier au format vectoriel, etc...), on ne peut pas l'instancier comme ca. Il faut l'obtenir d'une maniere ou d'une autre.

    nicdo77, cependant, meme si tu veux utiliser les PrintService (qui semblent avoir peu d'utilisateur par ici car les questions relatives a ces classes trouvent generalement peu de reponses), tu peux effectivement dans un premier temps tenter une impression directe avec le package d'impression (java.awt.print sur lequel repose les PrintService). Faire un Printable qui imprime du texte est assez simple et le Graphics en question (l'imprimante) t'est fourni par le PrinterJob que tu utiliseras. Sinon la methodologie est similaire a l'impression de composant : il faut dessiner dans le Graphics a l'aide de drawString(). Ensuite si le texte est long et fait plusieurs ligne il faut s'aider des objets permettant le layout du texte comme java.awt.font.TextLayout
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    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
    Citation Envoyé par bouye Voir le message
    Geuh ? Non ce n'est pas possible, Graphics etant une classe abstraite attachee a un "peripherique" (qui peut etre l'ecran, l'imprimante, une image, un fichier au format vectoriel, etc...), on ne peut pas l'instancier comme ca. Il faut l'obtenir d'une maniere ou d'une autre.
    Oups...
    Autant pour moi. J'ai répondu trop rapidement sans même aller vérifier la javadoc de la classe: mea culpa.
    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

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut
    Citation Envoyé par bouye Voir le message
    nicdo77, cependant, meme si tu veux utiliser les PrintService (qui semblent avoir peu d'utilisateur par ici car les questions relatives a ces classes trouvent generalement peu de reponses), tu peux effectivement dans un premier temps tenter une impression directe avec le package d'impression (java.awt.print sur lequel repose les PrintService). Faire un Printable qui imprime du texte est assez simple et le Graphics en question (l'imprimante) t'est fourni par le PrinterJob que tu utiliseras. Sinon la methodologie est similaire a l'impression de composant : il faut dessiner dans le Graphics a l'aide de drawString(). Ensuite si le texte est long et fait plusieurs ligne il faut s'aider des objets permettant le layout du texte comme java.awt.font.TextLayout
    C'st quand même fou qu'il y ait peu d'utilisateur de PrintService. Enfin je suis quand même pas le seul être humain à développer une app d'entreprise dont l'une des fonctionnalités est d'imprimer!!!
    Bon ben pour l'instant je vais feinter l'adversaire alors : j'enregistrerais le contenu dans un fichier texte que je vais essayer d'ouvrir directement... et l'utilsiateur ira l'imprimer lui-même.
    Peut-être que cette technique de Graphics et TextLayout marche, mais c'est pas le chemin le plus simple, y a moyen que j'y perde du temps, que je tombe sur d'autres problèmes.... Et un grand sage m'a un jour dit que si tu réussis à faire marcher ton code mais que tu ne sais pas pourquoi, alors il y a un souci....

    Donc MERCI pour vos solutions, merci vraiment mais je veux alelr au plus simple et plus maintenable et moins tordu.

    Donc voilà je repars donc depuis le début :
    Pourquoi mon imprimate ne veut pas reconnaître la flavor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocFlavor.STRING.TEXT_PLAIN
    Pourtant 1) c'est une type de données de base il me semble
    2) si je me connecte depuis mon Mac (machine de dév) et que j'essaie le même code, l'imprimante (la même) reconnait ce type de données. C'est FOU quand même

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

Discussions similaires

  1. [WD16] Impossible d'imprimer une table sur PDF
    Par Céroline77 dans le forum WinDev
    Réponses: 6
    Dernier message: 04/04/2014, 11h50
  2. [IIS 7.5] Impossible d'exécuter une simple page aspx sur IIS
    Par abbepierre94 dans le forum IIS
    Réponses: 0
    Dernier message: 05/07/2012, 00h02
  3. transformer un vecteur<string> en une simple string
    Par Ganondorf dans le forum Débuter
    Réponses: 16
    Dernier message: 21/08/2010, 10h24
  4. Impossible d'afficher une simple image
    Par Space23 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 20/07/2008, 21h20
  5. impossible de supprimer une imprimate réseau
    Par sony351 dans le forum Administration
    Réponses: 4
    Dernier message: 27/10/2005, 12h30

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