Je suis passé de l'ancien Primeface RichEditor à syncfusion WordEditor et j'ai utilisé la classe ci-dessous pour convertir du HTML en SDFT
import java.io.ByteArrayInputStream; import java.io.InputStream; import java.nio.charset.StandardCharsets; import com.syncfusion.docio.FormatType; import com.syncfusion.docio.WordDocument; import com.syncfusion.ej2.wordprocessor.WordProcessorHelper; public class SFDTAdapter { public static String sfdtToRtf(String sfdt) throws Exception { return WordProcessorHelper.save(sfdt, com.syncfusion.ej2.wordprocessor.FormatType.Rtf).toString(); } public static String rtfToSfdt(String rtf) throws Exception { byte[] bytes = rtf.getBytes(StandardCharsets.UTF_8); InputStream stream = new ByteArrayInputStream(bytes); WordDocument document = new WordDocument(stream, FormatType.Rtf); String sfdt = WordProcessorHelper.load(document); document.close(); stream.close(); return sfdt; } public static String htmlToSfdt(String html) throws Exception { byte[] bytes = html.getBytes(StandardCharsets.UTF_8); InputStream stream = new ByteArrayInputStream(bytes); WordDocument document = new WordDocument(stream, FormatType.Html); String sfdt = WordProcessorHelper.load(document); document.close(); stream.close(); return sfdt; } public static String sfdtToHtml(String sfdt) throws Exception { return WordProcessorHelper.save(sfdt, com.syncfusion.ej2.wordprocessor.FormatType.Html).toString(); } }
Cependant, lorsque je traite l'ancien registre, j'obtiens le problème suivant "Le type d'élément 'br' doit être terminé par une balise de fermeture correspondante". D'après ce que j'ai lu, c'est parce que DocIO valide que le contenu suit le format xhtml 1. Existe-t-il un moyen de dire à DocIO d'ignorer les erreurs ou de ne pas valider le format ?
À propos - Je reçois la question suivante : « Le type d'élément 'br' doit être terminé par une balise de fermeture correspondante :
La chaîne HTML saisie n'est pas du HTML bien formé (l'élément "br" n'a pas de balise de fermeture).
LaMust-haveBibliothèque Word (DocIO) ne prend en charge que le HTML bien formé (un contenu HTML donné doit être conforme aux règles ou standards du format XHTML 1.0). Pour résoudre ce problème, utilisez du HTML bien formé, tel qu'un élément « br » avec des balises d'ouverture et de fermeture correctes dans la chaîne HTML.
À propos - Existe-t-il un moyen de dire à DocIO d'ignorer les erreurs ou de ne pas valider le format ?
Non. Il n'y a aucun moyen d'ignorer l'erreur et de valider le format dans la bibliothèque DocIO. Pour résoudre ce problème, utilisez du HTML bien formé dans DocIO, comme une chaîne HTML avec des balises d'ouverture et de fermeture d'élément correctes.