在使用itextpdf对富文本转pdf时遇到Invalid nested tag XX found, expected closing tag XX的错误
作者:互联网
发生错误的原因是手动生成的html的标签没有闭合或者语法不规范导致的,可以使用jsoup工具对html文件进行标准化处理,实现如下:
html 可以是富文本 或者是 html 文件
private static String formatHtml(String html) {
org.jsoup.nodes.Document doc = Jsoup.parse(html);
// 去除过大的宽度
String style = doc.attr("style");
if ((!style.isEmpty()) && style.contains("width")) {
doc.attr("style", "");
}
Elements divs = doc.select("div");
for (Element div : divs) {
String divStyle = div.attr("style");
if ((!divStyle.isEmpty()) && divStyle.contains("width")) {
div.attr("style", "");
}
}
// jsoup生成闭合标签
doc.outputSettings().syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml);
doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml);
return doc.html();
}
输入String类型的html文本对象,返回标准的html格式的String对象。
需要用到的jsoup包见我上传的文件
原文链接:https://blog.csdn.net/lxh1205509119/article/details/110402366
标签:style,对富,jsoup,doc,html,XX,tag,div,String 来源: https://www.cnblogs.com/zxy-come-on/p/15448781.html