使用jsoup规范化html itext html转PDF 空格丢失问题解决
使用jsoup规范化html itext html转PDF 空格丢失问题解决
/**
* 使用jsoup规范化html
*
* @param html html内容
* @return 规范化后的html
*/
private static String formatHtml(String html) {
org.jsoup.nodes.Document doc = Jsoup.parse(html);
//设置导出格式保留空格
doc.outputSettings(new org.jsoup.nodes.Document.OutputSettings().prettyPrint(false));
// 去除过大的宽度
String style = doc.attr("style");
if (StringUtils.isNotEmpty(style) && style.contains("width")) {
doc.attr("style", "");
}
Elements divs = doc.select("div");
for (Element div : divs) {
String divStyle = div.attr("style");
if (StringUtils.isNotEmpty(divStyle) && divStyle.contains("width")) {
div.attr("style", "");
}
//获取文本标签
Elements span = div.select("span");
for (Element element : span) {
//将空格替换为\u00a0
//注:\u00a0 后面也需要加一个空格
element.html(element.html().replace(" ","\u00a0 "));
}
}
// jsoup生成闭合标签
doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml);
doc.outputSettings().syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml);
return doc.html();
}
导出后效果:下划线部分就是空格了

浙公网安备 33010602011771号