html头部里面的css嵌入body里面
依赖
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
import com.itextpdf.html2pdf.jsoup.Jsoup;
import com.itextpdf.html2pdf.jsoup.nodes.Element;
import com.itextpdf.html2pdf.jsoup.select.Elements;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author: 木杉
* @email: 819236727@qq.com
* @Date: 2019/7/23 9:01
* @describe:
*/
public class Test {
public static void main(String[] args) throws Exception{
com.itextpdf.html2pdf.jsoup.nodes.Document doc = Jsoup.parse("要进行转换的html内容");
String allcss = doc.getElementsByTag("style").html();
Map<String, String> styleMap = new HashMap<>();
Pattern pattern = Pattern.compile("\\.(\\w+)\\{(?s)(.+?)\\}");
Matcher matcher = pattern.matcher(allcss);
while (matcher.find()) {
styleMap.put(matcher.group(1), matcher.group(2));
}
Elements anyClass = doc.getElementsByAttribute("class");
for (Element element : anyClass) {
String aClass = element.attr("class");
String[] classStrs = (aClass.split(" "));
for (String classStr : classStrs) {
element.attr("style", element.attr("style") + styleMap.get(classStr));
}
element.removeAttr("class");
}
doc.getElementsByTag("style").remove();
String html = doc.toString();;
}
}
正文到此结束