我从旧的 Primeface RichEditor 切换到了syncfusion WordEditor,并且使用下面的类从 html 转换为 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(); } }
但是,当我处理旧寄存器时,出现以下问题“元素类型 'br' 必须由匹配的结束标记终止”。根据我读到的内容,这是因为 DocIO 验证内容是否遵循 xhtml 1 格式。有没有办法告诉 DocIO 忽略错误,或者不验证该格式?
关于 - 我收到以下问题“元素类型 'br' 必须由匹配的结束标记终止:
输入的 HTML 字符串不是格式正确的 HTML(“br”元素没有结束标记)。
必备Word 库 (DocIO ) 仅支持格式良好的 HTML(给定的 HTML 内容必须符合 XHTML 1.0 格式的规则或标准)。要解决此问题,请使用格式良好的 HTML,例如“br”元素在 HTML 字符串中具有正确的开始和结束标记。
关于 - 有没有办法告诉 DocIO 忽略错误,或者不验证该格式?
没有。无法忽略该错误并验证 DocIO 库中的格式。要解决此问题,请在 DocIO 中使用格式良好的 HTML,例如具有正确元素开始和结束标记的 HTML 字符串。