zoukankan      html  css  js  c++  java
  • 在使用itextpdf对富文本转pdf时遇到Invalid nested tag XX found, expected closing tag XX的错误

    发生错误的原因是手动生成的html的标签没有闭合或者语法不规范导致的,可以使用jsoup工具对html文件进行标准化处理,实现如下:

    html 可以是富文本 或者是 html 文件

    private static String formatHtml(String html) {

    String contents = html.replaceAll("src="/cds_filestorage/download-s", "src="https://orangecds.com/cds_filestorage/download-s");
    String contentss = contents.replaceAll("data-mce-src="/cds_filestorage/download-s", "data-mce-src="https://orangecds.com/cds_filestorage/download-s");
    String contentRe = contentss.replaceAll("<video.*?>.+?</video>", "");
    log.info("content2Html-转换后的html:" + contentss);
    org.jsoup.nodes.Document doc = Jsoup.parse(contentRe);
    // jsoup生成闭合标签
    doc.outputSettings().syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml);
    doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml);
    System.out.println("----"+doc.html());
    org.jsoup.nodes.Document doc = Jsoup.parse(contentRe);

    // 去除过大的宽度
    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

    我是个双鱼座的小王子,沉浸在自己的代码世界里,去探索这未知的世界,希望遇到更多的小伙伴一起前行!
  • 相关阅读:
    redis源码分析3---结构体---字典
    redis源码分析2---结构体---链表
    redis源码分析1---结构体---简单动态字符串sds
    智能算法---蚁群算法
    智能算法---粒子群算法
    C语言难点6:如何更好的看C语言源代码
    C语言难点5文件io,库函数
    C语言难点4之动态内存分配
    C语言难点3之结构,联合和指针
    C语言难点2之预处理器
  • 原文地址:https://www.cnblogs.com/zxy-come-on/p/15448781.html
Copyright © 2011-2022 走看看