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 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,...).Envoyé par ericw78
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:
Voyez l'example complet pour voir comment definir le style:
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)); }
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
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 ?
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.Envoyé par ericw78
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...
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
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...
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
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.Envoyé par ericw78
Merci!
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.
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
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...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager