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

Documents Java Discussion :

[iText] intégrer du contenu html


Sujet :

Documents Java

  1. #1
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut [iText] intégrer du contenu html
    Je souhaiterais utiliser cette librairie pour générer des documents RTF
    Toutefois, je ne vois rien dans la doc ni dans les exemples qui explique comment intégrer du contenu html (avec respect de la mise en page).

    Est-ce possible ?

  2. #2
    Membre VIP

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 104
    Points
    104
    Billets dans le blog
    2
    Par défaut HTMLWorker
    Citation Envoyé par ericw78
    Je souhaiterais utiliser cette librairie pour générer des documents RTF
    Toutefois, je ne vois rien dans la doc ni dans les exemples qui explique comment intégrer du contenu html (avec respect de la mise en page).
    Est-ce possible ?
    Je ne suis pas trop du côté RTF (je me concentre surtout sur le côté PDF), mais pour intégrer des fragments HTML, j'utilise la classe HTMLWorker. Par example: dans un BLOG des gens peuvent écrire des messages qui contiennent du HTML. On pourrait passer ces fragment à HTMLWorker et cette classe vais vous donner une liste d'objects iText (Paragraph, List, ListItem, PdfPTable,...).
    Il est important de comprendre que pas tous les tags HTML sont supportés et que c'est à vous de définir le style de chaque tag.
    Par example: quand on a du HTML comme ici:
    http://itext.ugent.be/itext-in-actio...rces/list.html
    On peut le convertir comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ArrayList objects = HTMLWorker.parseToList(new FileReader("../resources/list.html"), styles);
    for (int k = 0; k < objects.size(); ++k) {
        document.add((Element) objects.get(k));
    }
    Voyez l'example complet pour voir comment definir le style:
    http://itext.ugent.be/itext-in-actio...lSnippets.java
    Dans le PDF résultant, j'ai mis la même liste 3 fois, chaque fois utilisant un autre style:
    http://itext.ugent.be/itext-in-actio...ults/html3.pdf

  3. #3
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    Génial, c'est exactement ce que je cherchais....
    Par contre les tableaux html ne sont pas repris dans mon rtf....
    En regardant la liste des Elements de mon Document, je vois que les tableaux sont transformés en Class com.lowagie.text.pdf.PdfPTable et n'apparaissent pas dans mon rtf....
    Y a t il un moyen de contourner ce problème ?

  4. #4
    Membre VIP

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 104
    Points
    104
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ericw78
    En regardant la liste des Elements de mon Document, je vois que les tableaux sont transformés en Class com.lowagie.text.pdf.PdfPTable et n'apparaissent pas dans mon rtf....
    Y a t il un moyen de contourner ce problème ?
    Je n'avais pas pensé a ça. Il y a beaucoup de différences entre RtfTable, Table et PdfPTable. Il faudra peut-être écrire un HTMLWorker qui est capable de produire des objects tabulaires pour RTF aussi.
    Pour le moment, je suis en train d'implementer 'portable packages' (PDF1.7); Paulo est en train d'integrer une nouvelle version de BouncyCastle pour plus de fonctionalité concernant l'encryption et les signatures digitales; Mark Hall, le developeur qui est responsable pour le côté RTF est en train de déménager. Alors je ne peut pas garantir que le team iText peut adapter HTMLWorker. Peut-être ça suffit d'écrire une nouvelle classe dérivé de HTMLWorker pour résoudre le problème...

  5. #5
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    J'ai jeté un oeil au source de HTMLWorker.
    Effectivement, ca n'a pas l'air trop difficile de modifier cette classe ainsi que les 2 classes incTable et incCell utilisées pour construire le tableau. Mon besoin est assez basic donc ca devrait suffire...

    La compatibilité html2rtf n'est effectivement pas complète...
    Dommage, car avec cette api, je trouve que c'est une bonne solution pour construire facilement des documents compatible Microsoft Word. C'est un pb récurrent, toujours difficile à faire en OpenSource et surtout dans un environnement non Microsoft.

    Merci pour le coup de main.

    Eric

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    salut tout le monde,
    petite question pour éric, as tu réussi à modifier la classe IncTable pour générer des fichiers rtf ?
    si oui, peut tu sil te plait mettre ton code ?
    ou m'expliquer quelles méthodes tu as modifiées ? et comment ensuite l'utiliser.

    MErci d'avance...

  7. #7
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    En fait, la classe HTMLWorkerRTF qui lit le html et le convertit en rtf générait dans le cas de tableaux des PDFTable....ce qui n'est pas compatible avec RTF.
    J'ai donc modifié cette classe et créé 2 classes supplémentaires pour créer des "TableRTF" et "CellRTF" (tableaux et cellules compatibles RTF)

    PS : J'avais également un bug avec les listes (<li>) qui affichent des sauts de lignes entre chaque item de liste....non résolu...Dis-moi si tu trouves la correction

    Ci-joint mes code sources
    Fichiers attachés Fichiers attachés

  8. #8
    Membre VIP

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 104
    Points
    104
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ericw78
    J'ai donc modifié cette classe et créé 2 classes supplémentaires pour créer des "TableRTF" et "CellRTF" (tableaux et cellules compatibles RTF)

    PS : J'avais également un bug avec les listes (<li>) qui affichent des sauts de lignes entre chaque item de liste....non résolu...Dis-moi si tu trouves la correction
    Je vais passer les fichiers à Marc Hall qui pourra peut-être résoudre le problème, et qui pourra intégrer le HTMLWorker pour RTF dans la distribution officielle d'iText.
    Merci!

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    merci pour vos reponse et surtout éric pour ton code...
    j'ai malheureusement un dernier probleme...
    en fait je récupère bien mes tableaux mais la couleur de l'arriere plan est noire, comme celle de la police, en gros c'est illisible...
    Je suis sure que c'est une petite erreur, car cette erreur est juste pour le tableau car mon texte est lui sur un fond blanc !!
    Pourtant j'ai regarder le styleSheet... mais je n'ai rien trouvé

    Si quelqu'un peut juste m'aiguiller... Merci d'avance.

  10. #10
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    Ce que j'ai déjà remarqué c'est qu'il y a une "sorte d"héritage de la police" dans les rtf (qui ne se produit pas avec les pdf)
    De ce fait, si avant d'afficher ton tableau tu as une police rouge, ton tableau s'affichera avec une police rouge !
    Si tu n'arrives pas à en trouver la cause, donnes ton code qu'on y jette un oeil

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    Merci pour ta réponse....
    mon code c'est le meme que toi... sauf que je ne devais pas avoir la meme version de iText... bref, j'ai remarqué quelque chose, si j'ouvre mon document rtf avec WordPad j'ai bien mon tableau sur font blanc police noir, et si je l'ouvre avec word il est sur fond noir.
    Aussi avec wordPad je ne vois pas une image (la seule du document), tandis qu'avec microsoft word je la vois...

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

Discussions similaires

  1. [FLASH MX] Scrollbar et contenu Html externe
    Par efrenik dans le forum Flash
    Réponses: 9
    Dernier message: 21/08/2006, 16h39
  2. comment intégrer une page html dans swf?
    Par jeanman dans le forum Intégration
    Réponses: 3
    Dernier message: 10/05/2006, 19h36
  3. Contenu HTML + feuille CSS
    Par Invité dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 12/04/2006, 08h43
  4. Editeur de texte intégrer à une page HTML
    Par planting dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/12/2005, 11h03
  5. Intégrer OpenGL et HTML
    Par the_ricou dans le forum OpenGL
    Réponses: 10
    Dernier message: 14/02/2004, 10h18

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