PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → HTML, Txte et RTF
HTML, Txte et RTF
Débuté par Gilles, 25 jan. 2015 18:59 - 2 réponses
Membre enregistré
160 messages
Popularité : +1 (3 votes)
Posté le 25 janvier 2015 - 18:59
Bonjour,

Soient 3 champs de saisie : Texte_HTML (un champ HTML), Texte1 (multiligne non enrichi),, Texte_RTF (un champ RTF).
Un code HTML usuel et son résultat (en bas à droite) sous IE :




Dans un bouton, je place le code suivant
gCSS est unechaîne= [
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style>
body {font-size: 8pt; font-family: verdana; margin: 0pt; padding: 0pt;}
p {margin: 0pt; padding: 0pt; background-color: #FFFAFA;}
</style>
</head>
]

sHTML est unechaîne= [
<ul>
<li>article 1</li>
<li>article 2</li>
</ul>
<p>Ceci est une ligne.</p>
<p>En Voici une autre.</p>
]

Texte_HTML=gCSS+sHTML
Texte1=Texte_HTML
Texte_RTF=HTMLVersTexte(Texte_HTML)


Le résultat n'est pas celui attendu :




Ce qui m'intéresse, c'est le résultat dans Texte_RTF. J'ai utilisé Texte1 pour essayer de comprendre. Le Texte_HTML est correct, y compris le background des puces que l'on ne retrouve pas dans Texte1.... Mais surtout dans Texte1, je ne vois pas la balise de clôture </li> (à droite de article 1 à l'origine)... Ceci explique certainement le résultat produit en Texte_RTF (produit directement à partir de Texte_HTML par HTMLversRTF).
Est-ce rédhibitoire ? Mon problème est que les tables de Windev n'affichent pas le HTML nativement semble-t-il, donc il est nécessaire de convertir le contenu en RTF}:(Dans la chaîne des logiciels Windev/Webdev cela me semble difficile à comprendre : Tout peut fonctionner HTML sauf cet élément qui n'utilise que le RTF (et aucun texte enrichi en Webdev (mais j'utilise plus souvent les zones répétées) .

Je commence à perdre patience... Le même exercice en Qt ne pose aucun problème. Plus de 20 heures d'expérimentations diverses, cela me semble quand même long...

Mais je dois encore mal m'y prendre. Un peu d'aide SVP.
>Merci. Cordialement. Gilles
Membre enregistré
280 messages
Popularité : +22 (28 votes)
Posté le 26 janvier 2015 - 23:45
Bonjour,
Dans ton code tu utilises HTMLVersTexte au lieu de HTMLVersRTF ce qui contredit ton explication.
Ton problème provient peut-être de là ?

--
Cordialement.

Olivier
http://www.impulse-web.com>
Membre enregistré
160 messages
Popularité : +1 (3 votes)
Posté le 27 janvier 2015 - 11:30
Bonjour Olivier,

Non, non, c'est une simple erreur de copier-coller. A force de modifications pour comprendre... J'ai avancé un moment sur le problème.
Il faut éliminer du code HTML les balises </LI> déjà. A la rigueur, on rencondre des codes <HTML> sans </LI>. Le problème est qu'on les utilises ou pas et jamais une ligne sur deux....
Ensuite, il faut modifier le code RTF produit
sHTML est unechaîne= [
<ul>
<li>article 1</li>
<li>article 2</li>
</ul>
<p>Ceci est une ligne.</p>
<p>En Voici une autre.</p>
]

sHTML=Remplace(sHTML,"</LI>","",SansCasse)
Info(sHTML)
sRTF est unechaîne=HTMLVersRTF(sHTML)
Info(sRTF)
sRTF=Remplace(sRTF,"\line \line","\par",SansCasse)
//Info(sRTF)
Texte_RTF=sRTF

Mais les puces ne sont pas exactement reproduites, <OL> ne numérote rien. La gestion des couleurs et background-color sur les <SPAN> finctionne correctement.... Par curiosité, je fais appel à une dll que j'ai construite en Delphi/Lazarus pour régler un problème identique. Et cela fonctionne. J'hésite. Je peux utiliser cette librairie, la porter en Windev (enfin essayer parce les RegEx natives de Windev sont incomplètes), utiliser Delphi, ou Qt qui est totalement "insensible" à ce genre de problème.

Mais je peste. Ce problème m'horripile. Il est en total décalage avec la qualité globale du produit.

>Cordialement. Gilles