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

avec Java Discussion :

Comment imprimer du HTML


Sujet :

avec Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Par défaut Comment imprimer du HTML
    Je vais créer des documents riches, dans lesquels je souhaite imprimer du texte écrit en HTML (pour des questions d'enrichissement des textes), à certains endroits d'une page.

    Par exemple, j'imprime un paragraphe dans le quart en bas à droite de la page. Ce paragraphe est décrit en HTML avec des gras et des soulignés, evéntuellement des couleurs, etc.

    Je n'ai rien trouvé qui permette de le faire sur le Net.

    Une idée, une piste ?

    Christian

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Oui, pour cela il te faudra trouver 2 choses :

    - Il existe un moyen simple d'imprimer un JComponent en java. (tu devrais trouver cela dans la FAQ de developpez).
    - Il existe aussi un moyen de faire du rendus de HTML avec un composant java qui hérite de JComponent. (Il en existe moultes donc certains natif a java).

    Attention que les CSS ne seront peut être pas supportés. (position en bas a droite de la page par exemple).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Par défaut
    Merci de ta réponse.

    J'ai trouvé, en effet.

    Pour cela il faut que le JComponent soit visible. Or ce n'est pas ce que je cherche.

    Je l'ai donc placé dans une JFrame, que je place derrière ma feuille principale d'application. Ainsi le JComponent n'est pas visible de l'utilisateur, et peut être utilisé.

    Ce n'est pas vraiment élégant, et s'il existe quelque chose de plus propre, je suis preneur.

    Merci.

    Christian

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    est il absolument nécessaire de passer par du html ?

    si tu gères tes docs en interne de ton appli, tu peux imprimer sans affichage en implémentant Printable et Pageable. En utilisant TextLayout, tu peux facilement faire le layout de ton texte. Pour styler ton texte, les map de TextAttributes pourront de permettre d'aller assez loin dans le rendu du texte (souligné, indice et exposant, oblique, graisse, crénage...)

    si tu as besoin d'éditer tes textes dans ton appli, tu peux utiliser un StyledDocument comme modèle de tes JEditorPane

    si tu as besoin de stocker tes docs, tu peux réaliser ton propre format encapsulant du rtf par exemple.

    c'est plus de boulot que de simplement imprimer un "JComponent" certes, mais tu pourras faire ce que tu veux...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Par défaut
    Salut,

    Je débute en Java. Les besoins que j'ai sont rudimentaires :
    justifier, gras, italique, choisir la fonte, imprimer à un certain endroit (à coté je place des images créées à la volée) en positionnant Top, Left, Width.

    Et surtout stocker dans un fichier UTF8 le texte et ses attributs pour l'enrichissement. C'est pour cela que le HTML est sympa.

    Si ce que tu proposes permet de faire tout cela, évidemment cela me convient mieux.

    Christian

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    il n'est pas difficile d'exporter du rtf en html. l'inverse est plus complexe (si on part du principe de supporter tout html, plus css).

    si tu gères ton texte en interne de ton application en html limité aux attributs que tu cites, aucun problème pour le gérer. ce serait plus simple de le gérer sans html.

    le fait que tu débutes en java n'est pas un problème en soi. tout ce que j'ai cité ne présente pas trop de difficultés, et on peut trouver des tutoriaux. je peux te fournir des exemples de code plus tard (j'ai pas le temps tout de suite) si nécessaire.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par weabow Voir le message
    Et surtout stocker dans un fichier UTF8 le texte et ses attributs pour l'enrichissement. C'est pour cela que le HTML est sympa.
    la question est "est ce que tu veux seulement stocker pour pouvoir recharger", ou "est ce que tu veux pouvoir prendre n'importe quel html et le charger"

    dans le premier cas, tu peux gérer ton propre format de fichier (en utilisant html si tu y tiens, mais de façon cachée), afin de sauver et recharger tes documents, et éventuellement exporter en html si tu veux pouvoir offrir la possibilité que ton document soit ensuite utilisé dans un contexte externe (visualisé dans un navigateur par exemple).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Par défaut
    Merci de ta réponse.

    En fait : les deux :

    1) j'ai des textes en ressource que j'utilise directement, en les adaptants at run time,
    2) je prévoie de fournir la possibilité aux utilisateurs d'implémenter des textes de leur cru.

    C'est pourquoi le html me semblait intéressant. Le rtf peut l'être tout autant (je n'ai pas d'expérience en rtf). Il s'agirait dans le cadre des utilisateurs de charger un fichier et de l'imprimer depuis l'appli Java, dans un endroit spécifique. C'est en quelque sorte un éditeur de rapport ultra-simpliste, qui permet d'intégrer des pages sur-mesures dans un dossier de plusieurs pages.

    Christian

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    si tu veux permettre à un utilisateur de collecter des pages du web en html et de les compiler dans un rapport, ça va être complexe vu la richesse des documents qu'on peut trouver sur le web : réécrire un renderer html prend beaucoup de temps. la solution peut être d'étudier les renderer existant : bon on connait le JEditorPane et ses limites (doit être affiché, limite de la gestion html et css, etc...), après il y a d'autres solutions existantes (lobo, flyingsaucer), mais ils sont tous en général prévu pour "faire du browser".

    si les docs sont des textes stylés créés dans word ou openoffice, demander à l'utilisateur de l'exporter en rtf ou en html ne change pas grand chose. Et le charger est simple avec une javax.swing.text.rtf.RTFEditorKit.

    remarque c'est aussi simple de charger un html avec le HTMLEditorKit, mais c'est l'impression qui peut demander beaucoup de travail et les limitations un peu restrictives (html 3.2 et css1). Le problème étant toujours les limites : difficile de proposer de pouvoir entrer dans un système librement un doc html et de le traite de façon simplifiée : on risque d'avoir des pertes d'information. Mais dans le principe, filtrer les balises en disant qu'on n'en traite que certains

    en tout cas l'impression en elle même est un sujet qui m'intéresse : j j’avais déjà commencé un travail basé sur paperclip (SWT) pour imprimer du html simplifié (donc les balises de texte, image, certains div ; il me reste que 2 ou 3 trucs à faire, comme les exposants et les indices ; j'ai pas traité les tableaux non plus, mais ce n'est pas difficile avec paperclip ; pas de traitement de css en tout cas dans un premier temps), mais je me suis arrêté faute de temps et d'autres projets, je m'étais rabattu sur une impression par un Browser en appelant la fonction d'impression javascript, ce qui me permet d'imprimer n'importe quel html. mais tu n'es pas le premier à pauser la question sur ce forum (et à chaque fois la réponse est la même : imprimer les composants swing directement, ce que je trouve particulièrement laid et peu souple) et je me sens bien de me lancer dans le développement d'une api print swing : évidemment c'est un travail de longue haleine.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Par défaut
    Merci de ces infos.

    Je vais avancer sur le projet en testant différentes options. Mon projet semble plus simple au départ que de travailler avec du pur html dans toutes ses potentialités.

    Nous verrons.

    Christian

Discussions similaires

  1. comment imprimer des fich. HTML sans tronquage?
    Par developpeur_débutant dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 21/02/2012, 14h03
  2. Comment imprimer des fichiers html sur une imprimante réseau ?
    Par skywaukers dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/02/2008, 21h41
  3. [Impression]Comment imprimer un fichier HTML
    Par joes_bushi dans le forum Général Java
    Réponses: 3
    Dernier message: 17/11/2005, 09h00
  4. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 15h41

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