首页  >  问答  >  正文

从 html 转换为 sfdt 时 DocIO 抛出错误

我从旧的 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 忽略错误,或者不验证该格式?

P粉373990857P粉373990857405 天前563

全部回复(1)我来回复

  • P粉244155277

    P粉2441552772023-09-10 13:41:40

    关于 - 我收到以下问题“元素类型 'br' 必须由匹配的结束标记终止:

    输入的 HTML 字符串不是格式正确的 HTML(“br”元素没有结束标记)。

    必备Word 库 (DocIO ) 仅支持格式良好的 HTML(给定的 HTML 内容必须符合 XHTML 1.0 格式的规则或标准)。要解决此问题,请使用格式良好的 HTML,例如“br”元素在 HTML 字符串中具有正确的开始和结束标记。

    关于 - 有没有办法告诉 DocIO 忽略错误,或者不验证该格式?

    没有。无法忽略该错误并验证 DocIO 库中的格式。要解决此问题,请在 DocIO 中使用格式良好的 HTML,例如具有正确元素开始和结束标记的 HTML 字符串。

    回复
    0
  • 取消回复