我從舊的 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 字串。