从 html 转换为 sfdt 时 DocIO 抛出错误
P粉373990857
P粉373990857 2023-09-09 21:58:02
0
1
627

我从旧的 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粉373990857
P粉373990857

全部回复(1)
P粉244155277

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

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板